From 5227efe17bf2bdc31af0ff8a068b48c15ffcbe7a Mon Sep 17 00:00:00 2001 From: Christian Merten Date: Sun, 2 Feb 2025 00:35:40 +0100 Subject: [PATCH] members/excursion: add LJP category field to activity category --- .../members/locale/de/LC_MESSAGES/django.po | 36 ++++++++++++++++++- .../0034_activitycategory_ljp_category.py | 18 ++++++++++ jdav_web/members/models.py | 17 +++++++++ 3 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 jdav_web/members/migrations/0034_activitycategory_ljp_category.py diff --git a/jdav_web/members/locale/de/LC_MESSAGES/django.po b/jdav_web/members/locale/de/LC_MESSAGES/django.po index a325500..fc719e6 100644 --- a/jdav_web/members/locale/de/LC_MESSAGES/django.po +++ b/jdav_web/members/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-01 21:11+0100\n" +"POT-Creation-Date: 2025-02-02 00:32+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -460,6 +460,40 @@ msgstr "Samstag" msgid "Sunday" msgstr "Sonntag" +#: members/models.py +msgid "winter" +msgstr "Winter" + +#: members/models.py +msgid "ski mountaineering" +msgstr "Skibergsteigen" + +#: members/models.py +msgid "climbing" +msgstr "Klettern" + +#: members/models.py +msgid "mountaineering" +msgstr "Bergsteigen" + +#: members/models.py +msgid "theory" +msgstr "Theorie" + +#: members/models.py +msgid "others" +msgstr "Sonstiges" + +#: members/models.py +msgid "LJP category" +msgstr "LJP Spielart" + +#: members/models.py +msgid "" +"The official category for LJP applications associated with this activity." +msgstr "" +"Die offizielle Spielart für LJP Anträge mit dieser Aktivität." + #: members/models.py msgid "Description" msgstr "Beschreibung" diff --git a/jdav_web/members/migrations/0034_activitycategory_ljp_category.py b/jdav_web/members/migrations/0034_activitycategory_ljp_category.py new file mode 100644 index 0000000..ffe16a6 --- /dev/null +++ b/jdav_web/members/migrations/0034_activitycategory_ljp_category.py @@ -0,0 +1,18 @@ +# Generated by Django 4.0.1 on 2025-02-01 23:29 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('members', '0033_freizeit_approved_extra_youth_leader_count'), + ] + + operations = [ + migrations.AddField( + model_name='activitycategory', + name='ljp_category', + field=models.CharField(choices=[('Winter', 'winter'), ('Skibergsteigen', 'ski mountaineering'), ('Klettern', 'climbing'), ('Bergsteigen', 'mountaineering'), ('Theorie', 'theory'), ('Sonstiges', 'others')], help_text='The official category for LJP applications associated with this activity.', max_length=20, verbose_name='LJP category'), + ), + ] diff --git a/jdav_web/members/models.py b/jdav_web/members/models.py index 94a4841..4a9c504 100644 --- a/jdav_web/members/models.py +++ b/jdav_web/members/models.py @@ -55,7 +55,17 @@ class ActivityCategory(models.Model): """ Describes one kind of activity """ + LJP_CATEGORIES = [('Winter', _('winter')), + ('Skibergsteigen', _('ski mountaineering')), + ('Klettern', _('climbing')), + ('Bergsteigen', _('mountaineering')), + ('Theorie', _('theory')), + ('Sonstiges', _('others'))] name = models.CharField(max_length=20, verbose_name=_('Name')) + ljp_category = models.CharField(choices=LJP_CATEGORIES, + verbose_name=_('LJP category'), + max_length=20, + help_text=_('The official category for LJP applications associated with this activity.')) description = models.TextField(_('Description')) def __str__(self): @@ -1363,6 +1373,13 @@ class Freizeit(CommonModel): base['Textfeld 58'] = base['Textfeld 62'] return base + def get_ljp_activity_category(self): + """ + The official LJP activity category associated with this excursion. This is deduced + from the `activity` field. + """ + return ", ".join([a.ljp_category for a in self.activity.all()]) + @staticmethod def filter_queryset_by_permissions(member, queryset=None): if queryset is None: