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.contrib import admin
|
||||||
from django.db.models import Sum
|
|
||||||
from django.utils.html import format_html
|
from django.utils.html import format_html
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from .models import ExerciseType, Product, Purchase, Property, PropertyTranslation
|
from .models import ExerciseType, Product, Purchase, Property, PropertyTranslation
|
||||||
|
from .models import ExerciseDevice, ExerciseDeviceTranslation, ExerciseTypeDevice
|
||||||
from .models import ExerciseTypeImage
|
from .models import ExerciseTypeImage
|
||||||
from .models import ExerciseTypeTranslation
|
from .models import ExerciseTypeTranslation
|
||||||
from .models import ExerciseTreeTranslation
|
from .models import ExerciseTreeTranslation
|
||||||
@ -12,6 +12,12 @@ from .models import ExercisePlanDetail
|
|||||||
from .models import ExercisePlan
|
from .models import ExercisePlan
|
||||||
|
|
||||||
|
|
||||||
|
class ExerciseTypeDeviceInline(admin.StackedInline):
|
||||||
|
model = ExerciseTypeDevice
|
||||||
|
extra = 0
|
||||||
|
fields = ["exercise_type", "exercise_device"]
|
||||||
|
|
||||||
|
|
||||||
class ImageInline(admin.StackedInline):
|
class ImageInline(admin.StackedInline):
|
||||||
model = ExerciseTypeImage
|
model = ExerciseTypeImage
|
||||||
extra = 0
|
extra = 0
|
||||||
@ -53,7 +59,8 @@ class ExerciseTypeAdmin(admin.ModelAdmin):
|
|||||||
|
|
||||||
inlines = [
|
inlines = [
|
||||||
ImageInline,
|
ImageInline,
|
||||||
TranslationInline
|
TranslationInline,
|
||||||
|
ExerciseTypeDeviceInline
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@ -125,6 +132,7 @@ class ExercisePlanDetailAdmin(admin.ModelAdmin):
|
|||||||
list_editable = ('serie', 'repeat', 'weight_equation',)
|
list_editable = ('serie', 'repeat', 'weight_equation',)
|
||||||
#list_editable_link('',)
|
#list_editable_link('',)
|
||||||
|
|
||||||
|
|
||||||
def get_plan(self, obj):
|
def get_plan(self, obj):
|
||||||
return obj.exercise_plan.name
|
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(ExerciseType, ExerciseTypeAdmin)
|
||||||
admin.site.register(ExerciseTree, ExerciseTreeAdmin)
|
admin.site.register(ExerciseTree, ExerciseTreeAdmin)
|
||||||
admin.site.register(ExercisePlan, ExercisePlanAdmin)
|
admin.site.register(ExercisePlan, ExercisePlanAdmin)
|
||||||
@ -171,5 +193,6 @@ admin.site.register(ExercisePlanDetail, ExercisePlanDetailAdmin)
|
|||||||
admin.site.register(Product, ProductAdmin)
|
admin.site.register(Product, ProductAdmin)
|
||||||
admin.site.register(Purchase, PurchaseAdmin)
|
admin.site.register(Purchase, PurchaseAdmin)
|
||||||
admin.site.register(Property, PropertyAdmin)
|
admin.site.register(Property, PropertyAdmin)
|
||||||
|
admin.site.register(ExerciseDevice, ExerciseDeviceAdmin)
|
||||||
admin.autodiscover()
|
admin.autodiscover()
|
||||||
|
|
||||||
|
@ -2,6 +2,25 @@ from django.db import models
|
|||||||
from django.utils.translation import ugettext_lazy as _
|
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):
|
class ExerciseTree(models.Model):
|
||||||
tree_id = models.AutoField(primary_key=True)
|
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')
|
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
|
return self.name
|
||||||
|
|
||||||
|
|
||||||
class LanguageTypes(models.TextChoices):
|
|
||||||
EN = "en"
|
|
||||||
HU = "hu"
|
|
||||||
|
|
||||||
|
|
||||||
class ExerciseTypeTranslation(models.Model):
|
class ExerciseTypeTranslation(models.Model):
|
||||||
translation_id = models.AutoField(primary_key=True)
|
translation_id = models.AutoField(primary_key=True)
|
||||||
exercise_type = models.ForeignKey(ExerciseType, on_delete=models.CASCADE)
|
exercise_type = models.ForeignKey(ExerciseType, on_delete=models.CASCADE)
|
||||||
@ -215,3 +229,29 @@ class PropertyTranslation(models.Model):
|
|||||||
|
|
||||||
def __str__(self):
|
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 .prod import *
|
||||||
|
from .dev import *
|
||||||
|
@ -15,6 +15,10 @@ import os
|
|||||||
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
|
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
|
||||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
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
|
# Quick-start development settings - unsuitable for production
|
||||||
# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/
|
# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user