From 18353241f679b6023500fdd1c1a807fe8b7f999b Mon Sep 17 00:00:00 2001 From: Bossanyi Tibor Date: Thu, 3 Dec 2020 18:30:44 +0100 Subject: [PATCH] API 1.0.18 Tree Parents --- .../aitrainer_backoffice/admin.py | 57 ++++++++------ .../locale/hu/LC_MESSAGES/django.mo | Bin 1799 -> 2022 bytes .../locale/hu/LC_MESSAGES/django.po | 74 +++++++++++++++--- .../aitrainer_backoffice/models.py | 26 ++++-- aitrainer_backoffice/translate.bat | 4 +- requirements.txt | 2 +- 6 files changed, 122 insertions(+), 41 deletions(-) diff --git a/aitrainer_backoffice/aitrainer_backoffice/admin.py b/aitrainer_backoffice/aitrainer_backoffice/admin.py index 63a55a0..44cbf9e 100644 --- a/aitrainer_backoffice/aitrainer_backoffice/admin.py +++ b/aitrainer_backoffice/aitrainer_backoffice/admin.py @@ -7,7 +7,7 @@ from .models import ExerciseDevice, ExerciseDeviceTranslation, ExerciseTypeDevic from .models import ExerciseTypeImage from .models import ExerciseTypeTranslation from .models import ExerciseTreeTranslation -from .models import ExerciseTree +from .models import ExerciseTree, ExerciseTreeParents from .models import ExercisePlanTranslation from .models import ExercisePlanDetail from .models import ExercisePlan @@ -40,9 +40,23 @@ class TranslationInline(admin.TabularInline): extra = 0 +class ExerciseTypeAlternativesInline(admin.TabularInline): + model = ExerciseTypeAlternative + fk_name = 'exercise_type_child' + fields = ('exercise_type_parent',) + extra = 0 + + +class ExerciseTypeParentsInline(admin.TabularInline): + model = ExerciseTypeParents + fields = ('exercise_tree',) + extra = 0 + + class ExerciseTypeAdmin(admin.ModelAdmin): list_display = ('exercise_type_id', 'tree', 'name_colored', 'active', 'base') search_fields = ['name'] + fields = ('name', 'description', 'unit', 'unit_quantity', 'unit_quantity_unit', 'active', 'base') def name_colored(self, obj): if obj.active: @@ -62,6 +76,8 @@ class ExerciseTypeAdmin(admin.ModelAdmin): ImageInline, TranslationInline, ExerciseTypeDeviceInline, + ExerciseTypeAlternativesInline, + ExerciseTypeParentsInline ] exclude = ('exercise_tree',) @@ -72,8 +88,15 @@ class TranslationTreeInline(admin.TabularInline): extra = 0 +class ExerciseTreeParentsInline(admin.TabularInline): + model = ExerciseTreeParents + fk_name = 'exercise_tree_child' + fields = ('exercise_tree_parent',) + extra = 0 + + class ExerciseTreeAdmin(admin.ModelAdmin): - list_display = ('tree_id', 'name_colored', 'parent_id', 'active') + list_display = ('tree_id', 'name_colored', 'active') search_fields = ['name'] fields = ["name", "parent_id", "image_url", "active", "get_image_preview"] @@ -102,7 +125,8 @@ class ExerciseTreeAdmin(admin.ModelAdmin): name_colored.short_description = 'name' inlines = [ - TranslationTreeInline + TranslationTreeInline, + ExerciseTreeParentsInline ] @@ -178,13 +202,16 @@ class TranslationExerciseDeviceInline(admin.TabularInline): fields = ('language_code', 'name') extra = 0 - def __init__(self, parent_model, admin_site): - super().__init__(parent_model, admin_site) - self.short_description = _("Nyelvi kód") + +class ExerciseDeviceAlternativesInline(admin.TabularInline): + model = ExerciseDeviceAlternative + fk_name = 'exercise_device_child' + fields = ('exercise_device_parent',) + extra = 0 class ExerciseDeviceAdmin(admin.ModelAdmin): - list_display = ('exercise_device_id', 'name') + list_display = ('name',) fields = ('name', 'description', "image_url", "get_image_preview", "sort", "place") readonly_fields = ("get_image_preview",) @@ -198,21 +225,10 @@ class ExerciseDeviceAdmin(admin.ModelAdmin): inlines = [ TranslationExerciseDeviceInline, + ExerciseDeviceAlternativesInline ] -class ExerciseDeviceAlternativeAdmin(admin.ModelAdmin): - list_display = ('exercise_device_alternative_id', 'exercise_device_parent') - - -class ExerciseTypeAlternativeAdmin(admin.ModelAdmin): - list_display = ('exercise_type_alternative_id',) - - -class ExerciseTypeParentsAdmin(admin.ModelAdmin): - list_display = ('exercise_type_parents_id', 'exercise_type') - - admin.site.register(ExerciseType, ExerciseTypeAdmin) admin.site.register(ExerciseTree, ExerciseTreeAdmin) admin.site.register(ExercisePlan, ExercisePlanAdmin) @@ -221,8 +237,5 @@ admin.site.register(Product, ProductAdmin) admin.site.register(Purchase, PurchaseAdmin) admin.site.register(Property, PropertyAdmin) admin.site.register(ExerciseDevice, ExerciseDeviceAdmin) -admin.site.register(ExerciseDeviceAlternative, ExerciseDeviceAlternativeAdmin) -admin.site.register(ExerciseTypeAlternative, ExerciseTypeAlternativeAdmin) -admin.site.register(ExerciseTypeParents, ExerciseTypeParentsAdmin) admin.autodiscover() diff --git a/aitrainer_backoffice/aitrainer_backoffice/locale/hu/LC_MESSAGES/django.mo b/aitrainer_backoffice/aitrainer_backoffice/locale/hu/LC_MESSAGES/django.mo index 565a78e03be6224eb2ef594968a9567fd62f5bd2..6cc18ccf40cfdc0978016c355a2355627cec8b3d 100644 GIT binary patch delta 944 zcmZ{iJ!n%=6vt1JHfq$gP1XACZ6`|+T(py53&lZ;MWx^(gmOzuUXqf$(AFjBU~v&8 z6hvKgP;k{n>>v%If(Q;GF2zX@#KG0Y-~YXb1WFG%`Q39r&iUW-?n?egPjjQtwQ88d z56e?#BVw9A>^H?SGHh2w6=xoHM zS(SkjEJ1C&33tIeaGY*Dgets2_5t_@N??xc65`-KcnT`dg(RMa`-#g?7r6!1xz&Wv zV1fGfia`#3gi81oD&a3EAsJ+=g}qSo4ob)oVq3BY5X_U(fg9A_!0b& z*;U1nO5H>cYo{N^_Q|p-c5DzV9p7=*z>L@d_E z(jZ|a7LQnJl++?(@cms^IO(~co_qi2od5aXTL^B{SWh9}wxPAT{R_M34<0VG1+Ot- zT*NwD#}Mwg_m8oR@j2Gx6*k}l2C;~>=q>pfhf(8BtTx6n{ru6yA=JbPtii-jfLTK& zu!-fkkA6IIpPynW;~WMsk4osq^%gbn5i9W(tMDC%JQn|a#x%h&t15v>R6>i`h*{JE zd+zuUn;D;@61_)Nrhu*Zf$dmNRu$NXT5k}w-Z(0OSqy6bWj7#;%5WFS$s8&GPmrI< zadA$FO6Ud^e}|OPyr4FGLv8Sh?pt)`amz_uv8t%5WGN$MtrJA(+E9!CHr8;O-kBOz zbKXCPG%a*hPMc~&RYND$x1>t`Z%UL;!8w>2UP@<@iC8K+cJ}P;_1FWxj$36&* Fd;^osS>yl! diff --git a/aitrainer_backoffice/aitrainer_backoffice/locale/hu/LC_MESSAGES/django.po b/aitrainer_backoffice/aitrainer_backoffice/locale/hu/LC_MESSAGES/django.po index 8942dd4..426177c 100644 --- a/aitrainer_backoffice/aitrainer_backoffice/locale/hu/LC_MESSAGES/django.po +++ b/aitrainer_backoffice/aitrainer_backoffice/locale/hu/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-12-03 14:42+0100\n" +"POT-Creation-Date: 2020-12-03 18:29+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,8 +18,8 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: .\aitrainer_backoffice\admin.py:34 .\aitrainer_backoffice\admin.py:88 -#: .\aitrainer_backoffice\admin.py:194 +#: .\aitrainer_backoffice\admin.py:34 .\aitrainer_backoffice\admin.py:114 +#: .\aitrainer_backoffice\admin.py:227 msgid "Image Preview" msgstr "Kép előnézet" @@ -33,11 +33,11 @@ msgstr "Edzés eszközök" #: .\aitrainer_backoffice\models.py:42 msgid "Exercise Tree" -msgstr "Gyakorlat menü" +msgstr "Gyakorlat Menü" #: .\aitrainer_backoffice\models.py:43 msgid "Exercise Tree Items" -msgstr "Gyakorlat menü elem" +msgstr "Gyakorlat Menü elemek" #: .\aitrainer_backoffice\models.py:76 msgid "Exercise" @@ -107,6 +107,18 @@ msgstr "Ügyfél tulajdonság" msgid "Customer Properties" msgstr "Ügyfél tulajdonságok" +#: .\aitrainer_backoffice\models.py:274 +#, fuzzy +#| msgid "Exercise Tree Parent" +msgid "exercise_device_parent" +msgstr "Gyakorlat Eszköz szülő" + +#: .\aitrainer_backoffice\models.py:276 +#, fuzzy +#| msgid "Exercise Tree" +msgid "exercise_device_child" +msgstr "Gyakorlat eszköz" + #: .\aitrainer_backoffice\models.py:280 msgid "Device Alternative" msgstr "Eszköz alternatíva" @@ -115,18 +127,58 @@ msgstr "Eszköz alternatíva" msgid "Device Alternatives" msgstr "Eszköz alternatívák" -#: .\aitrainer_backoffice\models.py:292 +#: .\aitrainer_backoffice\models.py:288 +#, fuzzy +#| msgid "Exercise Tree Parent" +msgid "exercise_type_parent" +msgstr "Gyakorlat szülő" + +#: .\aitrainer_backoffice\models.py:290 +#, fuzzy +#| msgid "Exercise Tree" +msgid "exercise_type_child" +msgstr "Aktuális gyakorlat" + +#: .\aitrainer_backoffice\models.py:294 msgid "Exercise Alternative" msgstr "Gyakorlat alternatíva" -#: .\aitrainer_backoffice\models.py:293 +#: .\aitrainer_backoffice\models.py:295 msgid "Exercise Alternatives" msgstr "Gyakorlat alternatívák" -#: .\aitrainer_backoffice\models.py:304 +#: .\aitrainer_backoffice\models.py:306 msgid "Exercise Parent" -msgstr "Gyakorlat szülő menüpont" +msgstr "Gyakorlat szülő" -#: .\aitrainer_backoffice\models.py:305 +#: .\aitrainer_backoffice\models.py:307 msgid "Exercise Parents" -msgstr "Gyakorlat szülő menüpontok" +msgstr "Gyakorlat szülők" + +#: .\aitrainer_backoffice\models.py:313 +#, fuzzy +#| msgid "Exercise Tree Parent" +msgid "exercise_tree_parent" +msgstr "Gyakorlat Menü szülő" + +#: .\aitrainer_backoffice\models.py:313 +msgid "Parent menu" +msgstr "Szülő menüpont" + +#: .\aitrainer_backoffice\models.py:314 +#, fuzzy +#| msgid "Exercise Tree" +msgid "exercise_tree_child" +msgstr "Aktuális Gyakorlat Menü" + +#: .\aitrainer_backoffice\models.py:314 +msgid "Actual menu" +msgstr "Aktuális menüpont" + +#: .\aitrainer_backoffice\models.py:318 +msgid "Exercise Tree Parent" +msgstr "Gyakorlat Menü szülő" + +#: .\aitrainer_backoffice\models.py:319 +msgid "Exercise Tree Parents" +msgstr "Gyakorlat Menü szülők" diff --git a/aitrainer_backoffice/aitrainer_backoffice/models.py b/aitrainer_backoffice/aitrainer_backoffice/models.py index 8aa1b54..58eae89 100644 --- a/aitrainer_backoffice/aitrainer_backoffice/models.py +++ b/aitrainer_backoffice/aitrainer_backoffice/models.py @@ -271,9 +271,9 @@ class ExerciseDeviceTranslation(models.Model): class ExerciseDeviceAlternative(models.Model): exercise_device_alternative_id = models.AutoField(primary_key=True) exercise_device_parent = models.ForeignKey(ExerciseDevice, on_delete=models.CASCADE, - related_name='exercise_device_parent') + related_name=_('exercise_device_parent')) exercise_device_child = models.ForeignKey(ExerciseDevice, on_delete=models.CASCADE, - related_name='exercise_device_child') + related_name=_('exercise_device_child')) class Meta: db_table = 'exercise_device_alternative' @@ -284,14 +284,16 @@ class ExerciseDeviceAlternative(models.Model): class ExerciseTypeAlternative(models.Model): exercise_type_alternative_id = models.AutoField(primary_key=True) - exercise_type_parent = models.ForeignKey(ExerciseType, on_delete=models.CASCADE, related_name='exercise_type_parent') - exercise_type_child = models.ForeignKey(ExerciseType, on_delete=models.CASCADE, related_name='exercise_type_child') + exercise_type_parent = models.ForeignKey(ExerciseType, on_delete=models.CASCADE, + related_name=_('exercise_type_parent')) + exercise_type_child = models.ForeignKey(ExerciseType, on_delete=models.CASCADE, + related_name=_('exercise_type_child')) class Meta: db_table = 'exercise_type_alternative' verbose_name = _("Exercise Alternative") verbose_name_plural = _("Exercise Alternatives") - #unique_together = [['exercise_type_parent', 'exercise_type_child']] + unique_together = [['exercise_type_parent', 'exercise_type_child']] class ExerciseTypeParents(models.Model): @@ -303,4 +305,16 @@ class ExerciseTypeParents(models.Model): db_table = 'exercise_type_parents' verbose_name = _("Exercise Parent") verbose_name_plural = _("Exercise Parents") - unique_together= [['exercise_type', 'exercise_tree']] \ No newline at end of file + unique_together= [['exercise_type', 'exercise_tree']] + + +class ExerciseTreeParents(models.Model): + exercise_tree_parents_id = models.AutoField(primary_key=True) + exercise_tree_parent = models.ForeignKey(ExerciseTree, on_delete=models.CASCADE, related_name=_('exercise_tree_parent'), help_text=_('Parent menu')) + exercise_tree_child = models.ForeignKey(ExerciseTree, on_delete=models.CASCADE, related_name=_('exercise_tree_child'), help_text=_('Actual menu')) + + class Meta: + db_table = 'exercise_tree_parents' + verbose_name = _("Exercise Tree Parent") + verbose_name_plural = _("Exercise Tree Parents") + unique_together= [['exercise_tree_parent', 'exercise_tree_child']] \ No newline at end of file diff --git a/aitrainer_backoffice/translate.bat b/aitrainer_backoffice/translate.bat index e20c367..c018a6f 100644 --- a/aitrainer_backoffice/translate.bat +++ b/aitrainer_backoffice/translate.bat @@ -1 +1,3 @@ -django-admin makemessages -l hu --ignore venv --pythonpath "D:\projects\aitrainer\src\aitrainer_backoffice" --settings aitrainer_backoffice.aitrainer_backoffice.settings.dev \ No newline at end of file +django-admin makemessages -l hu --ignore venv --pythonpath "D:\projects\aitrainer\src\aitrainer_backoffice" --settings aitrainer_backoffice.aitrainer_backoffice.settings.dev + +## compilemessages \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 489ab8e..7262caa 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -django==3.0.8 +django==3.1.4 asgiref==3.2.10 certifi==2020.6.20 chardet==3.0.4