From 251f88526e60afa8afd51e674fae49898d0b5bca Mon Sep 17 00:00:00 2001 From: mipel Date: Mon, 20 Sep 2021 12:47:55 +0200 Subject: [PATCH] #18 EcoAccount funding * adds fundings field to AbstractCompensation model * adds funded by to detail view templates of Compensation and EcoAccount * adds/updates translations --- compensation/models.py | 15 +++++++- .../detail/compensation/view.html | 13 +++++++ .../compensation/detail/eco_account/view.html | 13 +++++++ locale/de/LC_MESSAGES/django.mo | Bin 19884 -> 19949 bytes locale/de/LC_MESSAGES/django.po | 34 ++++++++++-------- 5 files changed, 60 insertions(+), 15 deletions(-) diff --git a/compensation/models.py b/compensation/models.py index bc6aaa58..4ab3f952 100644 --- a/compensation/models.py +++ b/compensation/models.py @@ -15,7 +15,8 @@ from django.db.models import Sum, QuerySet from django.utils.translation import gettext_lazy as _ from codelist.models import KonovaCode -from codelist.settings import CODELIST_COMPENSATION_ACTION_ID, CODELIST_BIOTOPES_ID +from codelist.settings import CODELIST_COMPENSATION_ACTION_ID, CODELIST_BIOTOPES_ID, \ + CODELIST_COMPENSATION_COMBINATION_ID from intervention.models import Intervention, ResponsibilityData from konova.models import BaseObject, BaseResource, Geometry, UuidModel, AbstractDocument, \ generate_document_file_upload_path @@ -138,6 +139,18 @@ class AbstractCompensation(BaseObject): after_states = models.ManyToManyField(CompensationState, blank=True, related_name='+', help_text="Refers to 'Zielzustand Biotop'") actions = models.ManyToManyField(CompensationAction, blank=True, help_text="Refers to 'Maßnahmen'") + fundings = models.ManyToManyField( + KonovaCode, + null=True, + blank=True, + limit_choices_to={ + "code_lists__in": [CODELIST_COMPENSATION_COMBINATION_ID], + "is_selectable": True, + "is_archived": False, + }, + help_text="List of funding project codes", + ) + deadlines = models.ManyToManyField("konova.Deadline", blank=True, related_name="+") geometry = models.ForeignKey(Geometry, null=True, blank=True, on_delete=models.SET_NULL) diff --git a/compensation/templates/compensation/detail/compensation/view.html b/compensation/templates/compensation/detail/compensation/view.html index f0c0c1ad..6401cdb7 100644 --- a/compensation/templates/compensation/detail/compensation/view.html +++ b/compensation/templates/compensation/detail/compensation/view.html @@ -66,6 +66,19 @@ {% endif %} + + {% trans 'Funded by' %} + + {% for funding in obj.fundings.all %} +
+ {{ funding.short_name}} +
+
+ {% empty %} + None + {% endfor %} + + {% trans 'Last modified' %} diff --git a/compensation/templates/compensation/detail/eco_account/view.html b/compensation/templates/compensation/detail/eco_account/view.html index 7af9b648..f03c22b2 100644 --- a/compensation/templates/compensation/detail/eco_account/view.html +++ b/compensation/templates/compensation/detail/eco_account/view.html @@ -65,6 +65,19 @@ {% trans 'Intervention handler' %} {{obj.responsible.handler|default_if_none:""}} + + {% trans 'Funded by' %} + + {% for funding in obj.fundings.all %} +
+ {{ funding.short_name}} +
+
+ {% empty %} + {% trans 'None' %} + {% endfor %} + + {% trans 'Last modified' %} diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index 25b93fb8ee941c123accd3f177d6164916ccbea0..51178b8f6d163804c310eeed53863a8a7add13e8 100644 GIT binary patch delta 6282 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 delta 6219 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\n" "Language-Team: LANGUAGE \n" @@ -217,43 +217,44 @@ msgstr "Geben Sie die Daten der neuen Maßnahme ein" msgid "Added action" msgstr "Maßnahme hinzugefügt" -#: compensation/models.py:77 +#: compensation/models.py:78 msgid "cm" msgstr "" -#: compensation/models.py:78 +#: compensation/models.py:79 msgid "m" msgstr "" -#: compensation/models.py:79 +#: compensation/models.py:80 msgid "km" msgstr "" -#: compensation/models.py:80 +#: compensation/models.py:81 msgid "m²" msgstr "" -#: compensation/models.py:81 +#: compensation/models.py:82 msgid "ha" msgstr "" -#: compensation/models.py:82 +#: compensation/models.py:83 msgid "Pieces" msgstr "Stück" -#: compensation/models.py:299 +#: compensation/models.py:312 msgid "" "Deductable surface can not be larger than existing surfaces in after states" msgstr "" -"Die abbuchbare Fläche darf die Gesamtfläche der Zielzustände nicht überschreiten" +"Die abbuchbare Fläche darf die Gesamtfläche der Zielzustände nicht " +"überschreiten" -#: compensation/models.py:306 +#: compensation/models.py:319 msgid "" "Deductable surface can not be smaller than the sum of already existing " "deductions. Please contact the responsible users for the deductions!" msgstr "" -"Es wurde bereits mehr Fläche abgebucht, als Sie nun als abbuchbar einstellen wollen. " -"Kontaktieren Sie die für die Abbuchungen verantwortlichen Nutzer!" +"Es wurde bereits mehr Fläche abgebucht, als Sie nun als abbuchbar einstellen " +"wollen. Kontaktieren Sie die für die Abbuchungen verantwortlichen Nutzer!" #: compensation/tables.py:24 compensation/tables.py:164 ema/tables.py:28 #: intervention/forms.py:30 intervention/tables.py:23 @@ -566,14 +567,14 @@ msgid "Recorded on " msgstr "Verzeichnet am" #: compensation/templates/compensation/detail/compensation/view.html:71 -#: compensation/templates/compensation/detail/eco_account/view.html:70 +#: compensation/templates/compensation/detail/eco_account/view.html:83 #: ema/templates/ema/detail/view.html:54 #: intervention/templates/intervention/detail/view.html:103 msgid "Last modified" msgstr "Zuletzt bearbeitet" #: compensation/templates/compensation/detail/compensation/view.html:79 -#: compensation/templates/compensation/detail/eco_account/view.html:78 +#: compensation/templates/compensation/detail/eco_account/view.html:91 #: ema/templates/ema/detail/view.html:69 intervention/forms.py:255 #: intervention/templates/intervention/detail/view.html:111 msgid "Shared with" @@ -652,6 +653,11 @@ msgstr "Aktenzeichen Naturschutzbehörde" msgid "Intervention handler" msgstr "Eingriffsverursacher" +#: compensation/templates/compensation/detail/eco_account/view.html:70 +msgid "Funded by" +msgstr "Gefördert mit" + + #: compensation/views/compensation_views.py:123 #: compensation/views/eco_account_views.py:190 ema/views.py:128 #: intervention/views.py:391