BO 1.8 Evaluation

This commit is contained in:
Bossanyi Tibor 2021-04-03 14:36:31 +02:00
parent a16de5c7cd
commit fa6cd89fe2
4 changed files with 205 additions and 99 deletions

View File

@ -1,13 +1,12 @@
from abc import ABC from django.contrib import admin, messages
from django.contrib import admin
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 _, ngettext
#from treenode.admin import TreeNodeModelAdmin # from treenode.admin import TreeNodeModelAdmin
#from treenode.forms import TreeNodeForm # from treenode.forms import TreeNodeForm
from .models import ExerciseType, ExerciseTypeAlternative, ExerciseTypeParents from .models import ExerciseType, ExerciseTypeAlternative, ExerciseTypeParents
from .models import Product from .models import Product
from .models import Evaluation, EvaluationAttribute
from .models import ExerciseDevice, ExerciseDeviceTranslation, ExerciseTypeDevice, ExerciseDeviceAlternative from .models import ExerciseDevice, ExerciseDeviceTranslation, ExerciseTypeDevice, ExerciseDeviceAlternative
from .models import ExerciseTypeImage from .models import ExerciseTypeImage
from .models import ExerciseTypeTranslation from .models import ExerciseTypeTranslation
@ -15,7 +14,6 @@ from .models import ExerciseTreeTranslation
from .models import ExerciseTree from .models import ExerciseTree
from .models import ExerciseTreeParents from .models import ExerciseTreeParents
from .models import ExercisePlanTranslation from .models import ExercisePlanTranslation
from .models import ExercisePlan
from .models import ExercisePlanTemplate, ExercisePlanTemplateTranslation, ExercisePlanTemplateDetail from .models import ExercisePlanTemplate, ExercisePlanTemplateTranslation, ExercisePlanTemplateDetail
''' '''
@ -53,7 +51,7 @@ class ExerciseTreeAdmin(admin.ModelAdmin):
list_display = ('tree_id', 'name_colored', 'active') list_display = ('tree_id', 'name_colored', 'active')
search_fields = ['name'] search_fields = ['name']
fields = ["name", 'description', "image_url", "active", "get_image_preview"] fields = ["name", 'description', "image_url", "active", "get_image_preview"]
readonly_fields = ("get_image_preview",) readonly_fields = ("get_image_preview",)
def get_image_preview(self, obj): def get_image_preview(self, obj):
@ -198,9 +196,8 @@ class ExercisePlanTemplateAdmin(admin.ModelAdmin):
class ExercisePlanTemplateDetailAdmin(admin.ModelAdmin): class ExercisePlanTemplateDetailAdmin(admin.ModelAdmin):
list_display = ('get_plan', 'get_exercise_type', 'quantity', 'quantity_unit_quantity','rest_time',) list_display = ('get_plan', 'get_exercise_type', 'quantity', 'quantity_unit_quantity', 'rest_time',)
list_editable = ('serie', 'quantity', 'quantity_unit_quantity','rest_time') list_editable = ('serie', 'quantity', 'quantity_unit_quantity', 'rest_time')
def get_plan(self, obj): def get_plan(self, obj):
return obj.exercise_plan_template.name return obj.exercise_plan_template.name
@ -231,6 +228,7 @@ class ExercisePlanAdmin(admin.ModelAdmin):
TranslationPlanInline TranslationPlanInline
] ]
''' '''
class ExercisePlanDetailAdmin(admin.ModelAdmin): class ExercisePlanDetailAdmin(admin.ModelAdmin):
list_display = ('get_plan', 'get_exercise_type', 'serie', 'repeats', 'weight_equation',) list_display = ('get_plan', 'get_exercise_type', 'serie', 'repeats', 'weight_equation',)
@ -282,10 +280,35 @@ class ExerciseDeviceAdmin(admin.ModelAdmin):
] ]
class EvaluationAdmin(admin.ModelAdmin):
list_display = ('evaluation_id', 'name', 'get_exercise_type')
def get_exercise_type(self, obj):
return obj.exercise_type.name
class EvaluationAttributeAdmin(admin.ModelAdmin):
list_display = (
'evaluation_attr_id', 'name', 'sex', 'age_min', 'age_max', 'value_min', 'value_max', 'evaluation_text')
list_editable = ('name', 'sex', 'age_min', 'age_max', 'value_min', 'value_max', 'evaluation_text')
list_filter = ('evaluation',)
def copy_attributes(self, request, queryset):
for objectAttr in queryset:
objectAttr.pk = None
objectAttr.name = objectAttr.name + "_copy"
objectAttr.save()
copy_attributes.short_description = "Clone the selected attribute"
actions = [copy_attributes]
admin.site.register(ExerciseType, ExerciseTypeAdmin) admin.site.register(ExerciseType, ExerciseTypeAdmin)
admin.site.register(ExerciseTree, ExerciseTreeAdmin) admin.site.register(ExerciseTree, ExerciseTreeAdmin)
admin.site.register(ExercisePlanTemplate, ExercisePlanTemplateAdmin) admin.site.register(ExercisePlanTemplate, ExercisePlanTemplateAdmin)
#admin.site.register(ExercisePlan, ExercisePlanAdmin)
admin.site.register(Product, ProductAdmin) admin.site.register(Product, ProductAdmin)
admin.site.register(ExerciseDevice, ExerciseDeviceAdmin) admin.site.register(ExerciseDevice, ExerciseDeviceAdmin)
admin.site.register(Evaluation, EvaluationAdmin)
admin.site.register(EvaluationAttribute, EvaluationAttributeAdmin)
admin.autodiscover() admin.autodiscover()

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-23 14:53+0100\n" "POT-Creation-Date: 2021-04-03 14:27+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,191 +18,219 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: .\aitrainer_backoffice\admin.py:48 .\aitrainer_backoffice\admin.py:94 #: .\aitrainer_backoffice\admin.py:63 .\aitrainer_backoffice\admin.py:109
#: .\aitrainer_backoffice\admin.py:258 #: .\aitrainer_backoffice\admin.py:275
msgid "Image Preview" msgid "Image Preview"
msgstr "Kép előnézet" msgstr "Kép előnézet"
#: .\aitrainer_backoffice\models.py:27 .\aitrainer_backoffice\models.py:201 #: .\aitrainer_backoffice\models.py:30 .\aitrainer_backoffice\models.py:211
msgid "Exercise Device" msgid "Exercise Device"
msgstr "Edzés eszköz" msgstr "Edzés eszköz"
#: .\aitrainer_backoffice\models.py:28 .\aitrainer_backoffice\models.py:202 #: .\aitrainer_backoffice\models.py:31 .\aitrainer_backoffice\models.py:212
msgid "Exercise Devices" msgid "Exercise Devices"
msgstr "Edzés eszközök" msgstr "Edzés eszközök"
#: .\aitrainer_backoffice\models.py:42 #: .\aitrainer_backoffice\models.py:46
#, fuzzy
#| msgid "Exercise Tree Parent"
msgid "exercise_device_parent" msgid "exercise_device_parent"
msgstr "Gyakorlat Eszköz szülő" msgstr "Gyakorlat Eszköz szülő"
#: .\aitrainer_backoffice\models.py:44 #: .\aitrainer_backoffice\models.py:48
#, fuzzy
#| msgid "Exercise Tree"
msgid "exercise_device_child" msgid "exercise_device_child"
msgstr "Gyakorlat eszköz" msgstr "Gyakorlat eszköz"
#: .\aitrainer_backoffice\models.py:48 #: .\aitrainer_backoffice\models.py:52
msgid "Device Alternative" msgid "Device Alternative"
msgstr "Eszköz alternatíva" msgstr "Eszköz alternatíva"
#: .\aitrainer_backoffice\models.py:49 #: .\aitrainer_backoffice\models.py:53
msgid "Device Alternatives" msgid "Device Alternatives"
msgstr "Eszköz alternatívák" msgstr "Eszköz alternatívák"
#: .\aitrainer_backoffice\models.py:61 .\aitrainer_backoffice\models.py:98 #: .\aitrainer_backoffice\models.py:65 .\aitrainer_backoffice\models.py:106
#: .\aitrainer_backoffice\models.py:187 .\aitrainer_backoffice\models.py:261 #: .\aitrainer_backoffice\models.py:197 .\aitrainer_backoffice\models.py:271
#: .\aitrainer_backoffice\models.py:307 .\aitrainer_backoffice\models.py:390 #: .\aitrainer_backoffice\models.py:317 .\aitrainer_backoffice\models.py:400
msgid "Translation" msgid "Translation"
msgstr "Fordítás" msgstr "Fordítás"
#: .\aitrainer_backoffice\models.py:62 .\aitrainer_backoffice\models.py:99 #: .\aitrainer_backoffice\models.py:66 .\aitrainer_backoffice\models.py:107
#: .\aitrainer_backoffice\models.py:188 .\aitrainer_backoffice\models.py:262 #: .\aitrainer_backoffice\models.py:198 .\aitrainer_backoffice\models.py:272
#: .\aitrainer_backoffice\models.py:308 .\aitrainer_backoffice\models.py:391 #: .\aitrainer_backoffice\models.py:318 .\aitrainer_backoffice\models.py:401
msgid "Translations" msgid "Translations"
msgstr "Fordítások" msgstr "Fordítások"
#: .\aitrainer_backoffice\models.py:83 #: .\aitrainer_backoffice\models.py:89
msgid "Exercise Tree" msgid "Exercise Tree"
msgstr "Gyakorlat Menü" msgstr "Gyakorlat Menü"
#: .\aitrainer_backoffice\models.py:84 #: .\aitrainer_backoffice\models.py:90
msgid "Exercise Tree Items" msgid "Exercise Tree Items"
msgstr "Gyakorlat Menü elemek" msgstr "Gyakorlat Menü elemek"
#: .\aitrainer_backoffice\models.py:108 #: .\aitrainer_backoffice\models.py:117
#, fuzzy
#| msgid "Exercise Tree Parent"
msgid "exercise_tree_parent" msgid "exercise_tree_parent"
msgstr "Gyakorlat Menü szülő" msgstr "Gyakorlat Menü szülő"
#: .\aitrainer_backoffice\models.py:108 #: .\aitrainer_backoffice\models.py:118
msgid "Parent menu" msgid "Parent menu"
msgstr "Szülő menüpont" msgstr "Szülő menüpont"
#: .\aitrainer_backoffice\models.py:110 #: .\aitrainer_backoffice\models.py:123 .\aitrainer_backoffice\models.py:124
#, fuzzy msgid "Menu Tree Representation"
#| msgid "Exercise Tree" msgstr ""
msgid "exercise_tree_child"
msgstr "Aktuális Gyakorlat Menü"
#: .\aitrainer_backoffice\models.py:110 #: .\aitrainer_backoffice\models.py:159
msgid "Actual menu"
msgstr "Aktuális menüpont"
#: .\aitrainer_backoffice\models.py:114
msgid "Exercise Tree Parent"
msgstr "Gyakorlat Menü szülő"
#: .\aitrainer_backoffice\models.py:115
msgid "Exercise Tree Parents"
msgstr "Gyakorlat Menü szülők"
#: .\aitrainer_backoffice\models.py:150
msgid "Exercise" msgid "Exercise"
msgstr "Gyakorlat" msgstr "Gyakorlat"
#: .\aitrainer_backoffice\models.py:151 #: .\aitrainer_backoffice\models.py:160
msgid "Exercises" msgid "Exercises"
msgstr "Gyakorlatok" msgstr "Gyakorlatok"
#: .\aitrainer_backoffice\models.py:171 #: .\aitrainer_backoffice\models.py:181
msgid "Image" msgid "Image"
msgstr "Kép" msgstr "Kép"
#: .\aitrainer_backoffice\models.py:172 #: .\aitrainer_backoffice\models.py:182
msgid "Images" msgid "Images"
msgstr "Képek" msgstr "Képek"
#: .\aitrainer_backoffice\models.py:208 #: .\aitrainer_backoffice\models.py:218
#, fuzzy
#| msgid "Exercise Tree Parent"
msgid "exercise_type_parent" msgid "exercise_type_parent"
msgstr "Gyakorlat szülő" msgstr "Gyakorlat szülő"
#: .\aitrainer_backoffice\models.py:210 #: .\aitrainer_backoffice\models.py:220
#, fuzzy
#| msgid "Exercise Tree"
msgid "exercise_type_child" msgid "exercise_type_child"
msgstr "Aktuális gyakorlat" msgstr "Aktuális gyakorlat"
#: .\aitrainer_backoffice\models.py:214 #: .\aitrainer_backoffice\models.py:224
msgid "Exercise Alternative" msgid "Exercise Alternative"
msgstr "Gyakorlat alternatíva" msgstr "Gyakorlat alternatíva"
#: .\aitrainer_backoffice\models.py:215 #: .\aitrainer_backoffice\models.py:225
msgid "Exercise Alternatives" msgid "Exercise Alternatives"
msgstr "Gyakorlat alternatívák" msgstr "Gyakorlat alternatívák"
#: .\aitrainer_backoffice\models.py:226 #: .\aitrainer_backoffice\models.py:236
msgid "Exercise Parent" msgid "Exercise Parent"
msgstr "Gyakorlat szülő" msgstr "Gyakorlat szülő"
#: .\aitrainer_backoffice\models.py:227 #: .\aitrainer_backoffice\models.py:237
msgid "Exercise Parents" msgid "Exercise Parents"
msgstr "Gyakorlat szülők" msgstr "Gyakorlat szülők"
#: .\aitrainer_backoffice\models.py:245 #: .\aitrainer_backoffice\models.py:255
#, fuzzy
#| msgid "Exercise Plan Detail"
msgid "Exercise Plan Template" msgid "Exercise Plan Template"
msgstr "Edzésterv sablon" msgstr "Edzésterv sablon"
#: .\aitrainer_backoffice\models.py:246 #: .\aitrainer_backoffice\models.py:256
#, fuzzy
#| msgid "Exercise Plan Details"
msgid "Exercise Plan Templates" msgid "Exercise Plan Templates"
msgstr "Edzésterv sablonok" msgstr "Edzésterv sablonok"
#: .\aitrainer_backoffice\models.py:279 #: .\aitrainer_backoffice\models.py:289
#, fuzzy
#| msgid "Exercise Plan Detail"
msgid "Exercise Plan Template Detail" msgid "Exercise Plan Template Detail"
msgstr "Edzésterv sablon gyakorlat" msgstr "Edzésterv sablon gyakorlat"
#: .\aitrainer_backoffice\models.py:280 #: .\aitrainer_backoffice\models.py:290
#, fuzzy
#| msgid "Exercise Plan Details"
msgid "Exercise Plan Template Details" msgid "Exercise Plan Template Details"
msgstr "Edzésterv sablon gyakorlatok" msgstr "Edzésterv sablon gyakorlatok"
#: .\aitrainer_backoffice\models.py:291 #: .\aitrainer_backoffice\models.py:301
msgid "Exercise Plan" msgid "Exercise Plan"
msgstr "Edzésterv" msgstr "Edzésterv"
#: .\aitrainer_backoffice\models.py:292 #: .\aitrainer_backoffice\models.py:302
msgid "Exercise Plans" msgid "Exercise Plans"
msgstr "Edzéstervek" msgstr "Edzéstervek"
#: .\aitrainer_backoffice\models.py:324 #: .\aitrainer_backoffice\models.py:334
msgid "Exercise Plan Detail" msgid "Exercise Plan Detail"
msgstr "Edzésterv gyakorlat" msgstr "Edzésterv gyakorlat"
#: .\aitrainer_backoffice\models.py:325 #: .\aitrainer_backoffice\models.py:335
msgid "Exercise Plan Details" msgid "Exercise Plan Details"
msgstr "Edzésterv gyakorlatok" msgstr "Edzésterv gyakorlatok"
#: .\aitrainer_backoffice\models.py:347 #: .\aitrainer_backoffice\models.py:357
msgid "Product" msgid "Product"
msgstr "Termék" msgstr "Termék"
#: .\aitrainer_backoffice\models.py:348 #: .\aitrainer_backoffice\models.py:358
msgid "Products" msgid "Products"
msgstr "Termékek" msgstr "Termékek"
#: .\aitrainer_backoffice\models.py:364 #: .\aitrainer_backoffice\models.py:374
msgid "Purchase" msgid "Purchase"
msgstr "Vásárlás" msgstr "Vásárlás"
#: .\aitrainer_backoffice\models.py:365 #: .\aitrainer_backoffice\models.py:375
msgid "Purchases" msgid "Purchases"
msgstr "Vásárlások" msgstr "Vásárlások"
#: .\aitrainer_backoffice\models.py:375 #: .\aitrainer_backoffice\models.py:385
msgid "Customer Property" msgid "Customer Property"
msgstr "Ügyfél tulajdonság" msgstr "Ügyfél tulajdonság"
#: .\aitrainer_backoffice\models.py:376 #: .\aitrainer_backoffice\models.py:386
msgid "Customer Properties" msgid "Customer Properties"
msgstr "Ügyfél tulajdonságok" msgstr "Ügyfél tulajdonságok"
#: .\aitrainer_backoffice\models.py:410
msgid "exercise_type"
msgstr "Aktuális gyakorlat"
#: .\aitrainer_backoffice\models.py:411
msgid "unit"
msgstr "Mértékegység"
#: .\aitrainer_backoffice\models.py:415
msgid "Evaluation"
msgstr "Kiértékelés"
#: .\aitrainer_backoffice\models.py:416
msgid "Evaluations"
msgstr "Kiértékelés Csoport"
#: .\aitrainer_backoffice\models.py:439
msgid "evaluation_foreign"
msgstr "Kiértékelés Főcsoport"
#: .\aitrainer_backoffice\models.py:440
msgid "name"
msgstr "Név"
#: .\aitrainer_backoffice\models.py:441
msgid "sex"
msgstr "Nem"
#: .\aitrainer_backoffice\models.py:442
msgid "age_min"
msgstr "Kortól"
#: .\aitrainer_backoffice\models.py:443
msgid "age_max"
msgstr "Korig"
#: .\aitrainer_backoffice\models.py:444
msgid "value_min"
msgstr "Min érték"
#: .\aitrainer_backoffice\models.py:445
msgid "value_max"
msgstr "Max érték"
#: .\aitrainer_backoffice\models.py:447
msgid "evaluation_text"
msgstr "Osztályozás"
#: .\aitrainer_backoffice\models.py:449
msgid "suggestion"
msgstr "Javaslat"
#: .\aitrainer_backoffice\models.py:453
msgid "Evaluation Table"
msgstr "Kiértékelés tábla"
#: .\aitrainer_backoffice\models.py:454
msgid "Evaluation Tables"
msgstr "Kiértékelés táblák"

View File

@ -1,7 +1,9 @@
from django.db import models from django.db import models
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
#from treenode.models import TreeNodeModel
# from treenode.models import TreeNodeModel
class LanguageTypes(models.TextChoices): class LanguageTypes(models.TextChoices):
@ -41,9 +43,9 @@ class ExerciseDevice(models.Model):
class ExerciseDeviceAlternative(models.Model): class ExerciseDeviceAlternative(models.Model):
exercise_device_alternative_id = models.AutoField(primary_key=True) exercise_device_alternative_id = models.AutoField(primary_key=True)
exercise_device_parent = models.ForeignKey(ExerciseDevice, on_delete=models.CASCADE, 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, exercise_device_child = models.ForeignKey(ExerciseDevice, on_delete=models.CASCADE,
related_name=_('exercise_device_child')) related_name='exercise_device_child')
class Meta: class Meta:
db_table = 'exercise_device_alternative' db_table = 'exercise_device_alternative'
@ -109,10 +111,10 @@ class ExerciseTreeTranslation(models.Model):
class ExerciseTreeParents(models.Model): class ExerciseTreeParents(models.Model):
#treenode_display_field = 'name' # treenode_display_field = 'name'
exercise_tree_parents_id = models.AutoField(primary_key=True) exercise_tree_parents_id = models.AutoField(primary_key=True)
exercise_tree_parent = models.ForeignKey(ExerciseTree, on_delete=models.CASCADE, exercise_tree_parent = models.ForeignKey(ExerciseTree, on_delete=models.CASCADE,
related_name=_('exercise_tree_parent'), related_name='exercise_tree_parent',
help_text=_('Parent menu'), blank=True) help_text=_('Parent menu'), blank=True)
exercise_tree_child = models.ForeignKey(ExerciseTree, on_delete=models.CASCADE) exercise_tree_child = models.ForeignKey(ExerciseTree, on_delete=models.CASCADE)
@ -213,9 +215,9 @@ class ExerciseTypeDevice(models.Model):
class ExerciseTypeAlternative(models.Model): class ExerciseTypeAlternative(models.Model):
exercise_type_alternative_id = models.AutoField(primary_key=True) exercise_type_alternative_id = models.AutoField(primary_key=True)
exercise_type_parent = models.ForeignKey(ExerciseType, on_delete=models.CASCADE, exercise_type_parent = models.ForeignKey(ExerciseType, on_delete=models.CASCADE,
related_name=_('exercise_type_parent')) related_name='exercise_type_parent')
exercise_type_child = models.ForeignKey(ExerciseType, on_delete=models.CASCADE, exercise_type_child = models.ForeignKey(ExerciseType, on_delete=models.CASCADE,
related_name=_('exercise_type_child')) related_name='exercise_type_child')
class Meta: class Meta:
db_table = 'exercise_type_alternative' db_table = 'exercise_type_alternative'
@ -345,8 +347,8 @@ class Product(models.Model):
type = models.CharField(max_length=15, choices=ProductTypes.choices, default=ProductTypes.SUBS) type = models.CharField(max_length=15, choices=ProductTypes.choices, default=ProductTypes.SUBS)
valid_from = models.DateField(blank=True, null=True) valid_from = models.DateField(blank=True, null=True)
valid_to = models.DateField(blank=True, null=True) valid_to = models.DateField(blank=True, null=True)
product_id_ios = models.CharField(max_length=50,blank=True, null=True) product_id_ios = models.CharField(max_length=50, blank=True, null=True)
product_id_android = models.CharField(max_length=50,blank=True, null=True) product_id_android = models.CharField(max_length=50, blank=True, null=True)
price_ios = models.DecimalField(max_length=12, decimal_places=2, max_digits=12, blank=True) price_ios = models.DecimalField(max_length=12, decimal_places=2, max_digits=12, blank=True)
price_android = models.DecimalField(max_length=12, decimal_places=2, max_digits=12, blank=True) price_android = models.DecimalField(max_length=12, decimal_places=2, max_digits=12, blank=True)
@ -400,3 +402,56 @@ class PropertyTranslation(models.Model):
def __str__(self): def __str__(self):
return self.property_name return self.property_name
class Evaluation(models.Model):
evaluation_id = models.AutoField(primary_key=True)
name = models.CharField(max_length=100, help_text='The name should be in English here')
exercise_type = models.ForeignKey(ExerciseType, on_delete=models.CASCADE, verbose_name=_("exercise_type"))
unit = models.CharField(max_length=50, verbose_name=_("unit"))
class Meta:
db_table = 'evaluation'
verbose_name = _("Evaluation")
verbose_name_plural = _("Evaluations")
def __str__(self):
return self.name
class EvaluationAttribute(models.Model):
class SexTypes(models.TextChoices):
MAN = 'm'
WOMAN = 'w'
class EvaluationTypes(models.TextChoices):
ELITE = "elite"
EXCELLENT = "excellent"
GOOD = "good"
ABOVE_AVERAGE = "above_average"
AVERAGE = "average"
BELOW_AVERAGE = "below_average"
FAIR = "fair"
POOR = "poor"
VERY_POOR = "very_poor"
evaluation_attr_id = models.AutoField(primary_key=True)
evaluation = models.ForeignKey(Evaluation, on_delete=models.CASCADE, verbose_name=_("evaluation_foreign"))
name = models.CharField(max_length=100, help_text='The name should be in English here', verbose_name=_("name"))
sex = models.CharField(max_length=1, choices=SexTypes.choices, default=SexTypes.MAN, verbose_name=_("sex"))
age_min = models.IntegerField(verbose_name=_("age_min"))
age_max = models.IntegerField(verbose_name=_("age_max"))
value_min = models.FloatField(verbose_name=_("value_min"))
value_max = models.FloatField(verbose_name=_("value_max"))
evaluation_text = models.CharField(max_length=50, choices=EvaluationTypes.choices, default=EvaluationTypes.AVERAGE,
verbose_name=_("evaluation_text"))
suggestion = models.TextField(max_length=1000, blank=True, null=True, help_text="English suggestion here",
verbose_name=_("suggestion"))
class Meta:
db_table = 'evaluation_attribute'
verbose_name = _("Evaluation Table")
verbose_name_plural = _("Evaluation Tables")
def __str__(self):
return self.name