From e922b983dd31cde69e9c2ca8d12559f9bb8adedc Mon Sep 17 00:00:00 2001 From: mpeltriaux Date: Mon, 15 Nov 2021 11:05:39 +0100 Subject: [PATCH 1/5] #38 User requests * implements 1) "Add titles to public reports, next to identifiers" --- .../templates/compensation/report/compensation/report.html | 2 +- .../templates/compensation/report/eco_account/report.html | 2 +- compensation/views/eco_account_views.py | 2 +- intervention/templates/intervention/report/report.html | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/compensation/templates/compensation/report/compensation/report.html b/compensation/templates/compensation/report/compensation/report.html index 74d67a5..711ce16 100644 --- a/compensation/templates/compensation/report/compensation/report.html +++ b/compensation/templates/compensation/report/compensation/report.html @@ -16,7 +16,7 @@ {% trans 'compensates intervention' %} - {{obj.intervention.identifier}} + {{obj.intervention.identifier}} - {{obj.intervention.title}} diff --git a/compensation/templates/compensation/report/eco_account/report.html b/compensation/templates/compensation/report/eco_account/report.html index ff47772..e71670a 100644 --- a/compensation/templates/compensation/report/eco_account/report.html +++ b/compensation/templates/compensation/report/eco_account/report.html @@ -29,7 +29,7 @@ {% for deduction in deductions %} - {{deduction.intervention__identifier}} + {{deduction.intervention__identifier}} - {{deduction.intervention__title}}
{% empty %} diff --git a/compensation/views/eco_account_views.py b/compensation/views/eco_account_views.py index e9934d4..521963f 100644 --- a/compensation/views/eco_account_views.py +++ b/compensation/views/eco_account_views.py @@ -570,7 +570,7 @@ def report_view(request:HttpRequest, id: str): deductions = acc.deductions.all()\ .distinct("intervention")\ .select_related("intervention")\ - .values_list("intervention__id", "intervention__identifier", named=True) + .values_list("intervention__id", "intervention__identifier", "intervention__title", named=True) context = { "obj": acc, diff --git a/intervention/templates/intervention/report/report.html b/intervention/templates/intervention/report/report.html index cf42204..25e6aac 100644 --- a/intervention/templates/intervention/report/report.html +++ b/intervention/templates/intervention/report/report.html @@ -50,7 +50,7 @@ {% for comp in obj.compensations.all %} - {{comp.identifier}} + {{comp.identifier}} - {{comp.title}}
{% empty %} @@ -63,7 +63,7 @@ {% for deduction in deductions %} - {{deduction.account.identifier}} + {{deduction.account.identifier}} - {{deduction.account.title}}
{% endfor %} -- 2.38.5 From 36470f819c854cad672b01574d211b8145817d1c Mon Sep 17 00:00:00 2001 From: mpeltriaux Date: Mon, 15 Nov 2021 12:18:22 +0100 Subject: [PATCH 2/5] #38 User requests * implements 2) "Multiple revocations for interventions" --- intervention/forms/modalForms.py | 3 +- intervention/models.py | 21 +- .../detail/includes/revocation.html | 50 ++- .../templates/intervention/detail/view.html | 6 +- intervention/utils/quality.py | 4 +- intervention/views.py | 6 +- locale/de/LC_MESSAGES/django.mo | Bin 27052 -> 26917 bytes locale/de/LC_MESSAGES/django.po | 363 +++++++++--------- 8 files changed, 227 insertions(+), 226 deletions(-) diff --git a/intervention/forms/modalForms.py b/intervention/forms/modalForms.py index fe24efa..b126f47 100644 --- a/intervention/forms/modalForms.py +++ b/intervention/forms/modalForms.py @@ -162,14 +162,13 @@ class NewRevocationModalForm(BaseModalForm): ) revocation = Revocation.objects.create( date=self.cleaned_data["date"], + legal=self.instance.legal, comment=self.cleaned_data["comment"], created=created_action, ) self.instance.modified = edited_action self.instance.save() self.instance.log.add(edited_action) - self.instance.legal.revocation = revocation - self.instance.legal.save() if self.cleaned_data["file"]: RevocationDocument.objects.create( diff --git a/intervention/models.py b/intervention/models.py index 47d3a58..6043e42 100644 --- a/intervention/models.py +++ b/intervention/models.py @@ -68,6 +68,7 @@ class Revocation(BaseResource): Holds revocation data e.g. for intervention objects """ date = models.DateField(null=True, blank=True, help_text="Revocation from") + legal = models.ForeignKey("LegalData", null=False, blank=False, on_delete=models.CASCADE, help_text="Refers to 'Widerspruch am'", related_name="revocations") comment = models.TextField(null=True, blank=True) def delete(self, *args, **kwargs): @@ -99,7 +100,7 @@ class RevocationDocument(AbstractDocument): Returns: intervention (Intervention) """ - return self.instance.legaldata.intervention + return self.instance.legal.intervention def delete(self, *args, **kwargs): """ @@ -118,13 +119,14 @@ class RevocationDocument(AbstractDocument): # Remove the file itself super().delete(*args, **kwargs) - # Always remove 'revocation' folder + # Always remove 'revocation' folder if the one revocation we just processed is the only one left folder_path = self.file.path.split("/") - try: - shutil.rmtree("/".join(folder_path[:-1])) - except FileNotFoundError: - # Revocation subfolder seems to be missing already - pass + if revoc_docs.count() == 0: + try: + shutil.rmtree("/".join(folder_path[:-1])) + except FileNotFoundError: + # Revocation subfolder seems to be missing already + pass if other_intervention_docs.count() == 0: # If there are no further documents for the intervention, we can simply remove the whole folder as well! @@ -167,8 +169,6 @@ class LegalData(UuidModel): } ) - revocation = models.OneToOneField(Revocation, null=True, blank=True, help_text="Refers to 'Widerspruch am'", on_delete=models.SET_NULL) - class Intervention(BaseObject, ShareableObject, RecordableObject, CheckableObject): """ @@ -277,7 +277,7 @@ class Intervention(BaseObject, ShareableObject, RecordableObject, CheckableObjec regular_docs (QuerySet): The queryset of regular other documents """ revoc_docs = RevocationDocument.objects.filter( - instance=self.legal.revocation + instance__in=self.legal.revocations.all() ) regular_docs = InterventionDocument.objects.filter( instance=self @@ -366,6 +366,7 @@ class InterventionDocument(AbstractDocument): if folder_path is not None: try: shutil.rmtree(folder_path) + pass except FileNotFoundError: # Folder seems to be missing already... pass diff --git a/intervention/templates/intervention/detail/includes/revocation.html b/intervention/templates/intervention/detail/includes/revocation.html index c9d821f..cc3e7b3 100644 --- a/intervention/templates/intervention/detail/includes/revocation.html +++ b/intervention/templates/intervention/detail/includes/revocation.html @@ -4,8 +4,8 @@
- {% if obj.legal.revocation %}1{% else %}0{% endif %} - {% trans 'Revocation' %} + {{obj.legal.revocations.count}} + {% trans 'Revocations' %}
@@ -44,30 +44,28 @@ - {% if obj.legal.revocation %} - {% with obj.legal.revocation as rev %} - - - {{ rev.date }} - - - {% if rev.document %} - - {% trans 'Revocation' %} - - {% endif %} - - {{ rev.comment }} - - {% if is_default_member and has_access %} - - {% endif %} - - - {% endwith %} - {% endif %} + {% for rev in obj.legal.revocations.all %} + + + {{ rev.date }} + + + {% if rev.document %} + + {% trans 'Revocation' %} + + {% endif %} + + {{ rev.comment }} + + {% if is_default_member and has_access %} + + {% endif %} + + + {% endfor %}
diff --git a/intervention/templates/intervention/detail/view.html b/intervention/templates/intervention/detail/view.html index e3d919f..408b393 100644 --- a/intervention/templates/intervention/detail/view.html +++ b/intervention/templates/intervention/detail/view.html @@ -99,9 +99,9 @@ {% trans 'Binding on' %} {{obj.legal.binding_date|default_if_none:""}} - - {% trans 'Revocation' %} - {{obj.legal.revocation.date|naturalday|default_if_none:""}} + + {% trans 'Revocations' %} + {{obj.legal.revocations.count}} {% trans 'Last modified' %} diff --git a/intervention/utils/quality.py b/intervention/utils/quality.py index 7896000..b4717b1 100644 --- a/intervention/utils/quality.py +++ b/intervention/utils/quality.py @@ -66,8 +66,8 @@ class InterventionQualityChecker(AbstractQualityChecker): try: legal = self.obj.legal # Check for a revocation - if legal.revocation: - self.messages.append(_("Revocation exists")) + if legal.revocations.exists(): + self.messages.append(_("Revocations exists")) if legal.registration_date is None: self._add_missing_attr_name(_("Registration date")) diff --git a/intervention/views.py b/intervention/views.py index a535d75..8c0838c 100644 --- a/intervention/views.py +++ b/intervention/views.py @@ -147,7 +147,7 @@ def get_revocation_view(request: HttpRequest, doc_id: str): """ doc = get_object_or_404(RevocationDocument, id=doc_id) # File download only possible if related instance is shared with user - if not doc.instance.users.filter(id=request.user.id): + if not doc.instance.legal.intervention.users.filter(id=request.user.id): messages.info( request, DATA_UNSHARED @@ -238,10 +238,10 @@ def detail_view(request: HttpRequest, id: str): ) # Inform user about revocation - if intervention.legal.revocation: + if intervention.legal.revocations.exists(): messages.error( request, - _("This intervention has a revocation from {}").format(intervention.legal.revocation.date.strftime(DEFAULT_DATE_FORMAT)), + _("This intervention has {} revocations").format(intervention.legal.revocations.count()), extra_tags="danger", ) diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index e4d126ba2b2836ab814a5a7cd93fbda07dad22ce..21785a438150888491cb8801b636a84d86bdb053 100644 GIT binary patch delta 8577 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 UD=DeHfC2vhM((I;QnDuazf{q%=Kufz delta 8703 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 diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index f850b34..5c6f50a 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -9,8 +9,8 @@ #: intervention/filters.py:26 intervention/filters.py:40 #: intervention/filters.py:47 intervention/filters.py:48 #: intervention/forms/forms.py:53 intervention/forms/forms.py:155 -#: intervention/forms/forms.py:167 intervention/forms/modalForms.py:107 -#: intervention/forms/modalForms.py:120 intervention/forms/modalForms.py:133 +#: intervention/forms/forms.py:167 intervention/forms/modalForms.py:108 +#: intervention/forms/modalForms.py:121 intervention/forms/modalForms.py:134 #: konova/forms.py:142 konova/forms.py:247 konova/forms.py:313 #: konova/forms.py:340 konova/forms.py:350 konova/forms.py:363 #: konova/forms.py:375 konova/forms.py:396 user/forms.py:38 @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-25 17:10+0200\n" +"POT-Creation-Date: 2021-11-15 11:46+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -37,7 +37,7 @@ msgstr "Vom" msgid "To" msgstr "Bis" -#: analysis/forms.py:47 compensation/forms/forms.py:93 +#: analysis/forms.py:47 compensation/forms/forms.py:76 #: compensation/templates/compensation/detail/eco_account/view.html:58 #: compensation/templates/compensation/report/eco_account/report.html:16 #: compensation/utils/quality.py:100 ema/templates/ema/detail/view.html:42 @@ -49,14 +49,14 @@ msgstr "Bis" msgid "Conservation office" msgstr "Eintragungsstelle" -#: analysis/forms.py:49 compensation/forms/forms.py:95 +#: analysis/forms.py:49 compensation/forms/forms.py:78 msgid "Select the responsible office" msgstr "Verantwortliche Stelle" -#: analysis/forms.py:58 compensation/forms/forms.py:67 -#: compensation/forms/forms.py:104 compensation/forms/forms.py:155 -#: intervention/forms/forms.py:63 intervention/forms/forms.py:80 -#: intervention/forms/forms.py:96 intervention/forms/forms.py:112 +#: analysis/forms.py:58 compensation/forms/forms.py:87 +#: compensation/forms/forms.py:138 intervention/forms/forms.py:63 +#: intervention/forms/forms.py:80 intervention/forms/forms.py:96 +#: intervention/forms/forms.py:112 msgid "Click for selection" msgstr "Auswählen..." @@ -210,7 +210,7 @@ msgstr "Abbuchungen" #: compensation/templates/compensation/detail/eco_account/includes/states-before.html:36 #: ema/templates/ema/detail/includes/states-after.html:36 #: ema/templates/ema/detail/includes/states-before.html:36 -#: intervention/forms/modalForms.py:282 +#: intervention/forms/modalForms.py:276 msgid "Surface" msgstr "Fläche" @@ -273,7 +273,7 @@ msgid "Type" msgstr "Typ" #: analysis/templates/analysis/reports/includes/old_data/amount.html:24 -#: intervention/forms/modalForms.py:293 intervention/forms/modalForms.py:300 +#: intervention/forms/modalForms.py:287 intervention/forms/modalForms.py:294 #: intervention/tables.py:88 #: intervention/templates/intervention/detail/view.html:19 #: konova/templates/konova/home.html:11 templates/navbars/navbar.html:22 @@ -283,7 +283,7 @@ msgstr "Eingriff" #: analysis/templates/analysis/reports/includes/old_data/amount.html:34 #: compensation/tables.py:224 #: compensation/templates/compensation/detail/eco_account/view.html:19 -#: intervention/forms/modalForms.py:266 intervention/forms/modalForms.py:273 +#: intervention/forms/modalForms.py:260 intervention/forms/modalForms.py:267 #: konova/templates/konova/home.html:88 templates/navbars/navbar.html:34 msgid "Eco-account" msgstr "Ökokonto" @@ -335,19 +335,11 @@ msgstr "Bezeichnung" msgid "An explanatory name" msgstr "Aussagekräftiger Titel" -#: compensation/forms/forms.py:49 ema/forms.py:47 ema/forms.py:105 +#: compensation/forms/forms.py:49 ema/forms.py:49 ema/forms.py:105 msgid "Compensation XY; Location ABC" msgstr "Kompensation XY; Flur ABC" -#: compensation/forms/forms.py:55 -msgid "Fundings" -msgstr "Förderungen" - -#: compensation/forms/forms.py:58 -msgid "Select fundings for this compensation" -msgstr "Wählen Sie ggf. Fördermittelprojekte" - -#: compensation/forms/forms.py:73 compensation/forms/modalForms.py:61 +#: compensation/forms/forms.py:56 compensation/forms/modalForms.py:61 #: compensation/forms/modalForms.py:272 compensation/forms/modalForms.py:367 #: compensation/templates/compensation/detail/compensation/includes/actions.html:34 #: compensation/templates/compensation/detail/compensation/includes/deadlines.html:34 @@ -358,7 +350,7 @@ msgstr "Wählen Sie ggf. Fördermittelprojekte" #: ema/templates/ema/detail/includes/actions.html:34 #: ema/templates/ema/detail/includes/deadlines.html:34 #: ema/templates/ema/detail/includes/documents.html:31 -#: intervention/forms/forms.py:179 intervention/forms/modalForms.py:132 +#: intervention/forms/forms.py:179 intervention/forms/modalForms.py:133 #: intervention/templates/intervention/detail/includes/documents.html:31 #: intervention/templates/intervention/detail/includes/payments.html:34 #: intervention/templates/intervention/detail/includes/revocation.html:38 @@ -366,11 +358,11 @@ msgstr "Wählen Sie ggf. Fördermittelprojekte" msgid "Comment" msgstr "Kommentar" -#: compensation/forms/forms.py:75 intervention/forms/forms.py:181 +#: compensation/forms/forms.py:58 intervention/forms/forms.py:181 msgid "Additional comment" msgstr "Zusätzlicher Kommentar" -#: compensation/forms/forms.py:109 +#: compensation/forms/forms.py:92 #: compensation/templates/compensation/detail/eco_account/view.html:62 #: compensation/templates/compensation/report/eco_account/report.html:20 #: compensation/utils/quality.py:102 ema/templates/ema/detail/view.html:46 @@ -382,67 +374,67 @@ msgstr "Zusätzlicher Kommentar" msgid "Conservation office file number" msgstr "Aktenzeichen Eintragungsstelle" -#: compensation/forms/forms.py:115 intervention/forms/forms.py:135 +#: compensation/forms/forms.py:98 intervention/forms/forms.py:135 msgid "ETS-123/ABC.456" msgstr "" -#: compensation/forms/forms.py:121 +#: compensation/forms/forms.py:104 msgid "Eco-account handler" msgstr "Maßnahmenträger" -#: compensation/forms/forms.py:125 +#: compensation/forms/forms.py:108 msgid "Who handles the eco-account" msgstr "Wer für die Herrichtung des Ökokontos verantwortlich ist" -#: compensation/forms/forms.py:128 intervention/forms/forms.py:148 +#: compensation/forms/forms.py:111 intervention/forms/forms.py:148 msgid "Company Mustermann" msgstr "Firma Mustermann" -#: compensation/forms/forms.py:146 +#: compensation/forms/forms.py:129 #: compensation/templates/compensation/detail/compensation/view.html:35 #: compensation/templates/compensation/report/compensation/report.html:16 msgid "compensates intervention" msgstr "kompensiert Eingriff" -#: compensation/forms/forms.py:148 +#: compensation/forms/forms.py:131 msgid "Select the intervention for which this compensation compensates" msgstr "Wählen Sie den Eingriff, für den diese Kompensation bestimmt ist" -#: compensation/forms/forms.py:173 +#: compensation/forms/forms.py:155 msgid "New compensation" msgstr "Neue Kompensation" -#: compensation/forms/forms.py:231 +#: compensation/forms/forms.py:211 msgid "Edit compensation" msgstr "Bearbeite Kompensation" -#: compensation/forms/forms.py:290 compensation/utils/quality.py:84 +#: compensation/forms/forms.py:267 compensation/utils/quality.py:84 msgid "Available Surface" msgstr "Verfügbare Fläche" -#: compensation/forms/forms.py:293 +#: compensation/forms/forms.py:270 msgid "The amount that can be used for deductions" msgstr "Die für Abbuchungen zur Verfügung stehende Menge" -#: compensation/forms/forms.py:302 +#: compensation/forms/forms.py:279 #: compensation/templates/compensation/detail/eco_account/view.html:66 #: compensation/utils/quality.py:72 msgid "Agreement date" msgstr "Vereinbarungsdatum" -#: compensation/forms/forms.py:304 +#: compensation/forms/forms.py:281 msgid "When did the parties agree on this?" msgstr "Wann wurde dieses Ökokonto offiziell vereinbart?" -#: compensation/forms/forms.py:329 +#: compensation/forms/forms.py:305 msgid "New Eco-Account" msgstr "Neues Ökokonto" -#: compensation/forms/forms.py:338 +#: compensation/forms/forms.py:314 msgid "Eco-Account XY; Location ABC" msgstr "Ökokonto XY; Flur ABC" -#: compensation/forms/forms.py:397 +#: compensation/forms/forms.py:371 msgid "Edit Eco-Account" msgstr "Ökokonto bearbeiten" @@ -460,7 +452,7 @@ msgid "Due on which date" msgstr "Zahlung wird an diesem Datum erwartet" #: compensation/forms/modalForms.py:63 compensation/forms/modalForms.py:274 -#: compensation/forms/modalForms.py:369 intervention/forms/modalForms.py:134 +#: compensation/forms/modalForms.py:369 intervention/forms/modalForms.py:135 #: konova/forms.py:376 msgid "Additional comment, maximum {} letters" msgstr "Zusätzlicher Kommentar, maximal {} Zeichen" @@ -485,7 +477,7 @@ msgstr "Biotoptyp" msgid "Select the biotope type" msgstr "Biotoptyp wählen" -#: compensation/forms/modalForms.py:155 intervention/forms/modalForms.py:284 +#: compensation/forms/modalForms.py:155 intervention/forms/modalForms.py:278 msgid "in m²" msgstr "" @@ -517,7 +509,7 @@ msgstr "Fristart wählen" #: compensation/templates/compensation/detail/compensation/includes/deadlines.html:31 #: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:31 #: ema/templates/ema/detail/includes/deadlines.html:31 -#: intervention/forms/modalForms.py:106 +#: intervention/forms/modalForms.py:107 msgid "Date" msgstr "Datum" @@ -595,38 +587,38 @@ msgstr "Geben Sie die Daten der neuen Maßnahme ein" msgid "Added action" msgstr "Maßnahme hinzugefügt" -#: compensation/models.py:83 +#: compensation/models.py:82 msgid "cm" msgstr "" -#: compensation/models.py:84 +#: compensation/models.py:83 msgid "m" msgstr "" -#: compensation/models.py:85 +#: compensation/models.py:84 msgid "km" msgstr "" -#: compensation/models.py:86 +#: compensation/models.py:85 msgid "m²" msgstr "" -#: compensation/models.py:87 +#: compensation/models.py:86 msgid "ha" msgstr "" -#: compensation/models.py:88 +#: compensation/models.py:87 msgid "Pieces" msgstr "Stück" -#: compensation/models.py:359 +#: compensation/models.py:345 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" -#: compensation/models.py:366 +#: compensation/models.py:352 msgid "" "Deductable surface can not be smaller than the sum of already existing " "deductions. Please contact the responsible users for the deductions!" @@ -744,22 +736,22 @@ msgid "Public report" msgstr "Öffentlicher Bericht" #: compensation/templates/compensation/detail/compensation/includes/controls.html:17 -#: compensation/templates/compensation/detail/eco_account/includes/controls.html:28 -#: ema/templates/ema/detail/includes/controls.html:28 +#: compensation/templates/compensation/detail/eco_account/includes/controls.html:31 +#: ema/templates/ema/detail/includes/controls.html:31 #: intervention/templates/intervention/detail/includes/controls.html:36 msgid "Edit" msgstr "Bearbeiten" #: compensation/templates/compensation/detail/compensation/includes/controls.html:21 -#: compensation/templates/compensation/detail/eco_account/includes/controls.html:32 -#: ema/templates/ema/detail/includes/controls.html:32 +#: compensation/templates/compensation/detail/eco_account/includes/controls.html:35 +#: ema/templates/ema/detail/includes/controls.html:35 #: intervention/templates/intervention/detail/includes/controls.html:40 msgid "Show log" msgstr "Log anzeigen" #: compensation/templates/compensation/detail/compensation/includes/controls.html:24 -#: compensation/templates/compensation/detail/eco_account/includes/controls.html:35 -#: ema/templates/ema/detail/includes/controls.html:35 +#: compensation/templates/compensation/detail/eco_account/includes/controls.html:38 +#: ema/templates/ema/detail/includes/controls.html:38 #: intervention/templates/intervention/detail/includes/controls.html:43 #: venv/lib/python3.7/site-packages/django/forms/formsets.py:391 msgid "Delete" @@ -886,50 +878,36 @@ msgstr "Verzeichnet am" #: compensation/templates/compensation/detail/compensation/view.html:71 #: compensation/templates/compensation/detail/eco_account/view.html:74 #: compensation/templates/compensation/report/compensation/report.html:24 -#: compensation/templates/compensation/report/eco_account/report.html:28 +#: compensation/templates/compensation/report/eco_account/report.html:41 #: ema/templates/ema/detail/view.html:54 #: ema/templates/ema/report/report.html:28 -msgid "Funded by" -msgstr "Gefördert mit" - -#: compensation/templates/compensation/detail/compensation/view.html:79 -#: compensation/templates/compensation/detail/eco_account/view.html:82 -#: compensation/templates/compensation/report/compensation/report.html:31 -#: compensation/templates/compensation/report/eco_account/report.html:35 -#: compensation/templates/compensation/report/eco_account/report.html:49 -#: ema/templates/ema/detail/view.html:62 -#: ema/templates/ema/report/report.html:35 -#: intervention/templates/intervention/report/report.html:57 -#: intervention/templates/intervention/report/report.html:78 -msgid "None" -msgstr "-" - -#: compensation/templates/compensation/detail/compensation/view.html:84 -#: compensation/templates/compensation/detail/eco_account/view.html:87 -#: compensation/templates/compensation/report/compensation/report.html:37 -#: compensation/templates/compensation/report/eco_account/report.html:54 -#: ema/templates/ema/detail/view.html:67 -#: ema/templates/ema/report/report.html:41 #: intervention/templates/intervention/detail/view.html:108 #: intervention/templates/intervention/report/report.html:91 msgid "Last modified" msgstr "Zuletzt bearbeitet" -#: compensation/templates/compensation/detail/compensation/view.html:92 -#: compensation/templates/compensation/detail/eco_account/view.html:95 -#: ema/templates/ema/detail/view.html:82 intervention/forms/modalForms.py:40 +#: compensation/templates/compensation/detail/compensation/view.html:79 +#: compensation/templates/compensation/detail/eco_account/view.html:82 +#: ema/templates/ema/detail/view.html:69 intervention/forms/modalForms.py:40 #: intervention/templates/intervention/detail/view.html:116 msgid "Shared with" msgstr "Freigegeben für" -#: compensation/templates/compensation/detail/eco_account/includes/controls.html:17 -#: ema/templates/ema/detail/includes/controls.html:17 +#: compensation/templates/compensation/detail/eco_account/includes/controls.html:15 +#: ema/templates/ema/detail/includes/controls.html:15 +#: intervention/forms/modalForms.py:54 +#: intervention/templates/intervention/detail/includes/controls.html:15 +msgid "Share" +msgstr "Freigabe" + +#: compensation/templates/compensation/detail/eco_account/includes/controls.html:20 +#: ema/templates/ema/detail/includes/controls.html:20 #: intervention/templates/intervention/detail/includes/controls.html:25 msgid "Unrecord" msgstr "Entzeichnen" -#: compensation/templates/compensation/detail/eco_account/includes/controls.html:21 -#: ema/templates/ema/detail/includes/controls.html:21 +#: compensation/templates/compensation/detail/eco_account/includes/controls.html:24 +#: ema/templates/ema/detail/includes/controls.html:24 #: intervention/templates/intervention/detail/includes/controls.html:29 msgid "Record" msgstr "Verzeichnen" @@ -1000,24 +978,30 @@ msgstr "Maßnahmenträger" msgid "Report" msgstr "Bericht" -#: compensation/templates/compensation/report/compensation/report.html:55 -#: compensation/templates/compensation/report/eco_account/report.html:72 -#: ema/templates/ema/report/report.html:59 +#: compensation/templates/compensation/report/compensation/report.html:42 +#: compensation/templates/compensation/report/eco_account/report.html:59 +#: ema/templates/ema/report/report.html:46 #: intervention/templates/intervention/report/report.html:105 msgid "Open in browser" msgstr "Im Browser öffnen" -#: compensation/templates/compensation/report/compensation/report.html:59 -#: compensation/templates/compensation/report/eco_account/report.html:76 -#: ema/templates/ema/report/report.html:63 +#: compensation/templates/compensation/report/compensation/report.html:46 +#: compensation/templates/compensation/report/eco_account/report.html:63 +#: ema/templates/ema/report/report.html:50 #: intervention/templates/intervention/report/report.html:109 msgid "View in LANIS" msgstr "In LANIS öffnen" -#: compensation/templates/compensation/report/eco_account/report.html:41 +#: compensation/templates/compensation/report/eco_account/report.html:28 msgid "Deductions for" msgstr "Abbuchungen für" +#: compensation/templates/compensation/report/eco_account/report.html:36 +#: intervention/templates/intervention/report/report.html:57 +#: intervention/templates/intervention/report/report.html:78 +msgid "None" +msgstr "-" + #: compensation/utils/quality.py:34 msgid "States unequal" msgstr "Ungleiche Zustandsflächenmengen" @@ -1041,79 +1025,101 @@ msgstr "Daten zu den verantwortlichen Stellen" msgid "Compensation {} added" msgstr "Kompensation {} hinzugefügt" -#: compensation/views/compensation_views.py:132 +#: compensation/views/compensation_views.py:134 msgid "Compensation {} edited" msgstr "Kompensation {} bearbeitet" -#: compensation/views/compensation_views.py:216 -#: compensation/views/eco_account_views.py:290 ema/views.py:178 -#: intervention/views.py:448 +#: compensation/views/compensation_views.py:220 +#: compensation/views/eco_account_views.py:307 ema/views.py:182 +#: intervention/views.py:476 msgid "Log" msgstr "Log" -#: compensation/views/compensation_views.py:237 +#: compensation/views/compensation_views.py:243 msgid "Compensation removed" msgstr "Kompensation entfernt" -#: compensation/views/compensation_views.py:256 -#: compensation/views/eco_account_views.py:389 ema/views.py:331 -#: intervention/views.py:127 +#: compensation/views/compensation_views.py:264 +#: compensation/views/eco_account_views.py:459 ema/views.py:349 +#: intervention/views.py:130 msgid "Document added" msgstr "Dokument hinzugefügt" -#: compensation/views/compensation_views.py:321 -#: compensation/views/eco_account_views.py:333 ema/views.py:275 +#: compensation/views/compensation_views.py:333 +#: compensation/views/eco_account_views.py:353 ema/views.py:287 msgid "State added" msgstr "Zustand hinzugefügt" -#: compensation/views/compensation_views.py:340 -#: compensation/views/eco_account_views.py:352 ema/views.py:294 +#: compensation/views/compensation_views.py:354 +#: compensation/views/eco_account_views.py:374 ema/views.py:308 msgid "Action added" msgstr "Maßnahme hinzugefügt" -#: compensation/views/compensation_views.py:359 -#: compensation/views/eco_account_views.py:371 ema/views.py:313 +#: compensation/views/compensation_views.py:375 +#: compensation/views/eco_account_views.py:439 ema/views.py:329 msgid "Deadline added" msgstr "Frist/Termin hinzugefügt" -#: compensation/views/compensation_views.py:378 +#: compensation/views/compensation_views.py:397 +#: compensation/views/eco_account_views.py:396 ema/views.py:419 msgid "State removed" msgstr "Zustand gelöscht" -#: compensation/views/compensation_views.py:397 +#: compensation/views/compensation_views.py:419 +#: compensation/views/eco_account_views.py:418 ema/views.py:441 msgid "Action removed" msgstr "Maßnahme entfernt" -#: compensation/views/eco_account_views.py:86 +#: compensation/views/eco_account_views.py:88 msgid "Eco-Account {} added" msgstr "Ökokonto {} hinzugefügt" -#: compensation/views/eco_account_views.py:141 +#: compensation/views/eco_account_views.py:145 msgid "Eco-Account {} edited" msgstr "Ökokonto {} bearbeitet" -#: compensation/views/eco_account_views.py:240 +#: compensation/views/eco_account_views.py:255 msgid "Eco-account removed" msgstr "Ökokonto entfernt" -#: compensation/views/eco_account_views.py:267 +#: compensation/views/eco_account_views.py:283 msgid "Deduction removed" msgstr "Abbuchung entfernt" -#: compensation/views/eco_account_views.py:310 ema/views.py:252 -#: intervention/views.py:488 +#: compensation/views/eco_account_views.py:328 ema/views.py:262 +#: intervention/views.py:518 msgid "{} unrecorded" msgstr "{} entzeichnet" -#: compensation/views/eco_account_views.py:310 ema/views.py:252 -#: intervention/views.py:488 +#: compensation/views/eco_account_views.py:328 ema/views.py:262 +#: intervention/views.py:518 msgid "{} recorded" msgstr "{} verzeichnet" -#: compensation/views/eco_account_views.py:455 intervention/views.py:470 +#: compensation/views/eco_account_views.py:529 intervention/views.py:499 msgid "Deduction added" msgstr "Abbuchung hinzugefügt" +#: compensation/views/eco_account_views.py:612 ema/views.py:517 +#: intervention/views.py:374 +msgid "{} has already been shared with you" +msgstr "{} wurde bereits für Sie freigegeben" + +#: compensation/views/eco_account_views.py:617 ema/views.py:522 +#: intervention/views.py:379 +msgid "{} has been shared with you" +msgstr "{} ist nun für Sie freigegeben" + +#: compensation/views/eco_account_views.py:624 ema/views.py:529 +#: intervention/views.py:386 +msgid "Share link invalid" +msgstr "Freigabelink ungültig" + +#: compensation/views/eco_account_views.py:647 ema/views.py:552 +#: intervention/views.py:409 +msgid "Share settings updated" +msgstr "Freigabe Einstellungen aktualisiert" + #: compensation/views/payment_views.py:36 msgid "Payment added" msgstr "Zahlung hinzugefügt" @@ -1122,7 +1128,7 @@ msgstr "Zahlung hinzugefügt" msgid "Payment removed" msgstr "Zahlung gelöscht" -#: ema/forms.py:38 +#: ema/forms.py:40 msgid "New EMA" msgstr "Neue EMA hinzufügen" @@ -1150,15 +1156,15 @@ msgstr "" msgid "Payment funded compensation" msgstr "Ersatzzahlungsmaßnahme" -#: ema/views.py:78 +#: ema/views.py:79 msgid "EMA {} added" msgstr "EMA {} hinzugefügt" -#: ema/views.py:205 +#: ema/views.py:211 msgid "EMA {} edited" msgstr "EMA {} bearbeitet" -#: ema/views.py:235 +#: ema/views.py:243 msgid "EMA removed" msgstr "EMA entfernt" @@ -1255,47 +1261,42 @@ msgstr "Andere Nutzer erhalten über diesen Link Zugriff auf die Daten" msgid "Remove check to remove access for this user" msgstr "Wählen Sie die Nutzer ab, die keinen Zugriff mehr haben sollen" -#: intervention/forms/modalForms.py:54 -#: intervention/templates/intervention/detail/includes/controls.html:15 -msgid "Share" -msgstr "Freigabe" - #: intervention/forms/modalForms.py:55 msgid "Share settings for {}" msgstr "Freigabe Einstellungen für {}" -#: intervention/forms/modalForms.py:108 +#: intervention/forms/modalForms.py:109 msgid "Date of revocation" msgstr "Datum des Widerspruchs" -#: intervention/forms/modalForms.py:119 +#: intervention/forms/modalForms.py:120 #: intervention/templates/intervention/detail/includes/revocation.html:35 msgid "Document" msgstr "Dokument" -#: intervention/forms/modalForms.py:122 konova/forms.py:364 +#: intervention/forms/modalForms.py:123 konova/forms.py:364 msgid "Must be smaller than 15 Mb" msgstr "Muss kleiner als 15 Mb sein" -#: intervention/forms/modalForms.py:146 +#: intervention/forms/modalForms.py:147 #: intervention/templates/intervention/detail/includes/revocation.html:18 msgid "Add revocation" msgstr "Widerspruch hinzufügen" -#: intervention/forms/modalForms.py:186 +#: intervention/forms/modalForms.py:189 msgid "Checked intervention data" msgstr "Eingriffsdaten geprüft" -#: intervention/forms/modalForms.py:192 +#: intervention/forms/modalForms.py:195 msgid "Checked compensations data and payments" msgstr "Kompensationen und Zahlungen geprüft" -#: intervention/forms/modalForms.py:200 +#: intervention/forms/modalForms.py:203 #: intervention/templates/intervention/detail/includes/controls.html:19 msgid "Run check" msgstr "Prüfung vornehmen" -#: intervention/forms/modalForms.py:201 konova/forms.py:449 +#: intervention/forms/modalForms.py:204 konova/forms.py:449 msgid "" "I, {} {}, confirm that all necessary control steps have been performed by " "myself." @@ -1303,23 +1304,23 @@ msgstr "" "Ich, {} {}, bestätige, dass die notwendigen Kontrollschritte durchgeführt " "wurden:" -#: intervention/forms/modalForms.py:268 +#: intervention/forms/modalForms.py:262 msgid "Only recorded accounts can be selected for deductions" msgstr "Nur verzeichnete Ökokonten können für Abbuchungen verwendet werden." -#: intervention/forms/modalForms.py:295 +#: intervention/forms/modalForms.py:289 msgid "Only shared interventions can be selected" msgstr "Nur freigegebene Eingriffe können gewählt werden" -#: intervention/forms/modalForms.py:308 +#: intervention/forms/modalForms.py:302 msgid "New Deduction" msgstr "Neue Abbuchung" -#: intervention/forms/modalForms.py:309 +#: intervention/forms/modalForms.py:303 msgid "Enter the information for a new deduction from a chosen eco-account" msgstr "Geben Sie die Informationen für eine neue Abbuchung ein." -#: intervention/forms/modalForms.py:342 +#: intervention/forms/modalForms.py:336 msgid "" "Eco-account {} is not recorded yet. You can only deduct from recorded " "accounts." @@ -1327,7 +1328,7 @@ msgstr "" "Ökokonto {} ist noch nicht verzeichnet. Abbuchungen können nur von " "verzeichneten Ökokonten erfolgen." -#: intervention/forms/modalForms.py:355 +#: intervention/forms/modalForms.py:349 msgid "" "The account {} has not enough surface for a deduction of {} m². There are " "only {} m² left" @@ -1336,9 +1337,7 @@ msgstr "" "Restfläche. Es stehen noch {} m² zur Verfügung." #: intervention/tables.py:45 -#: intervention/templates/intervention/detail/includes/revocation.html:8 -#: intervention/templates/intervention/detail/includes/revocation.html:57 -#: intervention/templates/intervention/detail/view.html:104 +#: intervention/templates/intervention/detail/includes/revocation.html:56 msgid "Revocation" msgstr "Widerspruch" @@ -1388,12 +1387,17 @@ msgstr "Betrag" msgid "Remove payment" msgstr "Zahlung entfernen" +#: intervention/templates/intervention/detail/includes/revocation.html:8 +#: intervention/templates/intervention/detail/view.html:104 +msgid "Revocations" +msgstr "Widersprüche" + #: intervention/templates/intervention/detail/includes/revocation.html:32 msgctxt "Revocation" msgid "From" msgstr "Vom" -#: intervention/templates/intervention/detail/includes/revocation.html:64 +#: intervention/templates/intervention/detail/includes/revocation.html:63 msgid "Remove revocation" msgstr "Widerspruch entfernen" @@ -1410,8 +1414,8 @@ msgid "Exist" msgstr "Vorhanden" #: intervention/utils/quality.py:70 -msgid "Revocation exists" -msgstr "Widerspruch liegt vor" +msgid "Revocations exists" +msgstr "Widersprüche liegen vor" #: intervention/utils/quality.py:76 msgid "Binding date" @@ -1431,51 +1435,31 @@ msgstr "" msgid "Intervention {} added" msgstr "Eingriff {} hinzugefügt" -#: intervention/views.py:231 -msgid "This intervention has a revocation from {}" -msgstr "Es existiert ein Widerspruch vom {}" +#: intervention/views.py:244 +msgid "This intervention has {} revocations" +msgstr "Dem Eingriff liegen {} Widersprüche vor" -#: intervention/views.py:274 +#: intervention/views.py:292 msgid "Intervention {} edited" msgstr "Eingriff {} bearbeitet" -#: intervention/views.py:275 -msgid "Status of Checked and Recorded reseted" -msgstr "'Geprüft' und 'Verzeichnet' sind zurückgesetzt worden" - -#: intervention/views.py:307 +#: intervention/views.py:327 msgid "{} removed" msgstr "{} entfernt" -#: intervention/views.py:328 +#: intervention/views.py:348 msgid "Revocation removed" msgstr "Widerspruch entfernt" -#: intervention/views.py:354 -msgid "{} has already been shared with you" -msgstr "{} wurde bereits für Sie freigegeben" - -#: intervention/views.py:359 -msgid "{} has been shared with you" -msgstr "{} ist nun für Sie freigegeben" - -#: intervention/views.py:366 -msgid "Share link invalid" -msgstr "Freigabelink ungültig" - -#: intervention/views.py:387 -msgid "Share settings updated" -msgstr "Freigabe Einstellungen aktualisiert" - -#: intervention/views.py:406 +#: intervention/views.py:430 msgid "Check performed" msgstr "Prüfung durchgeführt" -#: intervention/views.py:426 +#: intervention/views.py:452 msgid "Revocation added" msgstr "Widerspruch hinzugefügt" -#: intervention/views.py:493 +#: intervention/views.py:523 msgid "There are errors on this intervention:" msgstr "Es liegen Fehler in diesem Eingriff vor:" @@ -1587,19 +1571,19 @@ msgstr "Wenn meine freigegebenen Daten gelöscht wurden" msgid "On registered data edited" msgstr "Wenn meine freigegebenen Daten bearbeitet wurden" -#: konova/models.py:206 +#: konova/models.py:231 msgid "Finished" msgstr "Umgesetzt bis" -#: konova/models.py:207 +#: konova/models.py:232 msgid "Maintain" msgstr "Unterhaltung bis" -#: konova/models.py:208 +#: konova/models.py:233 msgid "Control" msgstr "Kontrolle am" -#: konova/models.py:209 +#: konova/models.py:234 msgid "Other" msgstr "Sonstige" @@ -1684,6 +1668,16 @@ msgstr "" msgid "You need to be part of another user group." msgstr "Hierfür müssen Sie einer anderen Nutzergruppe angehören!" +#: konova/utils/message_templates.py:19 +msgid "Status of Checked and Recorded reseted" +msgstr "'Geprüft' und 'Verzeichnet' sind zurückgesetzt worden" + +#: konova/utils/message_templates.py:22 +msgid "" +"Action canceled. Eco account is recorded or deductions exist. Only " +"conservation office member can perform this action." +msgstr "" + #: konova/utils/messenger.py:69 msgid "{} checked" msgstr "{} geprüft" @@ -3146,3 +3140,12 @@ msgstr "" #: venv/lib/python3.7/site-packages/fontawesome_5/fields.py:16 msgid "A fontawesome icon field" msgstr "" + +#~ msgid "Fundings" +#~ msgstr "Förderungen" + +#~ msgid "Select fundings for this compensation" +#~ msgstr "Wählen Sie ggf. Fördermittelprojekte" + +#~ msgid "Funded by" +#~ msgstr "Gefördert mit" -- 2.38.5 From 7ed114a85832a7f1bf99f57c154e074235e7e126 Mon Sep 17 00:00:00 2001 From: mpeltriaux Date: Mon, 15 Nov 2021 14:00:08 +0100 Subject: [PATCH 3/5] #38 User requests * implements 3) "Extend sharing on direct adding of users" --- intervention/forms/modalForms.py | 65 +++++++++++++------ intervention/views.py | 3 +- konova/autocompletes.py | 24 +++++++ konova/urls.py | 4 +- konova/utils/user_checks.py | 14 ++++ locale/de/LC_MESSAGES/django.mo | Bin 26917 -> 27204 bytes locale/de/LC_MESSAGES/django.po | 106 +++++++++++++++++-------------- 7 files changed, 147 insertions(+), 69 deletions(-) diff --git a/intervention/forms/modalForms.py b/intervention/forms/modalForms.py index b126f47..fb6ee08 100644 --- a/intervention/forms/modalForms.py +++ b/intervention/forms/modalForms.py @@ -16,10 +16,9 @@ from compensation.models import EcoAccount, EcoAccountDeduction from intervention.inputs import TextToClipboardInput from intervention.models import Revocation, RevocationDocument, Intervention from konova.forms import BaseModalForm -from konova.settings import ZB_GROUP, ETS_GROUP from konova.utils.general import format_german_float from konova.utils.messenger import Messenger -from konova.utils.user_checks import in_group +from konova.utils.user_checks import is_default_group_only from user.models import UserActionLogEntry, UserAction @@ -36,6 +35,21 @@ class ShareInterventionModalForm(BaseModalForm): } ) ) + user_select = forms.ModelMultipleChoiceField( + label=_("Add user to share with"), + label_suffix="", + help_text=_("Multiple selection possible - You can only select users which do not already have access"), + required=False, + queryset=User.objects.all(), + widget=autocomplete.ModelSelect2Multiple( + url="share-user-autocomplete", + attrs={ + "data-placeholder": _("Click for selection"), + "data-minimum-input-length": 3, + }, + forward=["users"] + ), + ) users = forms.MultipleChoiceField( label=_("Shared with"), label_suffix="", @@ -78,28 +92,39 @@ class ShareInterventionModalForm(BaseModalForm): ) # Initialize users field - # Remove field if user is not in registration or conservation group - if not in_group(self.request.user, ZB_GROUP) and not in_group(self.request.user, ETS_GROUP): - del self.fields["users"] - else: - users = self.instance.users.all() - choices = [] - for n in users: - choices.append( - (n.id, n.username) - ) - self.fields["users"].choices = choices - u_ids = list(users.values_list("id", flat=True)) - self.initialize_form_field( - "users", - u_ids + # Disable field if user is not in registration or conservation group + if is_default_group_only(self.request.user): + self.disable_form_field("users") + + self._add_user_choices_to_field() + + def _add_user_choices_to_field(self): + """ Transforms the instance's sharing users into a list for the form field + + Returns: + + """ + users = self.instance.users.all() + choices = [] + for n in users: + choices.append( + (n.id, n.username) ) + self.fields["users"].choices = choices + u_ids = list(users.values_list("id", flat=True)) + self.initialize_form_field( + "users", + u_ids + ) def save(self): - accessing_users = User.objects.filter( - id__in=self.cleaned_data["users"] + still_accessing_users = self.cleaned_data["users"] + new_accessing_users = list(self.cleaned_data["user_select"].values_list("id", flat=True)) + accessing_users = still_accessing_users + new_accessing_users + users = User.objects.filter( + id__in=accessing_users ) - self.instance.share_with_list(accessing_users) + self.instance.share_with_list(users) class NewRevocationModalForm(BaseModalForm): diff --git a/intervention/views.py b/intervention/views.py index 8c0838c..c2a87d6 100644 --- a/intervention/views.py +++ b/intervention/views.py @@ -11,7 +11,6 @@ from intervention.tables import InterventionTable from konova.contexts import BaseContext from konova.decorators import * from konova.forms import SimpleGeomForm, NewDocumentForm, RemoveModalForm, RecordModalForm -from konova.sub_settings.django_settings import DEFAULT_DATE_FORMAT from konova.utils.documents import remove_document, get_document from konova.utils.generators import generate_qr_code from konova.utils.message_templates import INTERVENTION_INVALID, FORM_INVALID, IDENTIFIER_REPLACED, \ @@ -403,7 +402,7 @@ def create_share_view(request: HttpRequest, id: str): """ intervention = get_object_or_404(Intervention, id=id) - form = ShareInterventionModalForm(request.POST or None, instance=intervention, request=request) + form = ShareInterventionModalForm(request.POST or None, instance=intervention, request=request, user=request.user) return form.process_request( request, msg_success=_("Share settings updated") diff --git a/konova/autocompletes.py b/konova/autocompletes.py index 36e585b..f0fb0fe 100644 --- a/konova/autocompletes.py +++ b/konova/autocompletes.py @@ -6,6 +6,7 @@ Created on: 07.12.20 """ from dal_select2.views import Select2QuerySetView +from django.contrib.auth.models import User from django.db.models import Q from codelist.models import KonovaCode @@ -60,6 +61,29 @@ class InterventionAutocomplete(Select2QuerySetView): return qs +class ShareUserAutocomplete(Select2QuerySetView): + """ Autocomplete for intervention entries + + Only returns entries that are accessible for the requesting user + + """ + def get_queryset(self): + if self.request.user.is_anonymous: + return User.objects.none() + exclude_user_ids = self.forwarded.get("users", [None]) + _exclude = {"id__in": exclude_user_ids} + qs = User.objects.all().exclude( + **_exclude + ).order_by( + "username" + ) + if self.q: + qs = qs.filter( + username__istartswith=self.q + ) + return qs + + class KonovaCodeAutocomplete(Select2QuerySetView): """ Provides simple autocomplete functionality for codes diff --git a/konova/urls.py b/konova/urls.py index 820de41..1954d29 100644 --- a/konova/urls.py +++ b/konova/urls.py @@ -19,7 +19,8 @@ from django.urls import path, include from konova.autocompletes import EcoAccountAutocomplete, \ InterventionAutocomplete, CompensationActionCodeAutocomplete, BiotopeCodeAutocomplete, LawCodeAutocomplete, \ - RegistrationOfficeCodeAutocomplete, ConservationOfficeCodeAutocomplete, ProcessTypeCodeAutocomplete + RegistrationOfficeCodeAutocomplete, ConservationOfficeCodeAutocomplete, ProcessTypeCodeAutocomplete, \ + ShareUserAutocomplete from konova.settings import SSO_SERVER, SSO_PUBLIC_KEY, SSO_PRIVATE_KEY, DEBUG from konova.sso.sso import KonovaSSOClient from konova.views import logout_view, home_view, remove_deadline_view @@ -50,6 +51,7 @@ urlpatterns = [ path("atcmplt/codes/prc-type", ProcessTypeCodeAutocomplete.as_view(), name="codes-process-type-autocomplete"), path("atcmplt/codes/reg-off", RegistrationOfficeCodeAutocomplete.as_view(), name="codes-registration-office-autocomplete"), path("atcmplt/codes/cons-off", ConservationOfficeCodeAutocomplete.as_view(), name="codes-conservation-office-autocomplete"), + path("atcmplt/share/u", ShareUserAutocomplete.as_view(), name="share-user-autocomplete"), ] if DEBUG: diff --git a/konova/utils/user_checks.py b/konova/utils/user_checks.py index d6b688b..a01dadb 100644 --- a/konova/utils/user_checks.py +++ b/konova/utils/user_checks.py @@ -7,6 +7,8 @@ Created on: 02.07.21 """ from django.contrib.auth.models import User +from konova.settings import ETS_GROUP, ZB_GROUP + def in_group(user: User, group: str) -> bool: """ Checks if the user is part of a group @@ -21,3 +23,15 @@ def in_group(user: User, group: str) -> bool: return user.groups.filter( name=group ) + + +def is_default_group_only(user: User) -> bool: + """ Checks if the user is only part of the default group + + Args: + user (User): The user object + + Returns: + bool + """ + return not in_group(user, ZB_GROUP) and not in_group(user, ETS_GROUP) \ No newline at end of file diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index 21785a438150888491cb8801b636a84d86bdb053..066b53d9fcd24334359875c6ffb6bd53833d6cb6 100644 GIT binary patch delta 8676 zcmYk>2YglK8OQMx$Ra>O*hv_d5kd$nVTLfm4h9m2tTHn$B$6Q+EP*RR6q_qh)8-)zq<$LfJC4seOMx++%NUB^n10c<7dVZOKAl#m^U2s0)3Fg| zV>p&t{XPt%z6qP)lc?(tqV7M1&G8~OV0`CCJK^8Sy`Tv;@)Kh45A+1nfz;I5frqduBeG5p;DHDx^Wh2 zFBe+-2Gk06U^Co@TH#x$6<4DM_!`yk�{mj&=Ksz)0%dV#$A73Mn*bfE?6~_hK-v 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 delta 8455 zcmY+}2V7U>9>?(qK~O*iQF1X9*)BlCtvOK;7mggcz+H|kuciH+Wm#E{G)t3)l~z}! z%*@QpaWflgnqg*UIl57n=1ncTpYQ+td{yVwkN5LD=bUH!o^uX(@9xh6UN{us`>JZt za>sFhfOB;)FWk9`<(!*YL#@uOjd!jJ=ZbMD^-XoT7CYB-u0I~YJ1`-^xqMuL^YIkM z;OP3!RmJ({3Jj*c9>bjTxlI%p)4hY0aliS6cY!;H^yMyDdyPcrs!>nI2yBg!*u(0> zunP6b7=^P@*Dpi$|1xU4t^T^txjlB`Gpxjk)5y%+�OIfk_y_4|R}@f!GCuu{&y@ z-l&d?Q2k8BXq=4|aRq9k#Tbkw7|!@^8--BZrv^M^p2T44KVU<=h-BNU)?aW15ie|30;hFo-M>@VcuBAkzUm?F}> z3B;oY%tUqE2DPF*)XK-8`kQ3+yHNw(XFh<+++(Qw*ZC-DMsJ{Qd>6ISy{LhYVHlo6 zZP6vv$^sgAsjq@+PeQ%ES?J#?)IdcTj`yPaS%~biTZYQ4Z#xD4bDvtnAJ~(6Bu|`D zIs&zV(Wn$oLQQbCxdfH+=TXY$)o65q5qoYUa0NILM^MPJhEAw~^05>4MWuEnYJiQX)b2oC_Ze!SFHjwyNA-6ZwS^&B-t}!!_ZOhH zXe37A^epmUnZhC(H1ky$iO-^D_&RD2cVHAAL49J+qkcgK^5E!v9n?g#uo>oJD$YR- zya6@Qx2*jG)OZ(t6tp+jP#p(ww@%bX-I#z%c?RnJ?t$uPJZcZ`LA}@WP+PSam5C=% z_djR#O?G|<>iRvX`+Wzkp%iuF8LWmEQJJVf9<}mX7>A8;4d$Z;EJLOI5^BKm+0OBe za#5)J+My=g*Bph)_?<}qJ~x+w2405huo#trmrxyVG~Yu#Oovb%p0M^Z;JB9FmZxASb|>Md#=WK>buSFus-!*(xQITQ4??6hWu-9n$w`Spab%^r^~T=F6xHfs0s8# zWnic|64lWd)Iuhso{{@d8G8_Q{gbGStwCMC5q14rZOFem-baH5`UEwh!ynx!$7#csG~QOLOWVL*Yx$Y6Maz+%V0Y(7PS=<%}J=# zPDN#A7B4>hrT z^#A@JK|y;q8g=1B)Sk~r?e#L$Krf(DyB#&aJ`BX;RzGQ8#EP_sboY!jYooR*5%s#> zfP2@GyGqD%z;9=CBUO)|S9W}uUxn9a^qOMQJP;8D`SVvTbx}h>O z3U%L%T=K7uAEH5f@*?V~-i7MmAZj9CnwL;}8=mL=dX2?c>N%(_9D^Y^8-sBnhT~$? z1fE8Xvjvs8gL&+~R(^yA`4wu$XHl6cv-Y4KUI&#>Ta%31f^5`%xn=;0cVA%ceIurj`m8t8pgheuH>{sGm&Wz+!IQNLV* z*l>!jBJzB?p{VO#Mm~0K6Q<)OOvdk?)tgaU@*!#> z-(VE}fO^XHzr$!EA!a!0`bgA5Qp{GU>+@0f_e1~R|KliV;3=ro%tcM;ersQhTJc(Q z9qPJQP+PUp+P7mG^2ciZ_xRzHQB*iXm{<*uO~=I#T%g%+Z==B|O{pSQzpr9mm#W*2;n z(bP|34qis3vfZtoeNYc;5o*HoP!nB(+WTiwTeTiFk=Ie5+?}Ym<}5bBNZ%mupIjZV zF%6S31J_~~JcOB8bFeq_Jk&&nVtbs78fX)0%ihLXxEnQ*lc-Fd#hdVV)EBeb5HFLy zEDD-=XVl*GLp>yeP^le()o~JP;034^twe3b^H$%2%ET`7AjVPu8ntpa)Vn_!)!q_6 z()&M%f@Yp_o3{lSW@l_i`>m+0coH?hM%2LXng>x6JZ<$WsFjBe^ZJcKeF^KJ?(2YB zKmi8o{U1)D1`UPS5NDxMwgHuaop%0XR0htXp6aWpf&M^kLHXfc=Bl736ph-72G}0E zqWW8iI{ySl`Y60YL9gEq)KmEhYQ~7aI%}++P9#t--%lJ`*!|75&755KBYl79z(6{TdQA2Wu)9_Z*OB!nMy3OS{p$7g1L+}~~W8he?pHQ<3mZ#lUjePe^-rlIz{nYDLEU6+rVSbu9D zjOuV0YQQ3EpNP6{veoZGWqJlC>iu6pp)m~`FbzY*7ozC=5& zNyiC7!=)Em@A==iGf~?Jwb@R@V1Ihn|@ii9)Wuj5iaj2p#2U8>OH;h3KR4ODX78=uUh? zByxccw%f%~4kYr3JBa#325}qbJ}0&jhY1~ZiD8`Uf-yKkjT|RE{_*oFHNB?(^-tsC z&nVu7AL1u!=jcwoC-FGt2mLKPAJlcc?&0R)XxgR{gNgCfUm)V`x^s5jX4Dt&#&HXU zJBi-*{J8^E_7M6CmM3%^^zi?@m!JEHFgn)jsE?A4X&(Rhsn_ksaf!ksL}!~&4?J%t zD^T{`L*)Y^*BbAo@jffJ$8OZeSbY-Zjg$+B;goO3*N8>L7sL<5F(Qa_*~EIvHHpcT z^^K{7I?}K{P7ko>uZEpSHf#7VBR$j;h>PhVx$(4TSv{8WK+3mbF!3ej zNTM0hhWY~RKy)Ma6M2Mx|5y79-tYD&tSo8~ZxTh^+*}PDDa0lsfVL#!ZOS*{jU&>^ z9kIk3zs4})0pfPrYY{Dpqtx5#{clL27x5NRh4_WgafRqdOj3m-mUx+H%{{}hi1_=F zLVI80K4K10ndnd4IHD-bAjZ(v2J4~kPYRtVRJ03sQ-7Y&F^;y2Sk2B&rJPT!Af6#w z6E}``t?-bUiff28VlvT^m`gw5sG}pn;=SiTno3hnZomc@f@ASx+(|T~d=Jrz(7$H? zP1}v56NP2OQ`Ybv)+0_6Gl>~ouVXeA;yQng-!C{Qz#HEkS0fipBr=JnR7a|f<3}Qz zw(3N4LbtR>9nTWK60@k^Osu8+5z&MAiTIWnK+GYU5JS1IcpRH0ElZjzOF)@#OA_yH%6Ak>OzkYmb#pnKNa=th!PZC3|u?3#7 zvS>xzMyKtpE!g}Do7rHeC_ilNgK)l;MFvsTu2X#in*NrMU5g%N>\n" "Language-Team: LANGUAGE \n" @@ -56,7 +56,7 @@ msgstr "Verantwortliche Stelle" #: analysis/forms.py:58 compensation/forms/forms.py:87 #: compensation/forms/forms.py:138 intervention/forms/forms.py:63 #: intervention/forms/forms.py:80 intervention/forms/forms.py:96 -#: intervention/forms/forms.py:112 +#: intervention/forms/forms.py:112 intervention/forms/modalForms.py:48 msgid "Click for selection" msgstr "Auswählen..." @@ -210,7 +210,7 @@ msgstr "Abbuchungen" #: compensation/templates/compensation/detail/eco_account/includes/states-before.html:36 #: ema/templates/ema/detail/includes/states-after.html:36 #: ema/templates/ema/detail/includes/states-before.html:36 -#: intervention/forms/modalForms.py:276 +#: intervention/forms/modalForms.py:291 msgid "Surface" msgstr "Fläche" @@ -273,7 +273,7 @@ msgid "Type" msgstr "Typ" #: analysis/templates/analysis/reports/includes/old_data/amount.html:24 -#: intervention/forms/modalForms.py:287 intervention/forms/modalForms.py:294 +#: intervention/forms/modalForms.py:302 intervention/forms/modalForms.py:309 #: intervention/tables.py:88 #: intervention/templates/intervention/detail/view.html:19 #: konova/templates/konova/home.html:11 templates/navbars/navbar.html:22 @@ -283,7 +283,7 @@ msgstr "Eingriff" #: analysis/templates/analysis/reports/includes/old_data/amount.html:34 #: compensation/tables.py:224 #: compensation/templates/compensation/detail/eco_account/view.html:19 -#: intervention/forms/modalForms.py:260 intervention/forms/modalForms.py:267 +#: intervention/forms/modalForms.py:275 intervention/forms/modalForms.py:282 #: konova/templates/konova/home.html:88 templates/navbars/navbar.html:34 msgid "Eco-account" msgstr "Ökokonto" @@ -350,7 +350,7 @@ msgstr "Kompensation XY; Flur ABC" #: ema/templates/ema/detail/includes/actions.html:34 #: ema/templates/ema/detail/includes/deadlines.html:34 #: ema/templates/ema/detail/includes/documents.html:31 -#: intervention/forms/forms.py:179 intervention/forms/modalForms.py:133 +#: intervention/forms/forms.py:179 intervention/forms/modalForms.py:148 #: intervention/templates/intervention/detail/includes/documents.html:31 #: intervention/templates/intervention/detail/includes/payments.html:34 #: intervention/templates/intervention/detail/includes/revocation.html:38 @@ -452,7 +452,7 @@ msgid "Due on which date" msgstr "Zahlung wird an diesem Datum erwartet" #: compensation/forms/modalForms.py:63 compensation/forms/modalForms.py:274 -#: compensation/forms/modalForms.py:369 intervention/forms/modalForms.py:135 +#: compensation/forms/modalForms.py:369 intervention/forms/modalForms.py:150 #: konova/forms.py:376 msgid "Additional comment, maximum {} letters" msgstr "Zusätzlicher Kommentar, maximal {} Zeichen" @@ -477,7 +477,7 @@ msgstr "Biotoptyp" msgid "Select the biotope type" msgstr "Biotoptyp wählen" -#: compensation/forms/modalForms.py:155 intervention/forms/modalForms.py:278 +#: compensation/forms/modalForms.py:155 intervention/forms/modalForms.py:293 msgid "in m²" msgstr "" @@ -509,7 +509,7 @@ msgstr "Fristart wählen" #: compensation/templates/compensation/detail/compensation/includes/deadlines.html:31 #: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:31 #: ema/templates/ema/detail/includes/deadlines.html:31 -#: intervention/forms/modalForms.py:107 +#: intervention/forms/modalForms.py:122 msgid "Date" msgstr "Datum" @@ -888,14 +888,14 @@ msgstr "Zuletzt bearbeitet" #: compensation/templates/compensation/detail/compensation/view.html:79 #: compensation/templates/compensation/detail/eco_account/view.html:82 -#: ema/templates/ema/detail/view.html:69 intervention/forms/modalForms.py:40 +#: ema/templates/ema/detail/view.html:69 intervention/forms/modalForms.py:55 #: intervention/templates/intervention/detail/view.html:116 msgid "Shared with" msgstr "Freigegeben für" #: compensation/templates/compensation/detail/eco_account/includes/controls.html:15 #: ema/templates/ema/detail/includes/controls.html:15 -#: intervention/forms/modalForms.py:54 +#: intervention/forms/modalForms.py:69 #: intervention/templates/intervention/detail/includes/controls.html:15 msgid "Share" msgstr "Freigabe" @@ -1031,7 +1031,7 @@ msgstr "Kompensation {} bearbeitet" #: compensation/views/compensation_views.py:220 #: compensation/views/eco_account_views.py:307 ema/views.py:182 -#: intervention/views.py:476 +#: intervention/views.py:475 msgid "Log" msgstr "Log" @@ -1041,7 +1041,7 @@ msgstr "Kompensation entfernt" #: compensation/views/compensation_views.py:264 #: compensation/views/eco_account_views.py:459 ema/views.py:349 -#: intervention/views.py:130 +#: intervention/views.py:129 msgid "Document added" msgstr "Dokument hinzugefügt" @@ -1087,36 +1087,36 @@ msgid "Deduction removed" msgstr "Abbuchung entfernt" #: compensation/views/eco_account_views.py:328 ema/views.py:262 -#: intervention/views.py:518 +#: intervention/views.py:517 msgid "{} unrecorded" msgstr "{} entzeichnet" #: compensation/views/eco_account_views.py:328 ema/views.py:262 -#: intervention/views.py:518 +#: intervention/views.py:517 msgid "{} recorded" msgstr "{} verzeichnet" -#: compensation/views/eco_account_views.py:529 intervention/views.py:499 +#: compensation/views/eco_account_views.py:529 intervention/views.py:498 msgid "Deduction added" msgstr "Abbuchung hinzugefügt" #: compensation/views/eco_account_views.py:612 ema/views.py:517 -#: intervention/views.py:374 +#: intervention/views.py:373 msgid "{} has already been shared with you" msgstr "{} wurde bereits für Sie freigegeben" #: compensation/views/eco_account_views.py:617 ema/views.py:522 -#: intervention/views.py:379 +#: intervention/views.py:378 msgid "{} has been shared with you" msgstr "{} ist nun für Sie freigegeben" #: compensation/views/eco_account_views.py:624 ema/views.py:529 -#: intervention/views.py:386 +#: intervention/views.py:385 msgid "Share link invalid" msgstr "Freigabelink ungültig" #: compensation/views/eco_account_views.py:647 ema/views.py:552 -#: intervention/views.py:409 +#: intervention/views.py:408 msgid "Share settings updated" msgstr "Freigabe Einstellungen aktualisiert" @@ -1257,46 +1257,57 @@ msgstr "Freigabelink" msgid "Send this link to users who you want to have writing access on the data" msgstr "Andere Nutzer erhalten über diesen Link Zugriff auf die Daten" -#: intervention/forms/modalForms.py:43 +#: intervention/forms/modalForms.py:40 +msgid "Add user to share with" +msgstr "Nutzer direkt hinzufügen" + +#: intervention/forms/modalForms.py:42 +msgid "" +"Multiple selection possible - You can only select users which do not already " +"have access" +msgstr "" +"Mehrfachauswahl möglich - Sie können nur Nutzer wählen, für die der Eintrag noch nicht freigegeben wurde" + +#: intervention/forms/modalForms.py:58 msgid "Remove check to remove access for this user" msgstr "Wählen Sie die Nutzer ab, die keinen Zugriff mehr haben sollen" -#: intervention/forms/modalForms.py:55 +#: intervention/forms/modalForms.py:70 msgid "Share settings for {}" msgstr "Freigabe Einstellungen für {}" -#: intervention/forms/modalForms.py:109 +#: intervention/forms/modalForms.py:124 msgid "Date of revocation" msgstr "Datum des Widerspruchs" -#: intervention/forms/modalForms.py:120 +#: intervention/forms/modalForms.py:135 #: intervention/templates/intervention/detail/includes/revocation.html:35 msgid "Document" msgstr "Dokument" -#: intervention/forms/modalForms.py:123 konova/forms.py:364 +#: intervention/forms/modalForms.py:138 konova/forms.py:364 msgid "Must be smaller than 15 Mb" msgstr "Muss kleiner als 15 Mb sein" -#: intervention/forms/modalForms.py:147 +#: intervention/forms/modalForms.py:162 #: intervention/templates/intervention/detail/includes/revocation.html:18 msgid "Add revocation" msgstr "Widerspruch hinzufügen" -#: intervention/forms/modalForms.py:189 +#: intervention/forms/modalForms.py:204 msgid "Checked intervention data" msgstr "Eingriffsdaten geprüft" -#: intervention/forms/modalForms.py:195 +#: intervention/forms/modalForms.py:210 msgid "Checked compensations data and payments" msgstr "Kompensationen und Zahlungen geprüft" -#: intervention/forms/modalForms.py:203 +#: intervention/forms/modalForms.py:218 #: intervention/templates/intervention/detail/includes/controls.html:19 msgid "Run check" msgstr "Prüfung vornehmen" -#: intervention/forms/modalForms.py:204 konova/forms.py:449 +#: intervention/forms/modalForms.py:219 konova/forms.py:449 msgid "" "I, {} {}, confirm that all necessary control steps have been performed by " "myself." @@ -1304,23 +1315,23 @@ msgstr "" "Ich, {} {}, bestätige, dass die notwendigen Kontrollschritte durchgeführt " "wurden:" -#: intervention/forms/modalForms.py:262 +#: intervention/forms/modalForms.py:277 msgid "Only recorded accounts can be selected for deductions" msgstr "Nur verzeichnete Ökokonten können für Abbuchungen verwendet werden." -#: intervention/forms/modalForms.py:289 +#: intervention/forms/modalForms.py:304 msgid "Only shared interventions can be selected" msgstr "Nur freigegebene Eingriffe können gewählt werden" -#: intervention/forms/modalForms.py:302 +#: intervention/forms/modalForms.py:317 msgid "New Deduction" msgstr "Neue Abbuchung" -#: intervention/forms/modalForms.py:303 +#: intervention/forms/modalForms.py:318 msgid "Enter the information for a new deduction from a chosen eco-account" msgstr "Geben Sie die Informationen für eine neue Abbuchung ein." -#: intervention/forms/modalForms.py:336 +#: intervention/forms/modalForms.py:351 msgid "" "Eco-account {} is not recorded yet. You can only deduct from recorded " "accounts." @@ -1328,7 +1339,7 @@ msgstr "" "Ökokonto {} ist noch nicht verzeichnet. Abbuchungen können nur von " "verzeichneten Ökokonten erfolgen." -#: intervention/forms/modalForms.py:349 +#: intervention/forms/modalForms.py:364 msgid "" "The account {} has not enough surface for a deduction of {} m². There are " "only {} m² left" @@ -1431,35 +1442,35 @@ msgstr "" "Kein Ausgleich jeglicher Art gefunden (Kompensation, Ersatzzahlung, " "Abbuchung)" -#: intervention/views.py:80 +#: intervention/views.py:79 msgid "Intervention {} added" msgstr "Eingriff {} hinzugefügt" -#: intervention/views.py:244 +#: intervention/views.py:243 msgid "This intervention has {} revocations" msgstr "Dem Eingriff liegen {} Widersprüche vor" -#: intervention/views.py:292 +#: intervention/views.py:291 msgid "Intervention {} edited" msgstr "Eingriff {} bearbeitet" -#: intervention/views.py:327 +#: intervention/views.py:326 msgid "{} removed" msgstr "{} entfernt" -#: intervention/views.py:348 +#: intervention/views.py:347 msgid "Revocation removed" msgstr "Widerspruch entfernt" -#: intervention/views.py:430 +#: intervention/views.py:429 msgid "Check performed" msgstr "Prüfung durchgeführt" -#: intervention/views.py:452 +#: intervention/views.py:451 msgid "Revocation added" msgstr "Widerspruch hinzugefügt" -#: intervention/views.py:523 +#: intervention/views.py:522 msgid "There are errors on this intervention:" msgstr "Es liegen Fehler in diesem Eingriff vor:" @@ -3141,6 +3152,9 @@ msgstr "" msgid "A fontawesome icon field" msgstr "" +#~ msgid "Share with user" +#~ msgstr "Freigeben für Nutzer" + #~ msgid "Fundings" #~ msgstr "Förderungen" -- 2.38.5 From 2ca0ceade40725bdcd03f885e36cd3fd0d340d73 Mon Sep 17 00:00:00 2001 From: mpeltriaux Date: Mon, 15 Nov 2021 14:08:29 +0100 Subject: [PATCH 4/5] #38 User requests * implements 4) "Comment fields should be of unlimited size" --- compensation/models.py | 3 +-- konova/models.py | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/compensation/models.py b/compensation/models.py index 15aa30e..30d5daa 100644 --- a/compensation/models.py +++ b/compensation/models.py @@ -32,8 +32,7 @@ class Payment(BaseResource): """ amount = models.FloatField(validators=[MinValueValidator(limit_value=0.00)]) due_on = models.DateField(null=True, blank=True) - comment = models.CharField( - max_length=1000, + comment = models.TextField( null=True, blank=True, help_text="Refers to german money transfer 'Verwendungszweck'", diff --git a/konova/models.py b/konova/models.py index cc836a2..7dbe4f7 100644 --- a/konova/models.py +++ b/konova/models.py @@ -241,7 +241,7 @@ class Deadline(BaseResource): type = models.CharField(max_length=255, null=True, blank=True, choices=DeadlineType.choices) date = models.DateField(null=True, blank=True) - comment = models.CharField(max_length=1000, null=True, blank=True) + comment = models.TextField(null=True, blank=True) def __str__(self): return self.type -- 2.38.5 From ab8d5c9724570696c38864368bf5f852a565112a Mon Sep 17 00:00:00 2001 From: mpeltriaux Date: Mon, 15 Nov 2021 15:55:09 +0100 Subject: [PATCH 5/5] #38 User requests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * implements 5) "Add 'Maßnahmentyp' for KOMs " * prepares model and form fields as mixins for easy extension to eco accounts and emas (possibly in the future?) --- compensation/forms/forms.py | 40 ++++- compensation/models.py | 32 +++- .../detail/compensation/view.html | 22 ++- konova/static/css/konova.css | 7 +- konova/templatetags/ksp_filters.py | 2 + locale/de/LC_MESSAGES/django.mo | Bin 27204 -> 27805 bytes locale/de/LC_MESSAGES/django.po | 153 ++++++++++-------- 7 files changed, 188 insertions(+), 68 deletions(-) diff --git a/compensation/forms/forms.py b/compensation/forms/forms.py index 52575d3..212efa6 100644 --- a/compensation/forms/forms.py +++ b/compensation/forms/forms.py @@ -115,7 +115,33 @@ class CompensationResponsibleFormMixin(forms.Form): ) -class NewCompensationForm(AbstractCompensationForm): +class CEFCompensationFormMixin(forms.Form): + """ A form mixin, providing CEF compensation field + + """ + is_cef = forms.BooleanField( + label_suffix="", + label=_("Is CEF"), + help_text=_("Optionally: Whether this compensation is a CEF compensation?"), + required=False, + widget=forms.CheckboxInput() + ) + + +class CoherenceCompensationFormMixin(forms.Form): + """ A form mixin, providing coherence compensation field + + """ + is_coherence_keeping = forms.BooleanField( + label_suffix="", + label=_("Is coherence keeping"), + help_text=_("Optionally: Whether this compensation is a coherence keeping compensation?"), + required=False, + widget=forms.CheckboxInput() + ) + + +class NewCompensationForm(AbstractCompensationForm, CEFCompensationFormMixin, CoherenceCompensationFormMixin): """ Form for creating new compensations. Can be initialized with an intervention id for preselecting the related intervention. @@ -146,6 +172,8 @@ class NewCompensationForm(AbstractCompensationForm): "identifier", "title", "intervention", + "is_cef", + "is_coherence_keeping", "comment", ] @@ -177,6 +205,8 @@ class NewCompensationForm(AbstractCompensationForm): identifier = self.cleaned_data.get("identifier", None) title = self.cleaned_data.get("title", None) intervention = self.cleaned_data.get("intervention", None) + is_cef = self.cleaned_data.get("is_cef", None) + is_coherence_keeping = self.cleaned_data.get("is_coherence_keeping", None) comment = self.cleaned_data.get("comment", None) # Create log entry @@ -193,6 +223,8 @@ class NewCompensationForm(AbstractCompensationForm): title=title, intervention=intervention, created=action, + is_cef=is_cef, + is_coherence_keeping=is_coherence_keeping, geometry=geometry, comment=comment, ) @@ -217,6 +249,8 @@ class EditCompensationForm(NewCompensationForm): "identifier": self.instance.identifier, "title": self.instance.title, "intervention": self.instance.intervention, + "is_cef": self.instance.is_cef, + "is_coherence_keeping": self.instance.is_coherence_keeping, "comment": self.instance.comment, } disabled_fields = [] @@ -231,6 +265,8 @@ class EditCompensationForm(NewCompensationForm): identifier = self.cleaned_data.get("identifier", None) title = self.cleaned_data.get("title", None) intervention = self.cleaned_data.get("intervention", None) + is_cef = self.cleaned_data.get("is_cef", None) + is_coherence_keeping = self.cleaned_data.get("is_coherence_keeping", None) comment = self.cleaned_data.get("comment", None) # Create log entry @@ -247,6 +283,8 @@ class EditCompensationForm(NewCompensationForm): self.instance.title = title self.instance.intervention = intervention self.instance.geometry = geometry + self.instance.is_cef = is_cef + self.instance.is_coherence_keeping = is_coherence_keeping self.instance.comment = comment self.instance.modified = action self.instance.save() diff --git a/compensation/models.py b/compensation/models.py index 30d5daa..a0cf80d 100644 --- a/compensation/models.py +++ b/compensation/models.py @@ -189,7 +189,37 @@ class AbstractCompensation(BaseObject): return checker -class Compensation(AbstractCompensation): +class CEFMixin(models.Model): + """ Provides CEF flag as Mixin + + """ + is_cef = models.BooleanField( + blank=True, + null=True, + default=False, + help_text="Flag if compensation is a 'CEF-Maßnahme'" + ) + + class Meta: + abstract = True + + +class CoherenceMixin(models.Model): + """ Provides coherence keeping flag as Mixin + + """ + is_coherence_keeping = models.BooleanField( + blank=True, + null=True, + default=False, + help_text="Flag if compensation is a 'Kohärenzsicherung'" + ) + + class Meta: + abstract = True + + +class Compensation(AbstractCompensation, CEFMixin, CoherenceMixin): """ Regular compensation, linked to an intervention """ diff --git a/compensation/templates/compensation/detail/compensation/view.html b/compensation/templates/compensation/detail/compensation/view.html index 2adcd02..581bf79 100644 --- a/compensation/templates/compensation/detail/compensation/view.html +++ b/compensation/templates/compensation/detail/compensation/view.html @@ -1,5 +1,5 @@ {% extends 'base.html' %} -{% load i18n l10n static fontawesome_5 humanize %} +{% load i18n l10n static fontawesome_5 humanize ksp_filters %} {% block head %} {% comment %} @@ -38,6 +38,26 @@ + + {% trans 'Is CEF compensation' %} + + {% if obj.is_cef %} + {% trans 'Yes' %} + {% else %} + {% trans 'No' %} + {% endif %} + + + + {% trans 'Is Coherence keeping compensation' %} + + {% if obj.is_coherence_keeping %} + {% trans 'Yes' %} + {% else %} + {% trans 'No' %} + {% endif %} + + {% trans 'Checked' %} diff --git a/konova/static/css/konova.css b/konova/static/css/konova.css index 6de1f8f..294287e 100644 --- a/konova/static/css/konova.css +++ b/konova/static/css/konova.css @@ -186,12 +186,15 @@ Overwrites bootstrap .btn:focus box shadow color background-color: var(--rlp-gray-light); } -.check-star{ +.check-star, .c-goldenrod{ color: goldenrod; } -.registered-bookmark{ +.registered-bookmark, .c-green{ color: green; } +.c-red{ + color: red; +} /* PAGINATION */ .page-item > .page-link{ diff --git a/konova/templatetags/ksp_filters.py b/konova/templatetags/ksp_filters.py index 1472d50..f311a53 100644 --- a/konova/templatetags/ksp_filters.py +++ b/konova/templatetags/ksp_filters.py @@ -8,6 +8,8 @@ Created on: 05.07.21 from django import template # Create custom library +from django.utils.html import format_html + from news.models import ServerMessageImportance register = template.Library() diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index 066b53d9fcd24334359875c6ffb6bd53833d6cb6..19aafdf15b66d4a86f1026633938f195b28b6f14 100644 GIT binary patch delta 9112 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 X^3N{av_j?Vms4v7W;Yx>rs)3whBJMy diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index 95b1218..388a9b8 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -9,8 +9,8 @@ #: intervention/filters.py:26 intervention/filters.py:40 #: intervention/filters.py:47 intervention/filters.py:48 #: intervention/forms/forms.py:53 intervention/forms/forms.py:155 -#: intervention/forms/forms.py:167 intervention/forms/modalForms.py:123 -#: intervention/forms/modalForms.py:136 intervention/forms/modalForms.py:149 +#: intervention/forms/forms.py:167 intervention/forms/modalForms.py:133 +#: intervention/forms/modalForms.py:146 intervention/forms/modalForms.py:159 #: konova/forms.py:142 konova/forms.py:247 konova/forms.py:313 #: konova/forms.py:340 konova/forms.py:350 konova/forms.py:363 #: konova/forms.py:375 konova/forms.py:396 user/forms.py:38 @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-11-15 13:40+0100\n" +"POT-Creation-Date: 2021-11-15 15:48+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -54,9 +54,9 @@ msgid "Select the responsible office" msgstr "Verantwortliche Stelle" #: analysis/forms.py:58 compensation/forms/forms.py:87 -#: compensation/forms/forms.py:138 intervention/forms/forms.py:63 +#: compensation/forms/forms.py:164 intervention/forms/forms.py:63 #: intervention/forms/forms.py:80 intervention/forms/forms.py:96 -#: intervention/forms/forms.py:112 intervention/forms/modalForms.py:48 +#: intervention/forms/forms.py:112 intervention/forms/modalForms.py:47 msgid "Click for selection" msgstr "Auswählen..." @@ -130,7 +130,7 @@ msgstr "Zuständigkeitsbereich" #: analysis/templates/analysis/reports/includes/intervention/compensated_by.html:8 #: analysis/templates/analysis/reports/includes/intervention/laws.html:17 #: compensation/tables.py:35 -#: compensation/templates/compensation/detail/compensation/view.html:43 +#: compensation/templates/compensation/detail/compensation/view.html:63 #: intervention/tables.py:33 #: intervention/templates/intervention/detail/view.html:68 user/models.py:48 msgid "Checked" @@ -145,7 +145,7 @@ msgstr "Geprüft" #: analysis/templates/analysis/reports/includes/intervention/laws.html:20 #: analysis/templates/analysis/reports/includes/old_data/amount.html:18 #: compensation/tables.py:41 compensation/tables.py:181 -#: compensation/templates/compensation/detail/compensation/view.html:57 +#: compensation/templates/compensation/detail/compensation/view.html:77 #: compensation/templates/compensation/detail/eco_account/includes/deductions.html:31 #: compensation/templates/compensation/detail/eco_account/view.html:44 #: ema/tables.py:38 ema/templates/ema/detail/view.html:28 @@ -210,7 +210,7 @@ msgstr "Abbuchungen" #: compensation/templates/compensation/detail/eco_account/includes/states-before.html:36 #: ema/templates/ema/detail/includes/states-after.html:36 #: ema/templates/ema/detail/includes/states-before.html:36 -#: intervention/forms/modalForms.py:291 +#: intervention/forms/modalForms.py:301 msgid "Surface" msgstr "Fläche" @@ -273,7 +273,7 @@ msgid "Type" msgstr "Typ" #: analysis/templates/analysis/reports/includes/old_data/amount.html:24 -#: intervention/forms/modalForms.py:302 intervention/forms/modalForms.py:309 +#: intervention/forms/modalForms.py:312 intervention/forms/modalForms.py:319 #: intervention/tables.py:88 #: intervention/templates/intervention/detail/view.html:19 #: konova/templates/konova/home.html:11 templates/navbars/navbar.html:22 @@ -283,7 +283,7 @@ msgstr "Eingriff" #: analysis/templates/analysis/reports/includes/old_data/amount.html:34 #: compensation/tables.py:224 #: compensation/templates/compensation/detail/eco_account/view.html:19 -#: intervention/forms/modalForms.py:275 intervention/forms/modalForms.py:282 +#: intervention/forms/modalForms.py:285 intervention/forms/modalForms.py:292 #: konova/templates/konova/home.html:88 templates/navbars/navbar.html:34 msgid "Eco-account" msgstr "Ökokonto" @@ -350,7 +350,7 @@ msgstr "Kompensation XY; Flur ABC" #: ema/templates/ema/detail/includes/actions.html:34 #: ema/templates/ema/detail/includes/deadlines.html:34 #: ema/templates/ema/detail/includes/documents.html:31 -#: intervention/forms/forms.py:179 intervention/forms/modalForms.py:148 +#: intervention/forms/forms.py:179 intervention/forms/modalForms.py:158 #: intervention/templates/intervention/detail/includes/documents.html:31 #: intervention/templates/intervention/detail/includes/payments.html:34 #: intervention/templates/intervention/detail/includes/revocation.html:38 @@ -390,51 +390,69 @@ msgstr "Wer für die Herrichtung des Ökokontos verantwortlich ist" msgid "Company Mustermann" msgstr "Firma Mustermann" -#: compensation/forms/forms.py:129 +#: compensation/forms/forms.py:124 +msgid "Is CEF" +msgstr "Ist CEF-Maßnahme" + +#: compensation/forms/forms.py:125 +msgid "Optionally: Whether this compensation is a CEF compensation?" +msgstr "Optional: Handelt es sich um eine CEF-Maßnahme?" + +#: compensation/forms/forms.py:137 +msgid "Is coherence keeping" +msgstr "Ist Kohärenzsicherungsmaßnahme" + +#: compensation/forms/forms.py:138 +msgid "" +"Optionally: Whether this compensation is a coherence keeping compensation?" +msgstr "" +"Optional: Handelt es sich um eine Kohärenzsicherungsmaßnahme?" + +#: compensation/forms/forms.py:155 #: compensation/templates/compensation/detail/compensation/view.html:35 #: compensation/templates/compensation/report/compensation/report.html:16 msgid "compensates intervention" msgstr "kompensiert Eingriff" -#: compensation/forms/forms.py:131 +#: compensation/forms/forms.py:157 msgid "Select the intervention for which this compensation compensates" msgstr "Wählen Sie den Eingriff, für den diese Kompensation bestimmt ist" -#: compensation/forms/forms.py:155 +#: compensation/forms/forms.py:183 msgid "New compensation" msgstr "Neue Kompensation" -#: compensation/forms/forms.py:211 +#: compensation/forms/forms.py:243 msgid "Edit compensation" msgstr "Bearbeite Kompensation" -#: compensation/forms/forms.py:267 compensation/utils/quality.py:84 +#: compensation/forms/forms.py:305 compensation/utils/quality.py:84 msgid "Available Surface" msgstr "Verfügbare Fläche" -#: compensation/forms/forms.py:270 +#: compensation/forms/forms.py:308 msgid "The amount that can be used for deductions" msgstr "Die für Abbuchungen zur Verfügung stehende Menge" -#: compensation/forms/forms.py:279 +#: compensation/forms/forms.py:317 #: compensation/templates/compensation/detail/eco_account/view.html:66 #: compensation/utils/quality.py:72 msgid "Agreement date" msgstr "Vereinbarungsdatum" -#: compensation/forms/forms.py:281 +#: compensation/forms/forms.py:319 msgid "When did the parties agree on this?" msgstr "Wann wurde dieses Ökokonto offiziell vereinbart?" -#: compensation/forms/forms.py:305 +#: compensation/forms/forms.py:343 msgid "New Eco-Account" msgstr "Neues Ökokonto" -#: compensation/forms/forms.py:314 +#: compensation/forms/forms.py:352 msgid "Eco-Account XY; Location ABC" msgstr "Ökokonto XY; Flur ABC" -#: compensation/forms/forms.py:371 +#: compensation/forms/forms.py:409 msgid "Edit Eco-Account" msgstr "Ökokonto bearbeiten" @@ -452,7 +470,7 @@ msgid "Due on which date" msgstr "Zahlung wird an diesem Datum erwartet" #: compensation/forms/modalForms.py:63 compensation/forms/modalForms.py:274 -#: compensation/forms/modalForms.py:369 intervention/forms/modalForms.py:150 +#: compensation/forms/modalForms.py:369 intervention/forms/modalForms.py:160 #: konova/forms.py:376 msgid "Additional comment, maximum {} letters" msgstr "Zusätzlicher Kommentar, maximal {} Zeichen" @@ -477,7 +495,7 @@ msgstr "Biotoptyp" msgid "Select the biotope type" msgstr "Biotoptyp wählen" -#: compensation/forms/modalForms.py:155 intervention/forms/modalForms.py:293 +#: compensation/forms/modalForms.py:155 intervention/forms/modalForms.py:303 msgid "in m²" msgstr "" @@ -509,7 +527,7 @@ msgstr "Fristart wählen" #: compensation/templates/compensation/detail/compensation/includes/deadlines.html:31 #: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:31 #: ema/templates/ema/detail/includes/deadlines.html:31 -#: intervention/forms/modalForms.py:122 +#: intervention/forms/modalForms.py:132 msgid "Date" msgstr "Datum" @@ -587,38 +605,38 @@ msgstr "Geben Sie die Daten der neuen Maßnahme ein" msgid "Added action" msgstr "Maßnahme hinzugefügt" -#: compensation/models.py:82 +#: compensation/models.py:81 msgid "cm" msgstr "" -#: compensation/models.py:83 +#: compensation/models.py:82 msgid "m" msgstr "" -#: compensation/models.py:84 +#: compensation/models.py:83 msgid "km" msgstr "" -#: compensation/models.py:85 +#: compensation/models.py:84 msgid "m²" msgstr "" -#: compensation/models.py:86 +#: compensation/models.py:85 msgid "ha" msgstr "" -#: compensation/models.py:87 +#: compensation/models.py:86 msgid "Pieces" msgstr "Stück" -#: compensation/models.py:345 +#: compensation/models.py:374 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" -#: compensation/models.py:352 +#: compensation/models.py:381 msgid "" "Deductable surface can not be smaller than the sum of already existing " "deductions. Please contact the responsible users for the deductions!" @@ -650,7 +668,7 @@ msgid "Checked on {} by {}" msgstr "Am {} von {} geprüft worden" #: compensation/tables.py:129 -#: compensation/templates/compensation/detail/compensation/view.html:60 +#: compensation/templates/compensation/detail/compensation/view.html:80 #: compensation/templates/compensation/detail/eco_account/includes/deductions.html:56 #: compensation/templates/compensation/detail/eco_account/view.html:47 #: ema/tables.py:101 ema/templates/ema/detail/view.html:31 @@ -853,13 +871,21 @@ msgstr "Neuen Ausgangszustand hinzufügen" msgid "Missing surfaces according to states after: " msgstr "Fehlende Flächenmengen laut Zielzustand: " -#: compensation/templates/compensation/detail/compensation/view.html:50 +#: compensation/templates/compensation/detail/compensation/view.html:43 +msgid "Is CEF compensation" +msgstr "Ist CEF Maßnahme" + +#: compensation/templates/compensation/detail/compensation/view.html:53 +msgid "Is Coherence keeping compensation" +msgstr "Ist Kohärenzsicherungsmaßnahme" + +#: compensation/templates/compensation/detail/compensation/view.html:70 #: intervention/templates/intervention/detail/view.html:75 msgid "Checked on " msgstr "Geprüft am " -#: compensation/templates/compensation/detail/compensation/view.html:50 -#: compensation/templates/compensation/detail/compensation/view.html:64 +#: compensation/templates/compensation/detail/compensation/view.html:70 +#: compensation/templates/compensation/detail/compensation/view.html:84 #: compensation/templates/compensation/detail/eco_account/includes/deductions.html:54 #: compensation/templates/compensation/detail/eco_account/view.html:51 #: ema/templates/ema/detail/view.html:35 @@ -868,14 +894,14 @@ msgstr "Geprüft am " msgid "by" msgstr "von" -#: compensation/templates/compensation/detail/compensation/view.html:64 +#: compensation/templates/compensation/detail/compensation/view.html:84 #: compensation/templates/compensation/detail/eco_account/view.html:51 #: ema/templates/ema/detail/view.html:35 #: intervention/templates/intervention/detail/view.html:89 msgid "Recorded on " msgstr "Verzeichnet am" -#: compensation/templates/compensation/detail/compensation/view.html:71 +#: compensation/templates/compensation/detail/compensation/view.html:91 #: compensation/templates/compensation/detail/eco_account/view.html:74 #: compensation/templates/compensation/report/compensation/report.html:24 #: compensation/templates/compensation/report/eco_account/report.html:41 @@ -886,16 +912,16 @@ msgstr "Verzeichnet am" msgid "Last modified" msgstr "Zuletzt bearbeitet" -#: compensation/templates/compensation/detail/compensation/view.html:79 +#: compensation/templates/compensation/detail/compensation/view.html:99 #: compensation/templates/compensation/detail/eco_account/view.html:82 -#: ema/templates/ema/detail/view.html:69 intervention/forms/modalForms.py:55 +#: ema/templates/ema/detail/view.html:69 intervention/forms/modalForms.py:54 #: intervention/templates/intervention/detail/view.html:116 msgid "Shared with" msgstr "Freigegeben für" #: compensation/templates/compensation/detail/eco_account/includes/controls.html:15 #: ema/templates/ema/detail/includes/controls.html:15 -#: intervention/forms/modalForms.py:69 +#: intervention/forms/modalForms.py:68 #: intervention/templates/intervention/detail/includes/controls.html:15 msgid "Share" msgstr "Freigabe" @@ -1249,65 +1275,66 @@ msgstr "Neuer Eingriff" msgid "Edit intervention" msgstr "Eingriff bearbeiten" -#: intervention/forms/modalForms.py:28 +#: intervention/forms/modalForms.py:27 msgid "Share link" msgstr "Freigabelink" -#: intervention/forms/modalForms.py:30 +#: intervention/forms/modalForms.py:29 msgid "Send this link to users who you want to have writing access on the data" msgstr "Andere Nutzer erhalten über diesen Link Zugriff auf die Daten" -#: intervention/forms/modalForms.py:40 +#: intervention/forms/modalForms.py:39 msgid "Add user to share with" msgstr "Nutzer direkt hinzufügen" -#: intervention/forms/modalForms.py:42 +#: intervention/forms/modalForms.py:41 msgid "" "Multiple selection possible - You can only select users which do not already " "have access" msgstr "" -"Mehrfachauswahl möglich - Sie können nur Nutzer wählen, für die der Eintrag noch nicht freigegeben wurde" +"Mehrfachauswahl möglich - Sie können nur Nutzer wählen, für die der Eintrag " +"noch nicht freigegeben wurde" -#: intervention/forms/modalForms.py:58 +#: intervention/forms/modalForms.py:57 msgid "Remove check to remove access for this user" msgstr "Wählen Sie die Nutzer ab, die keinen Zugriff mehr haben sollen" -#: intervention/forms/modalForms.py:70 +#: intervention/forms/modalForms.py:69 msgid "Share settings for {}" msgstr "Freigabe Einstellungen für {}" -#: intervention/forms/modalForms.py:124 +#: intervention/forms/modalForms.py:134 msgid "Date of revocation" msgstr "Datum des Widerspruchs" -#: intervention/forms/modalForms.py:135 +#: intervention/forms/modalForms.py:145 #: intervention/templates/intervention/detail/includes/revocation.html:35 msgid "Document" msgstr "Dokument" -#: intervention/forms/modalForms.py:138 konova/forms.py:364 +#: intervention/forms/modalForms.py:148 konova/forms.py:364 msgid "Must be smaller than 15 Mb" msgstr "Muss kleiner als 15 Mb sein" -#: intervention/forms/modalForms.py:162 +#: intervention/forms/modalForms.py:172 #: intervention/templates/intervention/detail/includes/revocation.html:18 msgid "Add revocation" msgstr "Widerspruch hinzufügen" -#: intervention/forms/modalForms.py:204 +#: intervention/forms/modalForms.py:214 msgid "Checked intervention data" msgstr "Eingriffsdaten geprüft" -#: intervention/forms/modalForms.py:210 +#: intervention/forms/modalForms.py:220 msgid "Checked compensations data and payments" msgstr "Kompensationen und Zahlungen geprüft" -#: intervention/forms/modalForms.py:218 +#: intervention/forms/modalForms.py:228 #: intervention/templates/intervention/detail/includes/controls.html:19 msgid "Run check" msgstr "Prüfung vornehmen" -#: intervention/forms/modalForms.py:219 konova/forms.py:449 +#: intervention/forms/modalForms.py:229 konova/forms.py:449 msgid "" "I, {} {}, confirm that all necessary control steps have been performed by " "myself." @@ -1315,23 +1342,23 @@ msgstr "" "Ich, {} {}, bestätige, dass die notwendigen Kontrollschritte durchgeführt " "wurden:" -#: intervention/forms/modalForms.py:277 +#: intervention/forms/modalForms.py:287 msgid "Only recorded accounts can be selected for deductions" msgstr "Nur verzeichnete Ökokonten können für Abbuchungen verwendet werden." -#: intervention/forms/modalForms.py:304 +#: intervention/forms/modalForms.py:314 msgid "Only shared interventions can be selected" msgstr "Nur freigegebene Eingriffe können gewählt werden" -#: intervention/forms/modalForms.py:317 +#: intervention/forms/modalForms.py:327 msgid "New Deduction" msgstr "Neue Abbuchung" -#: intervention/forms/modalForms.py:318 +#: intervention/forms/modalForms.py:328 msgid "Enter the information for a new deduction from a chosen eco-account" msgstr "Geben Sie die Informationen für eine neue Abbuchung ein." -#: intervention/forms/modalForms.py:351 +#: intervention/forms/modalForms.py:361 msgid "" "Eco-account {} is not recorded yet. You can only deduct from recorded " "accounts." @@ -1339,7 +1366,7 @@ msgstr "" "Ökokonto {} ist noch nicht verzeichnet. Abbuchungen können nur von " "verzeichneten Ökokonten erfolgen." -#: intervention/forms/modalForms.py:364 +#: intervention/forms/modalForms.py:374 msgid "" "The account {} has not enough surface for a deduction of {} m². There are " "only {} m² left" -- 2.38.5