exercise plan, plan detail

This commit is contained in:
Bossanyi Tibor 2020-07-24 14:37:20 +02:00
parent bf0be8b26f
commit 71e0b8f155
2 changed files with 85 additions and 0 deletions

View File

@ -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()

View File

@ -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")