From 826b1f900da097a97eb89b5c4b104d58e5192a78 Mon Sep 17 00:00:00 2001 From: Bossanyi Tibor Date: Mon, 9 Nov 2020 15:24:40 +0100 Subject: [PATCH] Property, PropertyTranslation --- .../aitrainer_backoffice/admin.py | 25 +++++++++++++++- .../aitrainer_backoffice/models.py | 29 +++++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) diff --git a/aitrainer_backoffice/aitrainer_backoffice/admin.py b/aitrainer_backoffice/aitrainer_backoffice/admin.py index d3d63e5..90cd7a9 100644 --- a/aitrainer_backoffice/aitrainer_backoffice/admin.py +++ b/aitrainer_backoffice/aitrainer_backoffice/admin.py @@ -2,7 +2,7 @@ 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 +from .models import ExerciseType, Product, Purchase, Property, PropertyTranslation from .models import ExerciseTypeImage from .models import ExerciseTypeTranslation from .models import ExerciseTreeTranslation @@ -142,11 +142,34 @@ class PurchaseAdmin(admin.ModelAdmin): list_filter = ['product'] +class TranslationPropertyInline(admin.TabularInline): + model = PropertyTranslation + fields = ('language_code', 'property_name') + extra = 0 + + +class PropertyAdmin(admin.ModelAdmin): + list_display = ('name_colored',) + search_fields = ['property_name'] + + def name_colored(self, obj): + color_code = '7bc863' + html = '{}˓→'.format(color_code, obj.property_name) + return format_html(html) + + name_colored.admin_order_field = 'property_name' + + inlines = [ + TranslationPropertyInline + ] + + admin.site.register(ExerciseType, ExerciseTypeAdmin) admin.site.register(ExerciseTree, ExerciseTreeAdmin) admin.site.register(ExercisePlan, ExercisePlanAdmin) admin.site.register(ExercisePlanDetail, ExercisePlanDetailAdmin) admin.site.register(Product, ProductAdmin) admin.site.register(Purchase, PurchaseAdmin) +admin.site.register(Property, PropertyAdmin) admin.autodiscover() diff --git a/aitrainer_backoffice/aitrainer_backoffice/models.py b/aitrainer_backoffice/aitrainer_backoffice/models.py index 3baf6ab..7b427ce 100644 --- a/aitrainer_backoffice/aitrainer_backoffice/models.py +++ b/aitrainer_backoffice/aitrainer_backoffice/models.py @@ -186,3 +186,32 @@ class Purchase(models.Model): db_table = 'purchase' verbose_name = _("Purchase") verbose_name_plural = _("Purchases") + + +class Property(models.Model): + property_id = models.AutoField(primary_key=True) + property_name = models.CharField(max_length=100, help_text='The name should be in English here') + property_unit = models.CharField(max_length=10) + + class Meta: + db_table = 'property' + verbose_name = _("Customer Property") + verbose_name_plural = _("Customer Properties") + + def __str__(self): + return self.property_name + + +class PropertyTranslation(models.Model): + translation_id = models.AutoField(primary_key=True) + property = models.ForeignKey(Property, on_delete=models.CASCADE) + language_code = models.CharField(max_length=2, choices=LanguageTypes.choices, default=LanguageTypes.HU) + property_name = models.CharField(max_length=100) + + class Meta: + db_table = 'property_translation' + verbose_name = _("Translation") + verbose_name_plural = _("Translations") + + def __str__(self): + return self.property_name \ No newline at end of file