exercise plan, plan detail
This commit is contained in:
parent
bf0be8b26f
commit
71e0b8f155
@ -6,6 +6,9 @@ from .models import ExerciseTypeImage
|
|||||||
from .models import ExerciseTypeTranslation
|
from .models import ExerciseTypeTranslation
|
||||||
from .models import ExerciseTreeTranslation
|
from .models import ExerciseTreeTranslation
|
||||||
from .models import ExerciseTree
|
from .models import ExerciseTree
|
||||||
|
from .models import ExercisePlanTranslation
|
||||||
|
from .models import ExercisePlanDetail
|
||||||
|
from .models import ExercisePlan
|
||||||
|
|
||||||
|
|
||||||
class ImageInline(admin.StackedInline):
|
class ImageInline(admin.StackedInline):
|
||||||
@ -87,7 +90,44 @@ class ExerciseTreeAdmin(admin.ModelAdmin):
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
class TranslationPlanInline(admin.TabularInline):
|
||||||
|
model = ExercisePlanTranslation
|
||||||
|
fields = ('language_code', 'name','description')
|
||||||
|
extra = 0
|
||||||
|
|
||||||
|
|
||||||
|
class ExercisePlanAdmin(admin.ModelAdmin):
|
||||||
|
list_display = ('name_colored',)
|
||||||
|
search_fields = ['name']
|
||||||
|
|
||||||
|
def name_colored(self, obj):
|
||||||
|
color_code = 'C20000'
|
||||||
|
html = '<span style="color: #{};">{}</span>˓→'.format(color_code, obj.name)
|
||||||
|
return format_html(html)
|
||||||
|
|
||||||
|
name_colored.admin_order_field = 'name'
|
||||||
|
name_colored.short_description = 'name'
|
||||||
|
|
||||||
|
inlines = [
|
||||||
|
TranslationPlanInline
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
class ExercisePlanDetailAdmin(admin.ModelAdmin):
|
||||||
|
list_display = ( 'get_plan', 'get_exercise_type', 'serie', 'repeat', 'weight_equation',)
|
||||||
|
list_editable = ('serie', 'repeat', 'weight_equation',)
|
||||||
|
#list_editable_link('',)
|
||||||
|
|
||||||
|
def get_plan(self, obj):
|
||||||
|
return obj.exercise_plan.name
|
||||||
|
|
||||||
|
def get_exercise_type(self, obj):
|
||||||
|
return obj.exercise_type.name
|
||||||
|
|
||||||
|
|
||||||
admin.site.register(ExerciseType, ExerciseTypeAdmin)
|
admin.site.register(ExerciseType, ExerciseTypeAdmin)
|
||||||
admin.site.register(ExerciseTree, ExerciseTreeAdmin)
|
admin.site.register(ExerciseTree, ExerciseTreeAdmin)
|
||||||
|
admin.site.register(ExercisePlan, ExercisePlanAdmin)
|
||||||
|
admin.site.register(ExercisePlanDetail, ExercisePlanDetailAdmin)
|
||||||
admin.autodiscover()
|
admin.autodiscover()
|
||||||
|
|
||||||
|
@ -104,3 +104,48 @@ class ExerciseTreeTranslation(models.Model):
|
|||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
|
||||||
|
class ExercisePlan(models.Model):
|
||||||
|
exercise_plan_id = models.AutoField(primary_key=True)
|
||||||
|
name = models.CharField(max_length=100, help_text='The name should be in English here')
|
||||||
|
description = models.TextField(max_length=1000, blank=True, null=True, help_text='The description should be in '
|
||||||
|
'English here')
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
db_table = 'exercise_plan'
|
||||||
|
verbose_name = _("Exercise Plan")
|
||||||
|
verbose_name_plural = _("Exercise Plans")
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.name
|
||||||
|
|
||||||
|
|
||||||
|
class ExercisePlanTranslation(models.Model):
|
||||||
|
translation_id = models.AutoField(primary_key=True)
|
||||||
|
exercise_plan = models.ForeignKey(ExercisePlan, on_delete=models.CASCADE)
|
||||||
|
language_code = models.CharField(max_length=2, choices=LanguageTypes.choices, default=LanguageTypes.HU)
|
||||||
|
name = models.CharField(max_length=100)
|
||||||
|
description = models.TextField(max_length=1000, blank=True, null=True)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
db_table = 'exercise_plan_translation'
|
||||||
|
verbose_name = _("Translation")
|
||||||
|
verbose_name_plural = _("Translations")
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.name
|
||||||
|
|
||||||
|
|
||||||
|
class ExercisePlanDetail(models.Model):
|
||||||
|
exercise_plan_detail_id = models.AutoField(primary_key=True)
|
||||||
|
exercise_plan = models.ForeignKey(ExercisePlan, on_delete=models.CASCADE)
|
||||||
|
exercise_type = models.ForeignKey(ExerciseType, on_delete=models.CASCADE)
|
||||||
|
serie = models.IntegerField()
|
||||||
|
repeat = models.IntegerField()
|
||||||
|
weight_equation = models.CharField(max_length=100)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
db_table = 'exercise_plan_detail'
|
||||||
|
verbose_name = _("Exercise Plan Detail")
|
||||||
|
verbose_name_plural = _("Exercise Plan Details")
|
Loading…
Reference in New Issue
Block a user