Backoffice for API 1.0.14 ExerciseDevice, ExerciseTypeDevice

This commit is contained in:
Bossanyi Tibor 2020-11-20 15:53:13 +01:00
parent 826b1f900d
commit aa23ec4e49
4 changed files with 77 additions and 9 deletions

View File

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

View File

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

View File

@ -1 +1,2 @@
from .prod import *
from .dev import *

View File

@ -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,
},
},
}
}