Backoffice for API 1.0.14 ExerciseDevice, ExerciseTypeDevice
This commit is contained in:
parent
826b1f900d
commit
aa23ec4e49
@ -1,8 +1,8 @@
|
||||
from django.contrib import admin
|
||||
from django.db.models import Sum
|
||||
from django.utils.html import format_html
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from .models import ExerciseType, Product, Purchase, Property, PropertyTranslation
|
||||
from .models import ExerciseDevice, ExerciseDeviceTranslation, ExerciseTypeDevice
|
||||
from .models import ExerciseTypeImage
|
||||
from .models import ExerciseTypeTranslation
|
||||
from .models import ExerciseTreeTranslation
|
||||
@ -12,6 +12,12 @@ from .models import ExercisePlanDetail
|
||||
from .models import ExercisePlan
|
||||
|
||||
|
||||
class ExerciseTypeDeviceInline(admin.StackedInline):
|
||||
model = ExerciseTypeDevice
|
||||
extra = 0
|
||||
fields = ["exercise_type", "exercise_device"]
|
||||
|
||||
|
||||
class ImageInline(admin.StackedInline):
|
||||
model = ExerciseTypeImage
|
||||
extra = 0
|
||||
@ -53,7 +59,8 @@ class ExerciseTypeAdmin(admin.ModelAdmin):
|
||||
|
||||
inlines = [
|
||||
ImageInline,
|
||||
TranslationInline
|
||||
TranslationInline,
|
||||
ExerciseTypeDeviceInline
|
||||
]
|
||||
|
||||
|
||||
@ -125,6 +132,7 @@ class ExercisePlanDetailAdmin(admin.ModelAdmin):
|
||||
list_editable = ('serie', 'repeat', 'weight_equation',)
|
||||
#list_editable_link('',)
|
||||
|
||||
|
||||
def get_plan(self, obj):
|
||||
return obj.exercise_plan.name
|
||||
|
||||
@ -164,6 +172,20 @@ class PropertyAdmin(admin.ModelAdmin):
|
||||
]
|
||||
|
||||
|
||||
class TranslationExerciseDeviceInline(admin.TabularInline):
|
||||
model = ExerciseDeviceTranslation
|
||||
fields = ('language_code', 'name')
|
||||
extra = 0
|
||||
|
||||
|
||||
class ExerciseDeviceAdmin(admin.ModelAdmin):
|
||||
list_display = ('device_id', 'name')
|
||||
|
||||
inlines = [
|
||||
TranslationExerciseDeviceInline
|
||||
]
|
||||
|
||||
|
||||
admin.site.register(ExerciseType, ExerciseTypeAdmin)
|
||||
admin.site.register(ExerciseTree, ExerciseTreeAdmin)
|
||||
admin.site.register(ExercisePlan, ExercisePlanAdmin)
|
||||
@ -171,5 +193,6 @@ admin.site.register(ExercisePlanDetail, ExercisePlanDetailAdmin)
|
||||
admin.site.register(Product, ProductAdmin)
|
||||
admin.site.register(Purchase, PurchaseAdmin)
|
||||
admin.site.register(Property, PropertyAdmin)
|
||||
admin.site.register(ExerciseDevice, ExerciseDeviceAdmin)
|
||||
admin.autodiscover()
|
||||
|
||||
|
@ -2,6 +2,25 @@ from django.db import models
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
|
||||
class LanguageTypes(models.TextChoices):
|
||||
EN = "en"
|
||||
HU = "hu"
|
||||
|
||||
|
||||
class ExerciseDevice(models.Model):
|
||||
device_id = models.AutoField(primary_key=True)
|
||||
name = models.CharField(max_length=100)
|
||||
description = models.CharField(max_length=200, blank=True, null=True)
|
||||
|
||||
class Meta:
|
||||
db_table = 'exercise_device'
|
||||
verbose_name = _("Exercise Device")
|
||||
verbose_name_plural = _("Exercise Devices")
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
class ExerciseTree(models.Model):
|
||||
tree_id = models.AutoField(primary_key=True)
|
||||
parent_id = models.IntegerField(help_text='This is the parent menu ID. 0 if it is on the top of the tree')
|
||||
@ -71,11 +90,6 @@ class ExerciseTypeImage(models.Model):
|
||||
return self.name
|
||||
|
||||
|
||||
class LanguageTypes(models.TextChoices):
|
||||
EN = "en"
|
||||
HU = "hu"
|
||||
|
||||
|
||||
class ExerciseTypeTranslation(models.Model):
|
||||
translation_id = models.AutoField(primary_key=True)
|
||||
exercise_type = models.ForeignKey(ExerciseType, on_delete=models.CASCADE)
|
||||
@ -214,4 +228,30 @@ class PropertyTranslation(models.Model):
|
||||
verbose_name_plural = _("Translations")
|
||||
|
||||
def __str__(self):
|
||||
return self.property_name
|
||||
return self.property_name
|
||||
|
||||
|
||||
class ExerciseTypeDevice(models.Model):
|
||||
exercise_type_device_id = models.AutoField(primary_key=True)
|
||||
exercise_type = models.ForeignKey(ExerciseType, on_delete=models.CASCADE)
|
||||
exercise_device = models.ForeignKey(ExerciseDevice, on_delete=models.CASCADE)
|
||||
|
||||
class Meta:
|
||||
db_table = 'exercise_type_device'
|
||||
verbose_name = _("Exercise Device")
|
||||
verbose_name_plural = _("Exercise Devices")
|
||||
|
||||
|
||||
class ExerciseDeviceTranslation(models.Model):
|
||||
translation_id = models.AutoField(primary_key=True)
|
||||
device = models.ForeignKey(ExerciseDevice, on_delete=models.CASCADE)
|
||||
name = models.CharField(max_length=100)
|
||||
language_code = models.CharField(max_length=2, choices=LanguageTypes.choices, default=LanguageTypes.HU)
|
||||
|
||||
class Meta:
|
||||
db_table = 'exercise_device_translation'
|
||||
verbose_name = _("Translation")
|
||||
verbose_name_plural = _("Translations")
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
@ -1 +1,2 @@
|
||||
from .prod import *
|
||||
from .dev import *
|
||||
|
@ -15,6 +15,10 @@ import os
|
||||
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
|
||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
LOCALE_PATHS = [
|
||||
'D:\\projects\\aitrainer\\src\\aitrainer_backoffice\\aitrainer_backoffice\\locale'
|
||||
]
|
||||
|
||||
# Quick-start development settings - unsuitable for production
|
||||
# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/
|
||||
|
||||
@ -142,4 +146,4 @@ LOGGING = {
|
||||
'propagate': True,
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user