From 72a196d76f06e82e739e662aa9e641626f44a194 Mon Sep 17 00:00:00 2001 From: mpeltriaux Date: Mon, 27 Sep 2021 13:57:56 +0200 Subject: [PATCH] #7 New forms * introduces bootstrap class form-control for proper html form input rendering * fixes bug where missing shared users for an entry resulted in a None exception * adds GenerateInput with template in generate-content-input.html, which provides a generate button for fetching server-side content * adds/updates translations --- compensation/forms.py | 31 +- compensation/tables.py | 3 + intervention/forms/forms.py | 34 +- intervention/forms/modalForms.py | 18 +- intervention/inputs.py | 19 +- intervention/urls.py | 3 +- intervention/views.py | 21 +- konova/forms.py | 18 +- konova/static/css/konova.css | 8 +- .../generate-content-input.html | 22 ++ locale/de/LC_MESSAGES/django.mo | Bin 20656 -> 20700 bytes locale/de/LC_MESSAGES/django.po | 293 +++++++++--------- 12 files changed, 277 insertions(+), 193 deletions(-) create mode 100644 konova/templates/konova/custom_widgets/generate-content-input.html diff --git a/compensation/forms.py b/compensation/forms.py index e755fff4..cd13480a 100644 --- a/compensation/forms.py +++ b/compensation/forms.py @@ -46,6 +46,11 @@ class NewPaymentForm(BaseModalForm): label=_con("money", "Amount"), # contextual translation label_suffix=_(""), help_text=_("in Euro"), + widget=forms.NumberInput( + attrs={ + "class": "form-control" + } + ) ) due = forms.DateField( label=_("Due on"), @@ -56,6 +61,7 @@ class NewPaymentForm(BaseModalForm): attrs={ "type": "date", "data-provide": "datepicker", + "class": "form-control", }, format="%d.%m.%Y" ) @@ -69,14 +75,11 @@ class NewPaymentForm(BaseModalForm): widget=forms.Textarea( attrs={ "rows": 5, - "class": "w-100" + "class": "form-control" } ) ) - # Define w-100 for all form fields - full_width_fields = True - def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.intervention = self.instance @@ -155,7 +158,12 @@ class NewStateModalForm(BaseModalForm): label=_("Surface"), label_suffix="", required=True, - help_text=_("in m²") + help_text=_("in m²"), + widget=forms.NumberInput( + attrs={ + "class": "form-control", + } + ) ) def __init__(self, *args, **kwargs): @@ -243,7 +251,7 @@ class NewDeadlineModalForm(BaseModalForm): choices=DeadlineType.choices, widget=forms.Select( attrs={ - "class": "custom-select" + "class": "form-control" } ) ) @@ -256,6 +264,7 @@ class NewDeadlineModalForm(BaseModalForm): attrs={ "type": "date", "data-provide": "datepicker", + "class": "form-control", }, format="%d.%m.%Y" ) @@ -270,6 +279,7 @@ class NewDeadlineModalForm(BaseModalForm): attrs={ "cols": 30, "rows": 5, + "class": "form-control", } ) ) @@ -329,7 +339,7 @@ class NewActionModalForm(BaseModalForm): choices=UnitChoices.choices, widget=forms.Select( attrs={ - "class": "custom-select" + "class": "form-control" } ) ) @@ -340,6 +350,11 @@ class NewActionModalForm(BaseModalForm): help_text=_("Insert the amount"), decimal_places=2, min_value=0.00, + widget=forms.NumberInput( + attrs={ + "class": "form-control", + } + ) ) comment = forms.CharField( required=False, @@ -350,7 +365,7 @@ class NewActionModalForm(BaseModalForm): widget=forms.Textarea( attrs={ "rows": 5, - "class": "w-100" + "class": "form-control", } ) ) diff --git a/compensation/tables.py b/compensation/tables.py index c7487dc6..1e22926b 100644 --- a/compensation/tables.py +++ b/compensation/tables.py @@ -5,6 +5,7 @@ Contact: michel.peltriaux@sgdnord.rlp.de Created on: 01.12.20 """ +from django.contrib.auth.models import User from django.http import HttpRequest from django.template.loader import render_to_string from django.urls import reverse @@ -148,6 +149,8 @@ class CompensationTable(BaseTable): """ html = "" + if value is None: + value = User.objects.none() has_access = value.filter( username=self.user.username ).exists() diff --git a/intervention/forms/forms.py b/intervention/forms/forms.py index d0c9c91c..3d6be7f6 100644 --- a/intervention/forms/forms.py +++ b/intervention/forms/forms.py @@ -9,13 +9,14 @@ from dal import autocomplete from django import forms from django.contrib.auth.models import User from django.db import transaction -from django.urls import reverse +from django.urls import reverse, reverse_lazy from django.utils import timezone from django.utils.translation import gettext_lazy as _ from codelist.models import KonovaCode from codelist.settings import CODELIST_PROCESS_TYPE_ID, CODELIST_LAW_ID, \ CODELIST_REGISTRATION_OFFICE_ID, CODELIST_CONSERVATION_OFFICE_ID +from intervention.inputs import GenerateInput from intervention.models import Intervention, LegalData, ResponsibilityData from konova.forms import BaseForm, SimpleGeomForm from user.models import UserActionLogEntry, UserAction @@ -27,6 +28,12 @@ class NewInterventionForm(BaseForm): label_suffix="", max_length=255, help_text=_("Generated automatically"), + widget=GenerateInput( + attrs={ + "class": "form-control", + "url": reverse_lazy("intervention:new-id"), + } + ) ) title = forms.CharField( label=_("Title"), @@ -35,7 +42,8 @@ class NewInterventionForm(BaseForm): max_length=255, widget=forms.TextInput( attrs={ - "placeholder": _("Construction XY; Location ABC") + "placeholder": _("Construction XY; Location ABC"), + "class": "form-control", } ) ) @@ -108,7 +116,8 @@ class NewInterventionForm(BaseForm): required=False, widget=forms.TextInput( attrs={ - "placeholder": _("ZB-123/ABC.456") + "placeholder": _("ZB-123/ABC.456"), + "class": "form-control", } ) ) @@ -119,7 +128,8 @@ class NewInterventionForm(BaseForm): required=False, widget=forms.TextInput( attrs={ - "placeholder": _("ETS-123/ABC.456") + "placeholder": _("ETS-123/ABC.456"), + "class": "form-control", } ) ) @@ -131,7 +141,8 @@ class NewInterventionForm(BaseForm): help_text=_("Who performs the intervention"), widget=forms.TextInput( attrs={ - "placeholder": _("Company Mustermann") + "placeholder": _("Company Mustermann"), + "class": "form-control", } ) ) @@ -142,6 +153,7 @@ class NewInterventionForm(BaseForm): widget=forms.DateInput( attrs={ "type": "date", + "class": "form-control", }, format="%d.%m.%Y" ) @@ -153,6 +165,7 @@ class NewInterventionForm(BaseForm): widget=forms.DateInput( attrs={ "type": "date", + "class": "form-control", }, format="%d.%m.%Y" ) @@ -165,14 +178,11 @@ class NewInterventionForm(BaseForm): widget=forms.Textarea( attrs={ "rows": 5, - "class": "w-100" + "class": "form-control" } ) ) - # Define w-100 for all form fields - full_width_fields = True - def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.form_title = _("New intervention") @@ -281,12 +291,10 @@ class EditInterventionForm(NewInterventionForm): "binding_date": bind_date, "comment": self.instance.comment, } - disabled_fields = [ - "identifier", - ] + disabled_fields = [] self.load_initial_data( form_data, - disabled_fields, + disabled_fields ) def save(self, user: User, geom_form: SimpleGeomForm): diff --git a/intervention/forms/modalForms.py b/intervention/forms/modalForms.py index 1165a806..d17e59bf 100644 --- a/intervention/forms/modalForms.py +++ b/intervention/forms/modalForms.py @@ -31,7 +31,8 @@ class ShareInterventionModalForm(BaseModalForm): required=False, widget=TextToClipboardInput( attrs={ - "readonly": True + "readonly": True, + "class": "form-control", } ) ) @@ -109,6 +110,7 @@ class NewRevocationModalForm(BaseModalForm): attrs={ "type": "date", "data-provide": "datepicker", + "class": "form-control", }, format="%d.%m.%Y" ) @@ -120,7 +122,7 @@ class NewRevocationModalForm(BaseModalForm): help_text=_("Must be smaller than 15 Mb"), widget=forms.FileInput( attrs={ - "class": "w-75" + "class": "form-control-file" } ) ) @@ -134,13 +136,11 @@ class NewRevocationModalForm(BaseModalForm): attrs={ "cols": 30, "rows": 5, + "class": "form-control", } ) ) - # Define w-100 for all form fields - full_width_fields = True - def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.form_title = _("Add revocation") @@ -274,6 +274,11 @@ class NewDeductionModalForm(BaseModalForm): label=_("Surface"), label_suffix="", help_text=_("in m²"), + widget=forms.NumberInput( + attrs={ + "class": "form-control", + } + ) ) intervention = forms.ModelChoiceField( label=_("Intervention"), @@ -289,9 +294,6 @@ class NewDeductionModalForm(BaseModalForm): ), ) - # Define w-100 for all form fields - full_width_fields = True - def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.form_title = _("New Deduction") diff --git a/intervention/inputs.py b/intervention/inputs.py index 5781709a..90d2a754 100644 --- a/intervention/inputs.py +++ b/intervention/inputs.py @@ -12,4 +12,21 @@ class DummyFilterInput(forms.HiddenInput): class TextToClipboardInput(forms.TextInput): - template_name = "konova/custom_widgets/text-to-clipboard-input.html" \ No newline at end of file + template_name = "konova/custom_widgets/text-to-clipboard-input.html" + + +class GenerateInput(forms.TextInput): + """ + + Provides a form group with a button at the end, which generates new content for the input. + The url used to fetch new content can be added using the attrs like + + widget=GenerateInput( + attrs={ + "url": reverse_lazy("app_name:view_name") + ... + } + ) + + """ + template_name = "konova/custom_widgets/generate-content-input.html" diff --git a/intervention/urls.py b/intervention/urls.py index 51d1162f..ac96d628 100644 --- a/intervention/urls.py +++ b/intervention/urls.py @@ -9,12 +9,13 @@ from django.urls import path from intervention.views import index_view, new_view, open_view, edit_view, remove_view, new_document_view, share_view, \ create_share_view, remove_revocation_view, new_revocation_view, run_check_view, log_view, new_deduction_view, \ - record_view, remove_document_view, get_document_view, get_revocation_view + record_view, remove_document_view, get_document_view, get_revocation_view, new_id_view app_name = "intervention" urlpatterns = [ path("", index_view, name="index"), path('new/', new_view, name='new'), + path('new/id', new_id_view, name='new-id'), path('', open_view, name='open'), path('/log', log_view, name='log'), path('/edit', edit_view, name='edit'), diff --git a/intervention/views.py b/intervention/views.py index 97ed5cf2..11fa06fa 100644 --- a/intervention/views.py +++ b/intervention/views.py @@ -1,6 +1,6 @@ from django.contrib.auth.decorators import login_required from django.utils.translation import gettext_lazy as _ -from django.http import HttpRequest +from django.http import HttpRequest, JsonResponse from django.shortcuts import render, get_object_or_404 from intervention.forms.forms import NewInterventionForm, EditInterventionForm @@ -83,11 +83,30 @@ def new_view(request: HttpRequest): context = { "data_form": data_form, "geom_form": geom_form, + "url": reverse("intervention:new-id") } context = BaseContext(request, context).context return render(request, template, context) +@login_required +def new_id_view(request: HttpRequest): + """ JSON endpoint + + Provides fetching of free identifiers for e.g. AJAX calls + + """ + tmp_intervention = Intervention() + identifier = tmp_intervention._generate_new_identifier() + while Intervention.objects.filter(identifier=identifier).exists(): + identifier = tmp_intervention._generate_new_identifier() + return JsonResponse( + data={ + "identifier": identifier + } + ) + + @login_required def new_document_view(request: HttpRequest, id: str): """ Renders a form for uploading new documents diff --git a/konova/forms.py b/konova/forms.py index e09b0669..eeed9744 100644 --- a/konova/forms.py +++ b/konova/forms.py @@ -43,7 +43,6 @@ class BaseForm(forms.Form): instance = None # The data holding model object form_attrs = {} # Holds additional attributes, that can be used in the template has_required_fields = False # Automatically set. Triggers hint rendering in templates - full_width_fields = False # w-100 for all input fields def __init__(self, *args, **kwargs): self.instance = kwargs.pop("instance", None) @@ -56,11 +55,6 @@ class BaseForm(forms.Form): self.has_required_fields = True break - if self.full_width_fields: - # Automatically add bootstrap w-100 class for maximum width of form fields in modals - for key, val in self.fields.items(): - self.add_widget_html_class(key, "w-100") - @abstractmethod def save(self): # To be implemented in subclasses! @@ -326,6 +320,11 @@ class NewDocumentForm(BaseModalForm): label=_("Title"), label_suffix=_(""), max_length=500, + widget=forms.TextInput( + attrs={ + "class": "form-control", + } + ) ) creation_date = forms.DateField( label=_("Created on"), @@ -335,6 +334,7 @@ class NewDocumentForm(BaseModalForm): attrs={ "type": "date", "data-provide": "datepicker", + "class": "form-control", }, format="%d.%m.%Y" ) @@ -345,7 +345,7 @@ class NewDocumentForm(BaseModalForm): help_text=_("Must be smaller than 15 Mb"), widget=forms.FileInput( attrs={ - "class": "w-75" + "class": "form-control-file", } ), ) @@ -359,6 +359,7 @@ class NewDocumentForm(BaseModalForm): attrs={ "cols": 30, "rows": 5, + "class": "form-control", } ) ) @@ -370,9 +371,6 @@ class NewDocumentForm(BaseModalForm): Ema: EmaDocument, } - # Define w-100 for all form fields - full_width_fields = True - def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.form_title = _("Add new document") diff --git a/konova/static/css/konova.css b/konova/static/css/konova.css index 3d04ce33..6de1f8f8 100644 --- a/konova/static/css/konova.css +++ b/konova/static/css/konova.css @@ -60,13 +60,7 @@ a { color: var(--rlp-red); } -input[type=text], input[type=date] { - border: 1px solid gray; - border-radius: 0.2rem; - padding: 0.3rem 0.5rem; -} - -input:focus, textarea:focus, select:focus{ +.form-control:focus{ outline: none; border-color: var(--rlp-red); box-shadow: 0 0 3px var(--rlp-red); diff --git a/konova/templates/konova/custom_widgets/generate-content-input.html b/konova/templates/konova/custom_widgets/generate-content-input.html new file mode 100644 index 00000000..66c91988 --- /dev/null +++ b/konova/templates/konova/custom_widgets/generate-content-input.html @@ -0,0 +1,22 @@ +{% load i18n fontawesome_5 %} + +
+ +
+ {% fa5_icon 'dice' %} +
+
+ \ No newline at end of file diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index d41cf9b8b898705590e393f95033bd0655d577e1..792ec772246b425b4b96568d2fa01e9fdc65d0ff 100644 GIT binary patch delta 6113 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 P=C~1=84>zF4Vrav delta 6079 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 F{{@P>b8!Fw diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index bbd163c0..fb50ced8 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -3,21 +3,22 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # -#: compensation/filters.py:71 compensation/forms.py:47 compensation/forms.py:52 -#: compensation/forms.py:67 compensation/forms.py:267 compensation/forms.py:348 +#: compensation/filters.py:71 compensation/forms.py:47 compensation/forms.py:57 +#: compensation/forms.py:73 compensation/forms.py:276 compensation/forms.py:363 #: intervention/filters.py:26 intervention/filters.py:40 #: intervention/filters.py:47 intervention/filters.py:48 -#: intervention/forms.py:51 intervention/forms.py:146 intervention/forms.py:157 -#: intervention/forms.py:465 intervention/forms.py:477 -#: intervention/forms.py:490 konova/forms.py:146 konova/forms.py:250 -#: konova/forms.py:300 konova/forms.py:327 konova/forms.py:332 -#: konova/forms.py:344 konova/forms.py:356 konova/forms.py:379 user/forms.py:38 +#: intervention/forms/forms.py:53 intervention/forms/forms.py:151 +#: intervention/forms/forms.py:163 intervention/forms/modalForms.py:107 +#: intervention/forms/modalForms.py:120 intervention/forms/modalForms.py:133 +#: konova/forms.py:140 konova/forms.py:244 konova/forms.py:294 +#: konova/forms.py:321 konova/forms.py:331 konova/forms.py:344 +#: konova/forms.py:356 konova/forms.py:377 user/forms.py:38 #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-09-27 11:08+0200\n" +"POT-Creation-Date: 2021-09-27 13:56+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -35,16 +36,16 @@ msgstr "Nur unverzeichnete anzeigen" msgid "in Euro" msgstr "in Euro" -#: compensation/forms.py:51 +#: compensation/forms.py:56 #: intervention/templates/intervention/detail/includes/payments.html:31 msgid "Due on" msgstr "Fällig am" -#: compensation/forms.py:54 +#: compensation/forms.py:59 msgid "Due on which date" msgstr "Zahlung wird an diesem Datum erwartet" -#: compensation/forms.py:66 compensation/forms.py:266 compensation/forms.py:347 +#: compensation/forms.py:72 compensation/forms.py:275 compensation/forms.py:362 #: compensation/templates/compensation/detail/compensation/includes/actions.html:34 #: compensation/templates/compensation/detail/compensation/includes/deadlines.html:34 #: compensation/templates/compensation/detail/compensation/includes/documents.html:31 @@ -54,7 +55,7 @@ msgstr "Zahlung wird an diesem Datum erwartet" #: 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.py:168 intervention/forms.py:489 +#: intervention/forms/forms.py:175 intervention/forms/modalForms.py:132 #: intervention/templates/intervention/detail/includes/documents.html:31 #: intervention/templates/intervention/detail/includes/payments.html:34 #: intervention/templates/intervention/detail/includes/revocation.html:38 @@ -62,107 +63,107 @@ msgstr "Zahlung wird an diesem Datum erwartet" msgid "Comment" msgstr "Kommentar" -#: compensation/forms.py:68 compensation/forms.py:268 compensation/forms.py:349 -#: intervention/forms.py:491 konova/forms.py:357 +#: compensation/forms.py:74 compensation/forms.py:277 compensation/forms.py:364 +#: intervention/forms/modalForms.py:134 konova/forms.py:357 msgid "Additional comment, maximum {} letters" msgstr "Zusätzlicher Kommentar, maximal {} Zeichen" -#: compensation/forms.py:83 +#: compensation/forms.py:86 msgid "Payment" msgstr "Zahlung" -#: compensation/forms.py:84 +#: compensation/forms.py:87 msgid "Add a payment for intervention '{}'" msgstr "Neue Ersatzzahlung zu Eingriff '{}' hinzufügen" -#: compensation/forms.py:105 +#: compensation/forms.py:108 msgid "If there is no date you can enter, please explain why." msgstr "Falls Sie kein Datum angeben können, erklären Sie bitte weshalb." -#: compensation/forms.py:119 +#: compensation/forms.py:122 msgid "Added payment" msgstr "Zahlung hinzufügen" -#: compensation/forms.py:136 compensation/forms.py:148 +#: compensation/forms.py:139 compensation/forms.py:151 msgid "Biotope Type" msgstr "Biotoptyp" -#: compensation/forms.py:139 +#: compensation/forms.py:142 msgid "Select the biotope type" msgstr "Biotoptyp wählen" -#: compensation/forms.py:155 +#: compensation/forms.py:158 #: compensation/templates/compensation/detail/compensation/includes/states-after.html:36 #: compensation/templates/compensation/detail/compensation/includes/states-before.html:36 #: compensation/templates/compensation/detail/eco_account/includes/states-after.html:36 #: 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.py:633 +#: intervention/forms/modalForms.py:274 msgid "Surface" msgstr "Fläche" -#: compensation/forms.py:158 intervention/forms.py:635 +#: compensation/forms.py:161 intervention/forms/modalForms.py:276 msgid "in m²" msgstr "" -#: compensation/forms.py:163 +#: compensation/forms.py:171 msgid "New state" msgstr "Neuer Zustand" -#: compensation/forms.py:164 +#: compensation/forms.py:172 msgid "Insert data for the new state" msgstr "Geben Sie die Daten des neuen Zustandes ein" -#: compensation/forms.py:172 +#: compensation/forms.py:180 msgid "Added state" msgstr "Zustand hinzugefügt" -#: compensation/forms.py:188 konova/forms.py:199 +#: compensation/forms.py:196 konova/forms.py:193 msgid "Object removed" msgstr "Objekt entfernt" -#: compensation/forms.py:239 +#: compensation/forms.py:247 msgid "Deadline Type" msgstr "Fristart" -#: compensation/forms.py:242 +#: compensation/forms.py:250 msgid "Select the deadline type" msgstr "Fristart wählen" -#: compensation/forms.py:251 +#: compensation/forms.py:259 #: 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.py:464 +#: intervention/forms/modalForms.py:106 msgid "Date" msgstr "Datum" -#: compensation/forms.py:254 +#: compensation/forms.py:262 msgid "Select date" msgstr "Datum wählen" -#: compensation/forms.py:279 +#: compensation/forms.py:289 msgid "New deadline" msgstr "Neue Frist" -#: compensation/forms.py:280 +#: compensation/forms.py:290 msgid "Insert data for the new deadline" msgstr "Geben Sie die Daten der neuen Frist ein" -#: compensation/forms.py:297 +#: compensation/forms.py:307 msgid "Added deadline" msgstr "Frist/Termin hinzugefügt" -#: compensation/forms.py:308 +#: compensation/forms.py:318 msgid "Action Type" msgstr "Maßnahmentyp" -#: compensation/forms.py:311 +#: compensation/forms.py:321 msgid "Select the action type" msgstr "Maßnahmentyp wählen" -#: compensation/forms.py:320 +#: compensation/forms.py:330 #: compensation/templates/compensation/detail/compensation/includes/actions.html:37 #: compensation/templates/compensation/detail/compensation/includes/deadlines.html:37 #: compensation/templates/compensation/detail/compensation/includes/documents.html:34 @@ -188,33 +189,33 @@ msgstr "Maßnahmentyp wählen" msgid "Action" msgstr "Aktionen" -#: compensation/forms.py:325 +#: compensation/forms.py:335 msgid "Unit" msgstr "Einheit" -#: compensation/forms.py:328 +#: compensation/forms.py:338 msgid "Select the unit" msgstr "Einheit wählen" -#: compensation/forms.py:337 +#: compensation/forms.py:347 #: compensation/templates/compensation/detail/eco_account/includes/deductions.html:34 #: intervention/templates/intervention/detail/includes/deductions.html:31 msgid "Amount" msgstr "Menge" -#: compensation/forms.py:340 +#: compensation/forms.py:350 msgid "Insert the amount" msgstr "Menge eingeben" -#: compensation/forms.py:360 +#: compensation/forms.py:375 msgid "New action" msgstr "Neue Maßnahme" -#: compensation/forms.py:361 +#: compensation/forms.py:376 msgid "Insert data for the new action" msgstr "Geben Sie die Daten der neuen Maßnahme ein" -#: compensation/forms.py:380 +#: compensation/forms.py:395 msgid "Added action" msgstr "Maßnahme hinzugefügt" @@ -257,34 +258,34 @@ msgstr "" "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:32 intervention/tables.py:23 +#: compensation/tables.py:25 compensation/tables.py:167 ema/tables.py:28 +#: intervention/forms/forms.py:27 intervention/tables.py:23 #: intervention/templates/intervention/detail/includes/compensations.html:30 msgid "Identifier" msgstr "Kennung" -#: compensation/tables.py:29 compensation/tables.py:169 +#: compensation/tables.py:30 compensation/tables.py:172 #: compensation/templates/compensation/detail/compensation/includes/documents.html:28 #: compensation/templates/compensation/detail/compensation/view.html:31 #: compensation/templates/compensation/detail/eco_account/includes/documents.html:28 #: compensation/templates/compensation/detail/eco_account/view.html:31 #: ema/tables.py:33 ema/templates/ema/detail/includes/documents.html:28 -#: ema/templates/ema/detail/view.html:24 intervention/forms.py:38 +#: ema/templates/ema/detail/view.html:24 intervention/forms/forms.py:39 #: intervention/tables.py:28 #: intervention/templates/intervention/detail/includes/compensations.html:33 #: intervention/templates/intervention/detail/includes/documents.html:28 -#: intervention/templates/intervention/detail/view.html:31 konova/forms.py:326 +#: intervention/templates/intervention/detail/view.html:31 konova/forms.py:320 msgid "Title" msgstr "Bezeichnung" -#: compensation/tables.py:34 +#: compensation/tables.py:35 #: compensation/templates/compensation/detail/compensation/view.html:43 #: intervention/tables.py:33 #: intervention/templates/intervention/detail/view.html:68 user/models.py:48 msgid "Checked" msgstr "Geprüft" -#: compensation/tables.py:40 compensation/tables.py:179 +#: compensation/tables.py:41 compensation/tables.py:182 #: compensation/templates/compensation/detail/compensation/view.html:57 #: compensation/templates/compensation/detail/eco_account/includes/deductions.html:31 #: compensation/templates/compensation/detail/eco_account/view.html:44 @@ -294,41 +295,41 @@ msgstr "Geprüft" msgid "Recorded" msgstr "Verzeichnet" -#: compensation/tables.py:46 compensation/tables.py:185 ema/tables.py:44 +#: compensation/tables.py:47 compensation/tables.py:188 ema/tables.py:44 #: intervention/tables.py:51 msgid "Editable" msgstr "Freigegeben" -#: compensation/tables.py:52 compensation/tables.py:191 ema/tables.py:50 +#: compensation/tables.py:53 compensation/tables.py:194 ema/tables.py:50 #: intervention/tables.py:57 msgid "Last edit" msgstr "Zuletzt bearbeitet" -#: compensation/tables.py:61 +#: compensation/tables.py:62 #: intervention/templates/intervention/detail/includes/compensations.html:8 msgid "Compensations" msgstr "Kompensationen" -#: compensation/tables.py:83 compensation/tables.py:222 ema/tables.py:82 +#: compensation/tables.py:84 compensation/tables.py:225 ema/tables.py:82 #: intervention/tables.py:88 msgid "Open {}" msgstr "Öffne {}" -#: compensation/tables.py:83 +#: compensation/tables.py:84 #: compensation/templates/compensation/detail/compensation/view.html:19 #: konova/templates/konova/home.html:49 templates/navbar.html:28 msgid "Compensation" msgstr "Kompensation" -#: compensation/tables.py:104 intervention/tables.py:107 +#: compensation/tables.py:105 intervention/tables.py:107 msgid "Not checked yet" msgstr "Noch nicht geprüft" -#: compensation/tables.py:109 intervention/tables.py:112 +#: compensation/tables.py:110 intervention/tables.py:112 msgid "Checked on {} by {}" msgstr "Am {} von {} geprüft worden" -#: compensation/tables.py:128 +#: compensation/tables.py:129 #: compensation/templates/compensation/detail/compensation/view.html:60 #: compensation/templates/compensation/detail/eco_account/view.html:47 #: ema/tables.py:101 ema/templates/ema/detail/view.html:31 @@ -337,39 +338,39 @@ msgstr "Am {} von {} geprüft worden" msgid "Not recorded yet" msgstr "Noch nicht verzeichnet" -#: compensation/tables.py:133 compensation/tables.py:260 ema/tables.py:106 +#: compensation/tables.py:134 compensation/tables.py:263 ema/tables.py:106 #: intervention/models.py:384 intervention/tables.py:136 msgid "Recorded on {} by {}" msgstr "Am {} von {} verzeichnet worden" -#: compensation/tables.py:156 compensation/tables.py:283 ema/tables.py:129 +#: compensation/tables.py:159 compensation/tables.py:286 ema/tables.py:129 #: intervention/tables.py:159 msgid "Full access granted" msgstr "Für Sie freigegeben - Datensatz kann bearbeitet werden" -#: compensation/tables.py:156 compensation/tables.py:283 ema/tables.py:129 +#: compensation/tables.py:159 compensation/tables.py:286 ema/tables.py:129 #: intervention/tables.py:159 msgid "Access not granted" msgstr "Nicht freigegeben - Datensatz nur lesbar" -#: compensation/tables.py:174 +#: compensation/tables.py:177 #: compensation/templates/compensation/detail/eco_account/view.html:35 #: konova/templates/konova/custom_widgets/progressbar.html:3 msgid "Available" msgstr "Verfügbar" -#: compensation/tables.py:200 +#: compensation/tables.py:203 msgid "Eco Accounts" msgstr "Ökokonten" -#: compensation/tables.py:222 +#: compensation/tables.py:225 #: compensation/templates/compensation/detail/eco_account/view.html:19 -#: intervention/forms.py:617 intervention/forms.py:624 +#: intervention/forms/modalForms.py:258 intervention/forms/modalForms.py:265 #: konova/templates/konova/home.html:88 templates/navbar.html:34 msgid "Eco-account" msgstr "Ökokonto" -#: compensation/tables.py:255 +#: compensation/tables.py:258 msgid "Not recorded yet. Can not be used for deductions, yet." msgstr "" "Noch nicht verzeichnet. Kann noch nicht für Abbuchungen genutzt werden." @@ -477,7 +478,7 @@ msgstr "Dokumente" #: compensation/templates/compensation/detail/eco_account/includes/documents.html:14 #: ema/templates/ema/detail/includes/documents.html:14 #: intervention/templates/intervention/detail/includes/documents.html:14 -#: konova/forms.py:378 +#: konova/forms.py:376 msgid "Add new document" msgstr "Neues Dokument hinzufügen" @@ -582,7 +583,7 @@ msgstr "Zuletzt bearbeitet" #: compensation/templates/compensation/detail/compensation/view.html:92 #: compensation/templates/compensation/detail/eco_account/view.html:91 -#: ema/templates/ema/detail/view.html:82 intervention/forms.py:398 +#: ema/templates/ema/detail/view.html:82 intervention/forms/modalForms.py:40 #: intervention/templates/intervention/detail/view.html:116 msgid "Shared with" msgstr "Freigegeben für" @@ -643,19 +644,19 @@ msgid "Missing" msgstr "Fehlt" #: compensation/templates/compensation/detail/eco_account/view.html:58 -#: ema/templates/ema/detail/view.html:42 intervention/forms.py:96 +#: ema/templates/ema/detail/view.html:42 intervention/forms/forms.py:98 #: intervention/templates/intervention/detail/view.html:56 msgid "Conservation office" msgstr "Eintragungsstelle" #: compensation/templates/compensation/detail/eco_account/view.html:62 -#: ema/templates/ema/detail/view.html:46 intervention/forms.py:122 +#: ema/templates/ema/detail/view.html:46 intervention/forms/forms.py:125 #: intervention/templates/intervention/detail/view.html:60 msgid "Conservation office file number" msgstr "Aktenzeichen Eintragungsstelle" #: compensation/templates/compensation/detail/eco_account/view.html:66 -#: ema/templates/ema/detail/view.html:50 intervention/forms.py:133 +#: ema/templates/ema/detail/view.html:50 intervention/forms/forms.py:137 #: intervention/templates/intervention/detail/view.html:64 msgid "Intervention handler" msgstr "Eingriffsverursacher" @@ -667,7 +668,7 @@ msgstr "" #: compensation/views/compensation_views.py:123 #: compensation/views/eco_account_views.py:190 ema/views.py:128 -#: intervention/views.py:409 +#: intervention/views.py:428 msgid "Log" msgstr "Log" @@ -677,7 +678,7 @@ msgstr "Kompensation entfernt" #: compensation/views/compensation_views.py:163 #: compensation/views/eco_account_views.py:289 ema/views.py:250 -#: intervention/views.py:105 +#: intervention/views.py:124 msgid "Document added" msgstr "Dokument hinzugefügt" @@ -713,16 +714,16 @@ msgid "Deduction removed" msgstr "Abbuchung entfernt" #: compensation/views/eco_account_views.py:210 ema/views.py:171 -#: intervention/views.py:449 +#: intervention/views.py:468 msgid "{} unrecorded" msgstr "{} entzeichnet" #: compensation/views/eco_account_views.py:210 ema/views.py:171 -#: intervention/views.py:449 +#: intervention/views.py:468 msgid "{} recorded" msgstr "{} verzeichnet" -#: compensation/views/eco_account_views.py:346 intervention/views.py:431 +#: compensation/views/eco_account_views.py:346 intervention/views.py:450 msgid "Deduction added" msgstr "Abbuchung hinzugefügt" @@ -774,133 +775,133 @@ msgstr "Gemarkung" msgid "Search for district" msgstr "Nach Gemarkung suchen" -#: intervention/forms.py:35 +#: intervention/forms/forms.py:30 msgid "Generated automatically" msgstr "Automatisch generiert" -#: intervention/forms.py:40 +#: intervention/forms/forms.py:41 msgid "An explanatory name" msgstr "Aussagekräftiger Titel" -#: intervention/forms.py:44 +#: intervention/forms/forms.py:45 msgid "Construction XY; Location ABC" msgstr "Bauvorhaben XY; Flur ABC" -#: intervention/forms.py:49 +#: intervention/forms/forms.py:51 #: intervention/templates/intervention/detail/view.html:35 msgid "Process type" msgstr "Verfahrenstyp" -#: intervention/forms.py:65 +#: intervention/forms/forms.py:67 #: intervention/templates/intervention/detail/view.html:39 msgid "Law" msgstr "Gesetz" -#: intervention/forms.py:67 +#: intervention/forms/forms.py:69 msgid "Multiple selection possible" msgstr "Mehrfachauswahl möglich" -#: intervention/forms.py:81 +#: intervention/forms/forms.py:83 #: intervention/templates/intervention/detail/view.html:48 msgid "Registration office" msgstr "Zulassungsbehörde" -#: intervention/forms.py:111 +#: intervention/forms/forms.py:113 #: intervention/templates/intervention/detail/view.html:52 msgid "Registration office file number" msgstr "Aktenzeichen Zulassungsbehörde" -#: intervention/forms.py:117 +#: intervention/forms/forms.py:119 msgid "ZB-123/ABC.456" msgstr "" -#: intervention/forms.py:128 +#: intervention/forms/forms.py:131 msgid "ETS-123/ABC.456" msgstr "" -#: intervention/forms.py:137 +#: intervention/forms/forms.py:141 msgid "Who performs the intervention" msgstr "Wer führt den Eingriff durch" -#: intervention/forms.py:140 +#: intervention/forms/forms.py:144 msgid "Company Mustermann" msgstr "Firma Mustermann" -#: intervention/forms.py:145 +#: intervention/forms/forms.py:150 #: intervention/templates/intervention/detail/view.html:96 msgid "Registration date" msgstr "Datum Zulassung bzw. Satzungsbeschluss" -#: intervention/forms.py:156 +#: intervention/forms/forms.py:162 #: intervention/templates/intervention/detail/view.html:100 msgid "Binding on" msgstr "Datum Bestandskraft" -#: intervention/forms.py:170 +#: intervention/forms/forms.py:177 msgid "Additional comment" msgstr "Zusätzlicher Kommentar" -#: intervention/forms.py:184 +#: intervention/forms/forms.py:188 msgid "New intervention" msgstr "Neuer Eingriff" -#: intervention/forms.py:265 +#: intervention/forms/forms.py:269 msgid "Edit intervention" msgstr "Eingriff bearbeiten" -#: intervention/forms.py:387 +#: intervention/forms/modalForms.py:28 msgid "Share link" msgstr "Freigabelink" -#: intervention/forms.py:389 +#: intervention/forms/modalForms.py:30 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.py:401 +#: intervention/forms/modalForms.py:43 msgid "Remove check to remove access for this user" msgstr "Wählen Sie die Nutzer ab, die keinen Zugriff mehr haben sollen" -#: intervention/forms.py:412 +#: intervention/forms/modalForms.py:54 #: intervention/templates/intervention/detail/includes/controls.html:15 msgid "Share" msgstr "Freigabe" -#: intervention/forms.py:413 +#: intervention/forms/modalForms.py:55 msgid "Share settings for {}" msgstr "Freigabe Einstellungen für {}" -#: intervention/forms.py:466 +#: intervention/forms/modalForms.py:108 msgid "Date of revocation" msgstr "Datum des Widerspruchs" -#: intervention/forms.py:476 +#: intervention/forms/modalForms.py:119 #: intervention/templates/intervention/detail/includes/revocation.html:35 msgid "Document" msgstr "Dokument" -#: intervention/forms.py:479 konova/forms.py:345 +#: intervention/forms/modalForms.py:122 konova/forms.py:345 msgid "Must be smaller than 15 Mb" msgstr "Muss kleiner als 15 Mb sein" -#: intervention/forms.py:505 +#: intervention/forms/modalForms.py:146 #: intervention/templates/intervention/detail/includes/revocation.html:18 msgid "Add revocation" msgstr "Widerspruch hinzufügen" -#: intervention/forms.py:545 +#: intervention/forms/modalForms.py:186 msgid "Checked intervention data" msgstr "Eingriffsdaten geprüft" -#: intervention/forms.py:551 +#: intervention/forms/modalForms.py:192 msgid "Checked compensations data and payments" msgstr "Kompensationen und Zahlungen geprüft" -#: intervention/forms.py:559 +#: intervention/forms/modalForms.py:200 #: intervention/templates/intervention/detail/includes/controls.html:19 msgid "Run check" msgstr "Prüfung vornehmen" -#: intervention/forms.py:560 konova/forms.py:432 +#: intervention/forms/modalForms.py:201 konova/forms.py:430 msgid "" "I, {} {}, confirm that all necessary control steps have been performed by " "myself." @@ -908,30 +909,30 @@ msgstr "" "Ich, {} {}, bestätige, dass die notwendigen Kontrollschritte durchgeführt " "wurden:" -#: intervention/forms.py:619 +#: intervention/forms/modalForms.py:260 msgid "Only recorded accounts can be selected for deductions" msgstr "Nur verzeichnete Ökokonten können für Abbuchungen verwendet werden." -#: intervention/forms.py:638 intervention/forms.py:645 +#: intervention/forms/modalForms.py:284 intervention/forms/modalForms.py:291 #: intervention/tables.py:88 #: intervention/templates/intervention/detail/view.html:19 #: konova/templates/konova/home.html:11 templates/navbar.html:22 msgid "Intervention" msgstr "Eingriff" -#: intervention/forms.py:640 +#: intervention/forms/modalForms.py:286 msgid "Only shared interventions can be selected" msgstr "Nur freigegebene Eingriffe können gewählt werden" -#: intervention/forms.py:656 +#: intervention/forms/modalForms.py:299 msgid "New Deduction" msgstr "Neue Abbuchung" -#: intervention/forms.py:657 +#: intervention/forms/modalForms.py:300 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.py:693 +#: intervention/forms/modalForms.py:336 msgid "" "Eco-account {} is not recorded yet. You can only deduct from recorded " "accounts." @@ -939,7 +940,7 @@ msgstr "" "Ökokonto {} ist noch nicht verzeichnet. Abbuchungen können nur von " "verzeichneten Ökokonten erfolgen." -#: intervention/forms.py:706 +#: intervention/forms/modalForms.py:349 msgid "" "The account {} has not enough surface for a deduction of {} m². There are " "only {} m² left" @@ -1049,22 +1050,22 @@ msgid "" "The identifier '{}' had to be changed to '{}' since another entry has been " "added in the meanwhile, which uses this identifier" msgstr "" -"Die Kennung '{}' musste zu '{}' geändert werden, da ein anderer Eintrag in der Zwischenzeit angelegt wurde, " -"welcher diese Kennung nun bereits verwendet" +"Die Kennung '{}' musste zu '{}' geändert werden, da ein anderer Eintrag in " +"der Zwischenzeit angelegt wurde, welcher diese Kennung nun bereits verwendet" #: intervention/views.py:76 msgid "Intervention {} added" msgstr "Eingriff {} hinzugefügt" -#: intervention/views.py:79 intervention/views.py:239 +#: intervention/views.py:79 intervention/views.py:258 msgid "Invalid input" msgstr "Eingabe fehlerhaft" -#: intervention/views.py:193 +#: intervention/views.py:212 msgid "This intervention has a revocation from {}" msgstr "Es existiert ein Widerspruch vom {}" -#: intervention/views.py:209 +#: intervention/views.py:228 msgid "" "Remember: This data has not been shared with you, yet. This means you can " "only read but can not edit or perform any actions like running a check or " @@ -1074,43 +1075,43 @@ msgstr "" "bedeutet, dass Sie nur lesenden Zugriff hierauf haben und weder bearbeiten, " "noch Prüfungen durchführen oder verzeichnen können." -#: intervention/views.py:236 +#: intervention/views.py:255 msgid "Intervention {} edited" msgstr "Eingriff {} bearbeitet" -#: intervention/views.py:268 +#: intervention/views.py:287 msgid "{} removed" msgstr "{} entfernt" -#: intervention/views.py:289 +#: intervention/views.py:308 msgid "Revocation removed" msgstr "Widerspruch entfernt" -#: intervention/views.py:315 +#: intervention/views.py:334 msgid "{} has already been shared with you" msgstr "{} wurde bereits für Sie freigegeben" -#: intervention/views.py:320 +#: intervention/views.py:339 msgid "{} has been shared with you" msgstr "{} ist nun für Sie freigegeben" -#: intervention/views.py:327 +#: intervention/views.py:346 msgid "Share link invalid" msgstr "Freigabelink ungültig" -#: intervention/views.py:348 +#: intervention/views.py:367 msgid "Share settings updated" msgstr "Freigabe Einstellungen aktualisiert" -#: intervention/views.py:367 +#: intervention/views.py:386 msgid "Check performed" msgstr "Prüfung durchgeführt" -#: intervention/views.py:387 +#: intervention/views.py:406 msgid "Revocation added" msgstr "Widerspruch hinzugefügt" -#: intervention/views.py:454 +#: intervention/views.py:473 msgid "There are errors on this intervention:" msgstr "Es liegen Fehler in diesem Eingriff vor:" @@ -1135,35 +1136,35 @@ msgstr "" msgid "You need to be part of another user group." msgstr "Hierfür müssen Sie einer anderen Nutzergruppe angehören!" -#: konova/forms.py:75 +#: konova/forms.py:69 msgid "Not editable" msgstr "Nicht editierbar" -#: konova/forms.py:145 konova/forms.py:299 +#: konova/forms.py:139 konova/forms.py:293 msgid "Confirm" msgstr "Bestätige" -#: konova/forms.py:157 konova/forms.py:308 +#: konova/forms.py:151 konova/forms.py:302 msgid "Remove" msgstr "Löschen" -#: konova/forms.py:159 +#: konova/forms.py:153 msgid "You are about to remove {} {}" msgstr "Sie sind dabei {} {} zu löschen" -#: konova/forms.py:249 templates/form/main_data_collapse_form.html:47 +#: konova/forms.py:243 templates/form/main_data_collapse_form.html:47 msgid "Geometry" msgstr "Geometrie" -#: konova/forms.py:309 +#: konova/forms.py:303 msgid "Are you sure?" msgstr "Sind Sie sicher?" -#: konova/forms.py:331 +#: konova/forms.py:330 msgid "Created on" msgstr "Erstellt" -#: konova/forms.py:333 +#: konova/forms.py:332 msgid "When has this file been created? Important for photos." msgstr "Wann wurde diese Datei erstellt oder das Foto aufgenommen?" @@ -1172,27 +1173,27 @@ msgstr "Wann wurde diese Datei erstellt oder das Foto aufgenommen?" msgid "File" msgstr "Datei" -#: konova/forms.py:409 +#: konova/forms.py:407 msgid "Added document" msgstr "Dokument hinzugefügt" -#: konova/forms.py:423 +#: konova/forms.py:421 msgid "Confirm record" msgstr "Verzeichnen bestätigen" -#: konova/forms.py:431 +#: konova/forms.py:429 msgid "Record data" msgstr "Daten verzeichnen" -#: konova/forms.py:438 +#: konova/forms.py:436 msgid "Confirm unrecord" msgstr "Entzeichnen bestätigen" -#: konova/forms.py:439 +#: konova/forms.py:437 msgid "Unrecord data" msgstr "Daten entzeichnen" -#: konova/forms.py:440 +#: konova/forms.py:438 msgid "I, {} {}, confirm that this data must be unrecorded." msgstr "" "Ich, {} {}, bestätige, dass diese Daten wieder entzeichnet werden müssen." @@ -1237,6 +1238,10 @@ msgstr "Kontrolle am" msgid "Other" msgstr "Sonstige" +#: konova/templates/konova/custom_widgets/generate-content-input.html:6 +msgid "Generate new" +msgstr "Neu generieren" + #: konova/templates/konova/custom_widgets/text-to-clipboard-input.html:6 msgid "Copy to clipboard" msgstr "In Zwischenablage kopieren"