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 ExerciseTreeTranslation
from .models import ExerciseTree
from .models import ExercisePlanTranslation
from .models import ExercisePlanDetail
from .models import ExercisePlan
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(ExerciseTree, ExerciseTreeAdmin)
admin.site.register(ExercisePlan, ExercisePlanAdmin)
admin.site.register(ExercisePlanDetail, ExercisePlanDetailAdmin)
admin.autodiscover()

View File

@ -104,3 +104,48 @@ class ExerciseTreeTranslation(models.Model):
def __str__(self):
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")