diff --git a/compensation/views/compensation/compensation.py b/compensation/views/compensation/compensation.py index 95ac714d..32787f84 100644 --- a/compensation/views/compensation/compensation.py +++ b/compensation/views/compensation/compensation.py @@ -26,7 +26,7 @@ from konova.settings import DEFAULT_GROUP, ZB_GROUP, ETS_GROUP from konova.sub_settings.context_settings import TAB_TITLE_IDENTIFIER from konova.utils.message_templates import COMPENSATION_REMOVED_TEMPLATE, DATA_CHECKED_PREVIOUSLY_TEMPLATE, \ RECORDED_BLOCKS_EDIT, CHECKED_RECORDED_RESET, FORM_INVALID, PARAMS_INVALID, IDENTIFIER_REPLACED, \ - COMPENSATION_ADDED_TEMPLATE, DO_NOT_FORGET_TO_SHARE + COMPENSATION_ADDED_TEMPLATE, DO_NOT_FORGET_TO_SHARE, GEOMETRY_SIMPLIFIED from konova.utils.user_checks import in_group @@ -103,6 +103,11 @@ def new_view(request: HttpRequest, intervention_id: str = None): ) ) messages.success(request, COMPENSATION_ADDED_TEMPLATE.format(comp.identifier)) + if geom_form.geometry_simplified: + messages.info( + request, + GEOMETRY_SIMPLIFIED + ) return redirect("compensation:detail", id=comp.id) else: messages.error(request, FORM_INVALID, extra_tags="danger",) @@ -175,6 +180,11 @@ def edit_view(request: HttpRequest, id: str): if intervention_recorded or intervention_checked: messages.info(request, CHECKED_RECORDED_RESET) messages.success(request, _("Compensation {} edited").format(comp.identifier)) + if geom_form.geometry_simplified: + messages.info( + request, + GEOMETRY_SIMPLIFIED + ) return redirect("compensation:detail", id=comp.id) else: messages.error(request, FORM_INVALID, extra_tags="danger",) @@ -218,6 +228,8 @@ def detail_view(request: HttpRequest, id: str): _user = request.user is_data_shared = comp.intervention.is_shared_with(_user) + + # Order states according to surface before_states = comp.before_states.all().prefetch_related("biotope_type").order_by("-surface") after_states = comp.after_states.all().prefetch_related("biotope_type").order_by("-surface") diff --git a/compensation/views/eco_account/eco_account.py b/compensation/views/eco_account/eco_account.py index 914d10e9..71cfda51 100644 --- a/compensation/views/eco_account/eco_account.py +++ b/compensation/views/eco_account/eco_account.py @@ -22,7 +22,7 @@ from konova.forms import SimpleGeomForm from konova.settings import ETS_GROUP, DEFAULT_GROUP, ZB_GROUP from konova.sub_settings.context_settings import TAB_TITLE_IDENTIFIER from konova.utils.message_templates import CANCEL_ACC_RECORDED_OR_DEDUCTED, RECORDED_BLOCKS_EDIT, FORM_INVALID, \ - IDENTIFIER_REPLACED, DO_NOT_FORGET_TO_SHARE + IDENTIFIER_REPLACED, DO_NOT_FORGET_TO_SHARE, GEOMETRY_SIMPLIFIED from konova.utils.user_checks import in_group @@ -84,6 +84,11 @@ def new_view(request: HttpRequest): ) ) messages.success(request, _("Eco-Account {} added").format(acc.identifier)) + if geom_form.geometry_simplified: + messages.info( + request, + GEOMETRY_SIMPLIFIED + ) return redirect("compensation:acc:detail", id=acc.id) else: messages.error(request, FORM_INVALID, extra_tags="danger",) @@ -149,6 +154,11 @@ def edit_view(request: HttpRequest, id: str): # The data form takes the geom form for processing, as well as the performing user acc = data_form.save(request.user, geom_form) messages.success(request, _("Eco-Account {} edited").format(acc.identifier)) + if geom_form.geometry_simplified: + messages.info( + request, + GEOMETRY_SIMPLIFIED + ) return redirect("compensation:acc:detail", id=acc.id) else: messages.error(request, FORM_INVALID, extra_tags="danger",) diff --git a/ema/views/ema.py b/ema/views/ema.py index f2875dbe..53d525a6 100644 --- a/ema/views/ema.py +++ b/ema/views/ema.py @@ -23,7 +23,7 @@ from konova.forms.modals import RemoveModalForm from konova.settings import DEFAULT_GROUP, ZB_GROUP, ETS_GROUP from konova.sub_settings.context_settings import TAB_TITLE_IDENTIFIER from konova.utils.message_templates import RECORDED_BLOCKS_EDIT, IDENTIFIER_REPLACED, FORM_INVALID, \ - DO_NOT_FORGET_TO_SHARE + DO_NOT_FORGET_TO_SHARE, GEOMETRY_SIMPLIFIED from konova.utils.user_checks import in_group @@ -84,6 +84,12 @@ def new_view(request: HttpRequest): ) ) messages.success(request, _("EMA {} added").format(ema.identifier)) + if geom_form.geometry_simplified: + messages.info( + request, + GEOMETRY_SIMPLIFIED + ) + return redirect("ema:detail", id=ema.id) else: messages.error(request, FORM_INVALID, extra_tags="danger",) @@ -208,6 +214,11 @@ def edit_view(request: HttpRequest, id: str): # The data form takes the geom form for processing, as well as the performing user ema = data_form.save(request.user, geom_form) messages.success(request, _("EMA {} edited").format(ema.identifier)) + if geom_form.geometry_simplified: + messages.info( + request, + GEOMETRY_SIMPLIFIED + ) return redirect("ema:detail", id=ema.id) else: messages.error(request, FORM_INVALID, extra_tags="danger",) diff --git a/intervention/views/intervention.py b/intervention/views/intervention.py index f67762aa..a69ba4a0 100644 --- a/intervention/views/intervention.py +++ b/intervention/views/intervention.py @@ -22,7 +22,7 @@ from konova.forms.modals import RemoveModalForm from konova.settings import DEFAULT_GROUP, ZB_GROUP, ETS_GROUP from konova.sub_settings.context_settings import TAB_TITLE_IDENTIFIER from konova.utils.message_templates import DATA_CHECKED_PREVIOUSLY_TEMPLATE, RECORDED_BLOCKS_EDIT, \ - CHECKED_RECORDED_RESET, FORM_INVALID, IDENTIFIER_REPLACED, DO_NOT_FORGET_TO_SHARE + CHECKED_RECORDED_RESET, FORM_INVALID, IDENTIFIER_REPLACED, DO_NOT_FORGET_TO_SHARE, GEOMETRY_SIMPLIFIED from konova.utils.user_checks import in_group @@ -88,6 +88,11 @@ def new_view(request: HttpRequest): ) ) messages.success(request, _("Intervention {} added").format(intervention.identifier)) + if geom_form.geometry_simplified: + messages.info( + request, + GEOMETRY_SIMPLIFIED + ) return redirect("intervention:detail", id=intervention.id) else: messages.error(request, FORM_INVALID, extra_tags="danger",) @@ -231,6 +236,11 @@ def edit_view(request: HttpRequest, id: str): messages.success(request, _("Intervention {} edited").format(intervention.identifier)) if i_check or i_rec: messages.info(request, CHECKED_RECORDED_RESET) + if geom_form.geometry_simplified: + messages.info( + request, + GEOMETRY_SIMPLIFIED + ) return redirect("intervention:detail", id=intervention.id) else: messages.error(request, FORM_INVALID, extra_tags="danger",) diff --git a/konova/forms/geometry_form.py b/konova/forms/geometry_form.py index 09449af5..ff5b0ca1 100644 --- a/konova/forms/geometry_form.py +++ b/konova/forms/geometry_form.py @@ -15,6 +15,7 @@ from django.utils.translation import gettext_lazy as _ from konova.forms.base_form import BaseForm from konova.models import Geometry +from konova.settings import GEOM_MAX_VERTICES from konova.tasks import celery_update_parcels, celery_check_for_geometry_conflicts from konova.sub_settings.lanis_settings import DEFAULT_SRID_RLP from user.models import UserActionLogEntry @@ -25,6 +26,7 @@ class SimpleGeomForm(BaseForm): """ read_only = True + geometry_simplified = False geom = MultiPolygonField( srid=DEFAULT_SRID_RLP, label=_("Geometry"), @@ -124,6 +126,38 @@ class SimpleGeomForm(BaseForm): return is_valid + def __is_vertices_num_valid(self): + """ Checks whether the number of vertices in the geometry is not too high + + Returns: + + """ + geom = self.cleaned_data.get("geom") + g = gdal.OGRGeometry(geom, srs=DEFAULT_SRID_RLP) + num_vertices = g.num_coords + + return num_vertices <= GEOM_MAX_VERTICES + + def __simplify_geometry(self, geom, max_vert: int): + """ Simplifies a geometry + + Geometry will be simplified until a threshold of max vertices has been reached. + + Args: + geom (MultiPolygon): The geometry + max_vert (int): Threshold of maximum vertices in geometry + + Returns: + geom (MultiPolygon): The simplified geometry + """ + tolerance = 0.1 + n = geom.num_coords + while(n > max_vert): + geom = geom.simplify(tolerance) + n = geom.num_coords + tolerance += 0.1 + return geom + def save(self, action: UserActionLogEntry): """ Saves the form's geometry @@ -149,6 +183,13 @@ class SimpleGeomForm(BaseForm): geom=self.cleaned_data.get("geom", MultiPolygon(srid=DEFAULT_SRID_RLP)), created=action, ) + + is_vertices_num_valid = self.__is_vertices_num_valid() + if not is_vertices_num_valid: + geometry.geom = self.__simplify_geometry(geometry.geom, max_vert=GEOM_MAX_VERTICES) + geometry.save() + self.geometry_simplified = True + # Start parcel update and geometry conflict checking procedure in a background process celery_update_parcels.delay(geometry.id) celery_check_for_geometry_conflicts.delay(geometry.id) diff --git a/konova/settings.py b/konova/settings.py index 18a5b818..5a5da1c8 100644 --- a/konova/settings.py +++ b/konova/settings.py @@ -44,3 +44,5 @@ STRF_DATE_TIME = "%d.%m.%Y %H:%M:%S" DEFAULT_GROUP = "Default" ZB_GROUP = "Registration office" ETS_GROUP = "Conservation office" + +GEOM_MAX_VERTICES = 10000 diff --git a/konova/utils/message_templates.py b/konova/utils/message_templates.py index 6790dffb..6e8fa65e 100644 --- a/konova/utils/message_templates.py +++ b/konova/utils/message_templates.py @@ -7,6 +7,8 @@ Created on: 02.08.21 """ from django.utils.translation import gettext_lazy as _ +from konova.settings import GEOM_MAX_VERTICES + NO_DETAILS = _("no further details") UNKNOWN = _("Unknown") UNGROUPED = _("Ungrouped") @@ -79,8 +81,9 @@ DOCUMENT_EDITED = _("Document edited") EDITED_GENERAL_DATA = _("Edited general data") ADDED_DEADLINE = _("Added deadline") -# Geometry conflicts +# Geometry GEOMETRY_CONFLICT_WITH_TEMPLATE = _("Geometry conflict detected with {}") +GEOMETRY_SIMPLIFIED = _("The geometry contained more than {} vertices. It had to be simplified to match the allowed limit of {} vertices.").format(GEOM_MAX_VERTICES, GEOM_MAX_VERTICES) # INTERVENTION INTERVENTION_HAS_REVOCATIONS_TEMPLATE = _("This intervention has {} revocations") diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index 2b61c229..85da40f0 100644 Binary files a/locale/de/LC_MESSAGES/django.mo and b/locale/de/LC_MESSAGES/django.mo differ diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index daf46234..f087f717 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -6,14 +6,14 @@ #: compensation/filters/eco_account.py:21 #: compensation/forms/modals/compensation_action.py:82 #: compensation/forms/modals/deadline.py:52 -#: compensation/forms/modals/payment.py:23 -#: compensation/forms/modals/payment.py:34 -#: compensation/forms/modals/payment.py:50 -#: intervention/forms/intervention.py:56 intervention/forms/intervention.py:176 -#: intervention/forms/intervention.py:188 -#: intervention/forms/modals/revocation.py:20 -#: intervention/forms/modals/revocation.py:33 -#: intervention/forms/modals/revocation.py:46 +#: compensation/forms/modals/payment.py:24 +#: compensation/forms/modals/payment.py:35 +#: compensation/forms/modals/payment.py:52 +#: intervention/forms/intervention.py:57 intervention/forms/intervention.py:177 +#: intervention/forms/intervention.py:190 +#: intervention/forms/modals/revocation.py:21 +#: intervention/forms/modals/revocation.py:35 +#: intervention/forms/modals/revocation.py:48 #: konova/filters/mixins/file_number.py:17 #: konova/filters/mixins/file_number.py:18 #: konova/filters/mixins/geo_reference.py:25 @@ -29,21 +29,21 @@ #: konova/filters/mixins/office.py:25 konova/filters/mixins/office.py:56 #: konova/filters/mixins/office.py:57 konova/filters/mixins/record.py:23 #: konova/filters/mixins/self_created.py:24 konova/filters/mixins/share.py:23 -#: konova/forms/geometry_form.py:31 konova/forms/modals/document_form.py:25 -#: konova/forms/modals/document_form.py:35 -#: konova/forms/modals/document_form.py:48 -#: konova/forms/modals/document_form.py:60 -#: konova/forms/modals/document_form.py:78 +#: konova/forms/geometry_form.py:33 konova/forms/modals/document_form.py:26 +#: konova/forms/modals/document_form.py:36 +#: konova/forms/modals/document_form.py:50 +#: konova/forms/modals/document_form.py:62 +#: konova/forms/modals/document_form.py:80 #: konova/forms/modals/remove_form.py:23 -#: konova/forms/modals/resubmission_form.py:21 -#: konova/forms/modals/resubmission_form.py:36 konova/forms/remove_form.py:19 +#: konova/forms/modals/resubmission_form.py:22 +#: konova/forms/modals/resubmission_form.py:38 konova/forms/remove_form.py:19 #: user/forms/user.py:39 #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-17 12:42+0200\n" +"POT-Creation-Date: 2023-06-28 14:12+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -53,57 +53,58 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: analysis/forms.py:24 analysis/templates/analysis/reports/detail.html:8 +#: analysis/forms.py:25 analysis/templates/analysis/reports/detail.html:8 msgid "From" msgstr "Vom" -#: analysis/forms.py:25 +#: analysis/forms.py:27 msgid "Entries created from..." msgstr "Einträge erstellt seit..." -#: analysis/forms.py:37 +#: analysis/forms.py:39 msgid "To" msgstr "Bis" -#: analysis/forms.py:38 +#: analysis/forms.py:41 msgid "Entries created until..." msgstr "Einträge erstellt bis..." -#: analysis/forms.py:49 compensation/forms/mixins.py:21 +#: analysis/forms.py:52 compensation/forms/mixins.py:21 #: compensation/templates/compensation/detail/eco_account/view.html:59 #: compensation/templates/compensation/report/eco_account/report.html:16 #: compensation/utils/quality.py:113 ema/templates/ema/detail/view.html:49 #: ema/templates/ema/report/report.html:16 ema/utils/quality.py:26 -#: intervention/forms/intervention.py:104 +#: intervention/forms/intervention.py:105 #: intervention/templates/intervention/detail/view.html:56 #: intervention/templates/intervention/report/report.html:37 #: intervention/utils/quality.py:62 konova/filters/mixins/office.py:34 msgid "Conservation office" msgstr "Eintragungsstelle" -#: analysis/forms.py:51 compensation/forms/mixins.py:23 +#: analysis/forms.py:54 compensation/forms/mixins.py:23 msgid "Select the responsible office" msgstr "Verantwortliche Stelle" -#: analysis/forms.py:60 compensation/forms/compensation.py:94 +#: analysis/forms.py:63 compensation/forms/compensation.py:94 #: compensation/forms/mixins.py:32 compensation/forms/mixins.py:62 -#: intervention/forms/intervention.py:66 intervention/forms/intervention.py:83 -#: intervention/forms/intervention.py:99 intervention/forms/intervention.py:115 -#: intervention/forms/intervention.py:156 intervention/forms/modals/share.py:41 +#: intervention/forms/intervention.py:67 intervention/forms/intervention.py:84 +#: intervention/forms/intervention.py:100 +#: intervention/forms/intervention.py:116 +#: intervention/forms/intervention.py:157 intervention/forms/modals/share.py:41 #: intervention/forms/modals/share.py:55 user/forms/modals/team.py:48 #: user/forms/modals/team.py:112 msgid "Click for selection" msgstr "Auswählen..." -#: analysis/forms.py:67 +#: analysis/forms.py:70 msgid "Generate report" msgstr "Bericht generieren" -#: analysis/forms.py:68 +#: analysis/forms.py:71 msgid "Select a timespan and the desired conservation office" msgstr "Wählen Sie die Zeitspanne und die gewünschte Eintragungsstelle" -#: analysis/forms.py:71 konova/forms/modals/base_form.py:30 +#: analysis/forms.py:74 konova/forms/modals/base_form.py:30 msgid "Continue" msgstr "Weiter" @@ -286,7 +287,7 @@ msgid "Compensation" msgstr "Kompensation" #: analysis/templates/analysis/reports/includes/intervention/compensated_by.html:21 -#: compensation/forms/modals/payment.py:63 +#: compensation/forms/modals/payment.py:65 msgid "Payment" msgstr "Zahlung" @@ -309,7 +310,7 @@ msgstr "" " " #: analysis/templates/analysis/reports/includes/intervention/laws.html:14 -#: intervention/forms/intervention.py:71 +#: intervention/forms/intervention.py:72 #: intervention/templates/intervention/detail/view.html:39 #: intervention/templates/intervention/report/report.html:20 msgid "Law" @@ -358,12 +359,12 @@ msgstr "Nur unverzeichnete anzeigen" #: compensation/forms/compensation.py:30 compensation/tables/compensation.py:23 #: compensation/tables/eco_account.py:24 ema/tables.py:26 -#: intervention/forms/intervention.py:29 intervention/tables.py:23 +#: intervention/forms/intervention.py:30 intervention/tables.py:23 #: intervention/templates/intervention/detail/includes/compensations.html:30 msgid "Identifier" msgstr "Kennung" -#: compensation/forms/compensation.py:33 intervention/forms/intervention.py:32 +#: compensation/forms/compensation.py:33 intervention/forms/intervention.py:33 #: user/forms/user.py:77 msgid "Generated automatically - not editable" msgstr "Automatisch generiert - nicht bearbeitbar" @@ -379,16 +380,16 @@ msgstr "Automatisch generiert - nicht bearbeitbar" #: ema/tables.py:31 ema/templates/ema/detail/includes/documents.html:28 #: ema/templates/ema/detail/view.html:31 #: ema/templates/ema/report/report.html:12 -#: intervention/forms/intervention.py:42 intervention/tables.py:28 +#: intervention/forms/intervention.py:43 intervention/tables.py:28 #: intervention/templates/intervention/detail/includes/compensations.html:33 #: intervention/templates/intervention/detail/includes/documents.html:33 #: intervention/templates/intervention/detail/view.html:31 #: intervention/templates/intervention/report/report.html:12 -#: konova/forms/modals/document_form.py:24 +#: konova/forms/modals/document_form.py:25 msgid "Title" msgstr "Bezeichnung" -#: compensation/forms/compensation.py:45 intervention/forms/intervention.py:44 +#: compensation/forms/compensation.py:45 intervention/forms/intervention.py:45 msgid "An explanatory name" msgstr "Aussagekräftiger Titel" @@ -399,7 +400,7 @@ msgstr "Kompensation XY; Flur ABC" #: compensation/forms/compensation.py:56 #: compensation/forms/modals/compensation_action.py:81 #: compensation/forms/modals/deadline.py:51 -#: compensation/forms/modals/payment.py:49 +#: compensation/forms/modals/payment.py:51 #: compensation/templates/compensation/detail/compensation/includes/actions.html:35 #: compensation/templates/compensation/detail/compensation/includes/deadlines.html:39 #: compensation/templates/compensation/detail/compensation/includes/documents.html:34 @@ -409,21 +410,21 @@ msgstr "Kompensation XY; Flur ABC" #: ema/templates/ema/detail/includes/actions.html:34 #: ema/templates/ema/detail/includes/deadlines.html:39 #: ema/templates/ema/detail/includes/documents.html:34 -#: intervention/forms/intervention.py:200 -#: intervention/forms/modals/revocation.py:45 +#: intervention/forms/intervention.py:203 +#: intervention/forms/modals/revocation.py:47 #: intervention/templates/intervention/detail/includes/documents.html:39 #: intervention/templates/intervention/detail/includes/payments.html:34 #: intervention/templates/intervention/detail/includes/revocation.html:38 -#: konova/forms/modals/document_form.py:59 -#: konova/forms/modals/resubmission_form.py:35 +#: konova/forms/modals/document_form.py:61 +#: konova/forms/modals/resubmission_form.py:37 #: konova/templates/konova/includes/comment_card.html:16 msgid "Comment" msgstr "Kommentar" #: compensation/forms/compensation.py:58 #: compensation/forms/modals/compensation_action.py:83 -#: intervention/forms/intervention.py:202 -#: konova/forms/modals/resubmission_form.py:37 +#: intervention/forms/intervention.py:205 +#: konova/forms/modals/resubmission_form.py:39 msgid "Additional comment" msgstr "Zusätzlicher Kommentar" @@ -438,7 +439,7 @@ msgid "Select the intervention for which this compensation compensates" msgstr "Wählen Sie den Eingriff, für den diese Kompensation bestimmt ist" #: compensation/forms/compensation.py:114 -#: compensation/views/compensation/compensation.py:115 +#: compensation/views/compensation/compensation.py:120 msgid "New compensation" msgstr "Neue Kompensation" @@ -446,38 +447,38 @@ msgstr "Neue Kompensation" msgid "Edit compensation" msgstr "Bearbeite Kompensation" -#: compensation/forms/eco_account.py:30 compensation/utils/quality.py:97 +#: compensation/forms/eco_account.py:31 compensation/utils/quality.py:97 msgid "Available Surface" msgstr "Verfügbare Fläche" -#: compensation/forms/eco_account.py:33 +#: compensation/forms/eco_account.py:34 msgid "The amount that can be used for deductions" msgstr "Die für Abbuchungen zur Verfügung stehende Menge" -#: compensation/forms/eco_account.py:42 +#: compensation/forms/eco_account.py:43 #: compensation/templates/compensation/detail/eco_account/view.html:67 #: compensation/utils/quality.py:84 msgid "Agreement date" msgstr "Vereinbarungsdatum" -#: compensation/forms/eco_account.py:44 +#: compensation/forms/eco_account.py:45 msgid "When did the parties agree on this?" msgstr "Wann wurde dieses Ökokonto offiziell vereinbart?" -#: compensation/forms/eco_account.py:70 -#: compensation/views/eco_account/eco_account.py:96 +#: compensation/forms/eco_account.py:72 +#: compensation/views/eco_account/eco_account.py:101 msgid "New Eco-Account" msgstr "Neues Ökokonto" -#: compensation/forms/eco_account.py:79 +#: compensation/forms/eco_account.py:81 msgid "Eco-Account XY; Location ABC" msgstr "Ökokonto XY; Flur ABC" -#: compensation/forms/eco_account.py:145 +#: compensation/forms/eco_account.py:147 msgid "Edit Eco-Account" msgstr "Ökokonto bearbeiten" -#: compensation/forms/eco_account.py:230 +#: compensation/forms/eco_account.py:232 msgid "The account can not be removed, since there are still deductions." msgstr "" "Das Ökokonto kann nicht entfernt werden, da hierzu noch Abbuchungen " @@ -488,14 +489,14 @@ msgstr "" #: compensation/templates/compensation/report/eco_account/report.html:20 #: compensation/utils/quality.py:115 ema/templates/ema/detail/view.html:53 #: ema/templates/ema/report/report.html:20 ema/utils/quality.py:28 -#: intervention/forms/intervention.py:132 +#: intervention/forms/intervention.py:133 #: intervention/templates/intervention/detail/view.html:60 #: intervention/templates/intervention/report/report.html:41 #: intervention/utils/quality.py:55 msgid "Conservation office file number" msgstr "Aktenzeichen Eintragungsstelle" -#: compensation/forms/mixins.py:43 intervention/forms/intervention.py:138 +#: compensation/forms/mixins.py:43 intervention/forms/intervention.py:139 msgid "ETS-123/ABC.456" msgstr "" @@ -511,11 +512,11 @@ msgstr "Zu welcher Kategorie dieser Maßnahmenträger gehört" msgid "Eco-Account handler detail" msgstr "Detailangabe zum Maßnahmenträger" -#: compensation/forms/mixins.py:71 intervention/forms/intervention.py:165 +#: compensation/forms/mixins.py:71 intervention/forms/intervention.py:166 msgid "Detail input on the handler" msgstr "Name der Behörde, Stadt, Firma, ..." -#: compensation/forms/mixins.py:74 intervention/forms/intervention.py:168 +#: compensation/forms/mixins.py:74 intervention/forms/intervention.py:169 msgid "Company Mustermann" msgstr "Firma Mustermann" @@ -604,31 +605,31 @@ msgstr "Geben Sie die Daten der neuen Maßnahme ein" msgid "Edit action" msgstr "Maßnahme bearbeiten" -#: compensation/forms/modals/deadline.py:23 +#: compensation/forms/modals/deadline.py:22 msgid "Deadline Type" msgstr "Fristart" -#: compensation/forms/modals/deadline.py:26 +#: compensation/forms/modals/deadline.py:25 msgid "Select the deadline type" msgstr "Fristart wählen" -#: compensation/forms/modals/deadline.py:35 +#: compensation/forms/modals/deadline.py:34 #: compensation/templates/compensation/detail/compensation/includes/deadlines.html:36 #: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:36 #: ema/templates/ema/detail/includes/deadlines.html:36 -#: intervention/forms/modals/revocation.py:19 -#: konova/forms/modals/resubmission_form.py:22 +#: intervention/forms/modals/revocation.py:20 +#: konova/forms/modals/resubmission_form.py:23 msgid "Date" msgstr "Datum" -#: compensation/forms/modals/deadline.py:38 +#: compensation/forms/modals/deadline.py:37 msgid "Select date" msgstr "Datum wählen" #: compensation/forms/modals/deadline.py:53 -#: compensation/forms/modals/payment.py:51 -#: intervention/forms/modals/revocation.py:47 -#: konova/forms/modals/document_form.py:61 +#: compensation/forms/modals/payment.py:53 +#: intervention/forms/modals/revocation.py:49 +#: konova/forms/modals/document_form.py:63 msgid "Additional comment, maximum {} letters" msgstr "Zusätzlicher Kommentar, maximal {} Zeichen" @@ -640,39 +641,35 @@ msgstr "Neue Frist" msgid "Insert data for the new deadline" msgstr "Geben Sie die Daten der neuen Frist ein" -#: compensation/forms/modals/deadline.py:77 -msgid "This date is unrealistic. Please enter the correct date (>1950)." -msgstr "Dieses Datum ist unrealistisch. Geben Sie bitte das korrekte Datum ein (>1950)." - -#: compensation/forms/modals/deadline.py:95 +#: compensation/forms/modals/deadline.py:79 #: compensation/templates/compensation/detail/compensation/includes/deadlines.html:64 #: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:62 #: ema/templates/ema/detail/includes/deadlines.html:62 msgid "Edit deadline" msgstr "Frist/Termin bearbeiten" -#: compensation/forms/modals/payment.py:24 +#: compensation/forms/modals/payment.py:25 msgid "in Euro" msgstr "in Euro" -#: compensation/forms/modals/payment.py:33 +#: compensation/forms/modals/payment.py:34 #: intervention/templates/intervention/detail/includes/payments.html:31 msgid "Due on" msgstr "Fällig am" -#: compensation/forms/modals/payment.py:36 +#: compensation/forms/modals/payment.py:38 msgid "Due on which date" msgstr "Zahlung wird an diesem Datum erwartet" -#: compensation/forms/modals/payment.py:64 +#: compensation/forms/modals/payment.py:66 msgid "Add a payment for intervention '{}'" msgstr "Neue Ersatzzahlung zu Eingriff '{}' hinzufügen" -#: compensation/forms/modals/payment.py:84 +#: compensation/forms/modals/payment.py:86 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/modals/payment.py:103 +#: compensation/forms/modals/payment.py:105 #: intervention/templates/intervention/detail/includes/payments.html:59 msgid "Edit payment" msgstr "Zahlung bearbeiten" @@ -924,7 +921,7 @@ msgstr "Öffentlicher Bericht" #: compensation/templates/compensation/detail/eco_account/includes/controls.html:15 #: ema/templates/ema/detail/includes/controls.html:15 #: intervention/templates/intervention/detail/includes/controls.html:15 -#: konova/forms/modals/resubmission_form.py:49 +#: konova/forms/modals/resubmission_form.py:51 #: templates/email/resubmission/resubmission.html:4 msgid "Resubmission" msgstr "Wiedervorlage" @@ -987,7 +984,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/modals/document_form.py:77 +#: konova/forms/modals/document_form.py:79 msgid "Add new document" msgstr "Neues Dokument hinzufügen" @@ -995,7 +992,7 @@ msgstr "Neues Dokument hinzufügen" #: compensation/templates/compensation/detail/eco_account/includes/documents.html:31 #: ema/templates/ema/detail/includes/documents.html:31 #: intervention/templates/intervention/detail/includes/documents.html:36 -#: konova/forms/modals/document_form.py:34 +#: konova/forms/modals/document_form.py:35 msgid "Created on" msgstr "Erstellt" @@ -1003,7 +1000,7 @@ msgstr "Erstellt" #: compensation/templates/compensation/detail/eco_account/includes/documents.html:61 #: ema/templates/ema/detail/includes/documents.html:61 #: intervention/templates/intervention/detail/includes/documents.html:70 -#: konova/forms/modals/document_form.py:139 +#: konova/forms/modals/document_form.py:141 msgid "Edit document" msgstr "Dokument bearbeiten" @@ -1281,14 +1278,14 @@ msgstr "Daten zu den verantwortlichen Stellen" msgid "Compensations - Overview" msgstr "Kompensationen - Übersicht" -#: compensation/views/compensation/compensation.py:177 -#: konova/utils/message_templates.py:38 +#: compensation/views/compensation/compensation.py:182 +#: konova/utils/message_templates.py:40 msgid "Compensation {} edited" msgstr "Kompensation {} bearbeitet" -#: compensation/views/compensation/compensation.py:187 -#: compensation/views/eco_account/eco_account.py:161 ema/views/ema.py:220 -#: intervention/views/intervention.py:243 +#: compensation/views/compensation/compensation.py:197 +#: compensation/views/eco_account/eco_account.py:171 ema/views/ema.py:231 +#: intervention/views/intervention.py:253 msgid "Edit {}" msgstr "Bearbeite {}" @@ -1306,15 +1303,15 @@ msgstr "Ökokonten - Übersicht" msgid "Eco-Account {} added" msgstr "Ökokonto {} hinzugefügt" -#: compensation/views/eco_account/eco_account.py:151 +#: compensation/views/eco_account/eco_account.py:156 msgid "Eco-Account {} edited" msgstr "Ökokonto {} bearbeitet" -#: compensation/views/eco_account/eco_account.py:275 +#: compensation/views/eco_account/eco_account.py:285 msgid "Eco-account removed" msgstr "Ökokonto entfernt" -#: ema/forms.py:42 ema/views/ema.py:96 +#: ema/forms.py:42 ema/views/ema.py:102 msgid "New EMA" msgstr "Neue EMA hinzufügen" @@ -1350,78 +1347,78 @@ msgstr "EMAs - Übersicht" msgid "EMA {} added" msgstr "EMA {} hinzugefügt" -#: ema/views/ema.py:210 +#: ema/views/ema.py:216 msgid "EMA {} edited" msgstr "EMA {} bearbeitet" -#: ema/views/ema.py:244 +#: ema/views/ema.py:255 msgid "EMA removed" msgstr "EMA entfernt" -#: intervention/forms/intervention.py:48 +#: intervention/forms/intervention.py:49 msgid "Construction XY; Location ABC" msgstr "Bauvorhaben XY; Flur ABC" -#: intervention/forms/intervention.py:54 +#: intervention/forms/intervention.py:55 #: intervention/templates/intervention/detail/view.html:35 #: intervention/templates/intervention/report/report.html:16 #: intervention/utils/quality.py:95 msgid "Process type" msgstr "Verfahrenstyp" -#: intervention/forms/intervention.py:73 +#: intervention/forms/intervention.py:74 msgid "Multiple selection possible" msgstr "Mehrfachauswahl möglich" -#: intervention/forms/intervention.py:88 +#: intervention/forms/intervention.py:89 #: intervention/templates/intervention/detail/view.html:48 #: intervention/templates/intervention/report/report.html:29 #: intervention/utils/quality.py:59 konova/filters/mixins/office.py:66 msgid "Registration office" msgstr "Zulassungsbehörde" -#: intervention/forms/intervention.py:120 +#: intervention/forms/intervention.py:121 #: intervention/templates/intervention/detail/view.html:52 #: intervention/templates/intervention/report/report.html:33 #: intervention/utils/quality.py:52 msgid "Registration office file number" msgstr "Aktenzeichen Zulassungsbehörde" -#: intervention/forms/intervention.py:126 +#: intervention/forms/intervention.py:127 msgid "ZB-123/ABC.456" msgstr "" -#: intervention/forms/intervention.py:144 +#: intervention/forms/intervention.py:145 msgid "Intervention handler type" msgstr "Art des Eingriffsverursachers" -#: intervention/forms/intervention.py:146 +#: intervention/forms/intervention.py:147 msgid "What type of handler is responsible for the intervention?" msgstr "Zu welcher Kategorie dieser Eingriffsverursacher gehört" -#: intervention/forms/intervention.py:161 +#: intervention/forms/intervention.py:162 msgid "Intervention handler detail" msgstr "Detailangabe zum Eingriffsverursacher" -#: intervention/forms/intervention.py:175 +#: intervention/forms/intervention.py:176 #: intervention/templates/intervention/detail/view.html:101 #: intervention/templates/intervention/report/report.html:81 #: intervention/utils/quality.py:86 msgid "Registration date" msgstr "Datum Zulassung bzw. Satzungsbeschluss" -#: intervention/forms/intervention.py:187 +#: intervention/forms/intervention.py:189 #: intervention/templates/intervention/detail/view.html:105 #: intervention/templates/intervention/report/report.html:85 msgid "Binding on" msgstr "Datum Bestandskraft bzw. Rechtskraft" -#: intervention/forms/intervention.py:213 -#: intervention/views/intervention.py:100 +#: intervention/forms/intervention.py:216 +#: intervention/views/intervention.py:105 msgid "New intervention" msgstr "Neuer Eingriff" -#: intervention/forms/intervention.py:303 +#: intervention/forms/intervention.py:306 msgid "Edit intervention" msgstr "Eingriff bearbeiten" @@ -1486,25 +1483,25 @@ msgstr "" "Das Ökokonto {} hat für eine Abbuchung von {} m² nicht ausreichend " "Restfläche. Es stehen noch {} m² zur Verfügung." -#: intervention/forms/modals/revocation.py:21 +#: intervention/forms/modals/revocation.py:22 msgid "Date of revocation" msgstr "Datum des Widerspruchs" -#: intervention/forms/modals/revocation.py:32 +#: intervention/forms/modals/revocation.py:34 #: intervention/templates/intervention/detail/includes/revocation.html:35 msgid "Document" msgstr "Dokument" -#: intervention/forms/modals/revocation.py:35 +#: intervention/forms/modals/revocation.py:37 msgid "Must be smaller than 15 Mb" msgstr "Muss kleiner als 15 Mb sein" -#: intervention/forms/modals/revocation.py:60 +#: intervention/forms/modals/revocation.py:62 #: intervention/templates/intervention/detail/includes/revocation.html:18 msgid "Add revocation" msgstr "Widerspruch hinzufügen" -#: intervention/forms/modals/revocation.py:78 +#: intervention/forms/modals/revocation.py:80 #: intervention/templates/intervention/detail/includes/revocation.html:69 msgid "Edit revocation" msgstr "Widerspruch bearbeiten" @@ -1657,11 +1654,11 @@ msgstr "Eingriffe - Übersicht" msgid "Intervention {} added" msgstr "Eingriff {} hinzugefügt" -#: intervention/views/intervention.py:231 +#: intervention/views/intervention.py:236 msgid "Intervention {} edited" msgstr "Eingriff {} bearbeitet" -#: intervention/views/intervention.py:268 +#: intervention/views/intervention.py:278 msgid "{} removed" msgstr "{} entfernt" @@ -1779,30 +1776,30 @@ msgstr "Speichern" msgid "Not editable" msgstr "Nicht editierbar" -#: konova/forms/geometry_form.py:30 konova/utils/quality.py:44 +#: konova/forms/geometry_form.py:32 konova/utils/quality.py:44 #: konova/utils/quality.py:46 templates/form/collapsable/form.html:45 msgid "Geometry" msgstr "Geometrie" -#: konova/forms/geometry_form.py:99 +#: konova/forms/geometry_form.py:101 msgid "Only surfaces allowed. Points or lines must be buffered." msgstr "" "Nur Flächen erlaubt. Punkte oder Linien müssen zu Flächen gepuffert werden." -#: konova/forms/modals/document_form.py:36 +#: konova/forms/modals/document_form.py:37 msgid "When has this file been created? Important for photos." msgstr "Wann wurde diese Datei erstellt oder das Foto aufgenommen?" -#: konova/forms/modals/document_form.py:47 +#: konova/forms/modals/document_form.py:49 #: venv/lib/python3.7/site-packages/django/db/models/fields/files.py:231 msgid "File" msgstr "Datei" -#: konova/forms/modals/document_form.py:49 +#: konova/forms/modals/document_form.py:51 msgid "Allowed formats: pdf, jpg, png. Max size 15 MB." msgstr "Formate: pdf, jpg, png. Maximal 15 MB." -#: konova/forms/modals/document_form.py:114 +#: konova/forms/modals/document_form.py:116 msgid "Added document" msgstr "Dokument hinzugefügt" @@ -1839,15 +1836,15 @@ msgstr "Löschen" msgid "Are you sure?" msgstr "Sind Sie sicher?" -#: konova/forms/modals/resubmission_form.py:23 +#: konova/forms/modals/resubmission_form.py:24 msgid "When do you want to be reminded?" msgstr "Wann wollen Sie erinnert werden?" -#: konova/forms/modals/resubmission_form.py:50 +#: konova/forms/modals/resubmission_form.py:52 msgid "Set your resubmission for this entry." msgstr "Setzen Sie eine Wiedervorlage für diesen Eintrag." -#: konova/forms/modals/resubmission_form.py:71 +#: konova/forms/modals/resubmission_form.py:73 msgid "The date should be in the future" msgstr "Das Datum sollte in der Zukunft liegen" @@ -2021,32 +2018,32 @@ msgstr "Anfrage für neuen API Token" msgid "Resubmission - {}" msgstr "Wiedervorlage - {}" -#: konova/utils/message_templates.py:10 +#: konova/utils/message_templates.py:12 msgid "no further details" msgstr "keine weitere Angabe" -#: konova/utils/message_templates.py:11 +#: konova/utils/message_templates.py:13 #: venv/lib/python3.7/site-packages/django/forms/widgets.py:709 msgid "Unknown" msgstr "Unbekannt" -#: konova/utils/message_templates.py:12 +#: konova/utils/message_templates.py:14 msgid "Ungrouped" msgstr "Ohne Zuordnung" -#: konova/utils/message_templates.py:13 +#: konova/utils/message_templates.py:15 msgid "There was an error on this form." msgstr "Es gab einen Fehler im Formular." -#: konova/utils/message_templates.py:14 +#: konova/utils/message_templates.py:16 msgid "Invalid parameters" msgstr "Parameter ungültig" -#: konova/utils/message_templates.py:15 +#: konova/utils/message_templates.py:17 msgid "There are errors in this intervention." msgstr "Es liegen Fehler in diesem Eingriff vor:" -#: konova/utils/message_templates.py:16 +#: konova/utils/message_templates.py:18 msgid "" "The identifier '{}' had to be changed to '{}' since another entry has been " "added in the meanwhile, which uses this identifier" @@ -2054,33 +2051,33 @@ msgstr "" "Die Kennung '{}' musste zu '{}' geändert werden, da ein anderer Eintrag in " "der Zwischenzeit angelegt wurde, welcher diese Kennung nun bereits verwendet" -#: konova/utils/message_templates.py:17 +#: konova/utils/message_templates.py:19 msgid "" "Only conservation or registration office users are allowed to remove entries." msgstr "" "Nur Mitarbeiter der Naturschutz- oder Zulassungsbehördengruppe dürfen " "Einträge entfernen" -#: konova/utils/message_templates.py:18 +#: konova/utils/message_templates.py:20 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 +#: konova/utils/message_templates.py:21 msgid "Status of Checked and Recorded reseted" msgstr "'Geprüft'/'Verzeichnet' wurde zurückgesetzt" -#: konova/utils/message_templates.py:20 +#: konova/utils/message_templates.py:22 msgid "" "Entry is recorded. To edit data, the entry first needs to be unrecorded." msgstr "" "Eintrag ist verzeichnet. Um Daten zu bearbeiten, muss der Eintrag erst " "entzeichnet werden." -#: konova/utils/message_templates.py:23 +#: konova/utils/message_templates.py:25 msgid "This data is not shared with you" msgstr "Diese Daten sind für Sie nicht freigegeben" -#: konova/utils/message_templates.py:24 +#: konova/utils/message_templates.py:26 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 " @@ -2090,11 +2087,11 @@ msgstr "" "bedeutet, dass Sie nur lesenden Zugriff hierauf haben und weder bearbeiten, " "noch Prüfungen durchführen oder verzeichnen können." -#: konova/utils/message_templates.py:25 +#: konova/utils/message_templates.py:27 msgid "Share settings updated" msgstr "Freigabe Einstellungen aktualisiert" -#: konova/utils/message_templates.py:26 +#: konova/utils/message_templates.py:28 msgid "" "Do not forget to share your entry! Currently you are the only one having " "shared access." @@ -2102,15 +2099,15 @@ msgstr "" "Denken Sie daran Ihren Eintrag freizugeben! Aktuell haben nur Sie eine " "Freigabe hierauf." -#: konova/utils/message_templates.py:29 +#: konova/utils/message_templates.py:31 msgid "Unsupported file type" msgstr "Dateiformat nicht unterstützt" -#: konova/utils/message_templates.py:30 +#: konova/utils/message_templates.py:32 msgid "File too large" msgstr "Datei zu groß" -#: konova/utils/message_templates.py:33 +#: konova/utils/message_templates.py:35 msgid "" "Action canceled. Eco account is recorded or deductions exist. Only " "conservation office member can perform this action." @@ -2118,136 +2115,144 @@ msgstr "" "Aktion abgebrochen. Ökokonto ist bereits verzeichnet oder Abbuchungen liegen " "vor. Nur Eintragungsstellennutzer können diese Aktion jetzt durchführen." -#: konova/utils/message_templates.py:36 +#: konova/utils/message_templates.py:38 msgid "Compensation {} added" msgstr "Kompensation {} hinzugefügt" -#: konova/utils/message_templates.py:37 +#: konova/utils/message_templates.py:39 msgid "Compensation {} removed" msgstr "Kompensation {} entfernt" -#: konova/utils/message_templates.py:39 +#: konova/utils/message_templates.py:41 msgid "Added compensation action" msgstr "Maßnahme hinzugefügt" -#: konova/utils/message_templates.py:40 +#: konova/utils/message_templates.py:42 msgid "Added compensation state" msgstr "Zustand hinzugefügt" -#: konova/utils/message_templates.py:43 +#: konova/utils/message_templates.py:45 msgid "State removed" msgstr "Zustand gelöscht" -#: konova/utils/message_templates.py:44 +#: konova/utils/message_templates.py:46 msgid "State edited" msgstr "Zustand bearbeitet" -#: konova/utils/message_templates.py:45 +#: konova/utils/message_templates.py:47 msgid "State added" msgstr "Zustand hinzugefügt" -#: konova/utils/message_templates.py:48 +#: konova/utils/message_templates.py:50 msgid "Action added" msgstr "Maßnahme hinzugefügt" -#: konova/utils/message_templates.py:49 +#: konova/utils/message_templates.py:51 msgid "Action edited" msgstr "Maßnahme bearbeitet" -#: konova/utils/message_templates.py:50 +#: konova/utils/message_templates.py:52 msgid "Action removed" msgstr "Maßnahme entfernt" -#: konova/utils/message_templates.py:53 +#: konova/utils/message_templates.py:55 msgid "Deduction added" msgstr "Abbuchung hinzugefügt" -#: konova/utils/message_templates.py:54 +#: konova/utils/message_templates.py:56 msgid "Deduction edited" msgstr "Abbuchung bearbeitet" -#: konova/utils/message_templates.py:55 +#: konova/utils/message_templates.py:57 msgid "Deduction removed" msgstr "Abbuchung entfernt" -#: konova/utils/message_templates.py:56 +#: konova/utils/message_templates.py:58 msgid "Unknown deduction" msgstr "Unbekannte Abbuchung" -#: konova/utils/message_templates.py:59 +#: konova/utils/message_templates.py:61 msgid "Deadline added" msgstr "Frist/Termin hinzugefügt" -#: konova/utils/message_templates.py:60 +#: konova/utils/message_templates.py:62 msgid "Deadline edited" msgstr "Frist/Termin bearbeitet" -#: konova/utils/message_templates.py:61 +#: konova/utils/message_templates.py:63 msgid "Deadline removed" msgstr "Frist/Termin gelöscht" -#: konova/utils/message_templates.py:64 +#: konova/utils/message_templates.py:66 msgid "Payment added" msgstr "Zahlung hinzugefügt" -#: konova/utils/message_templates.py:65 +#: konova/utils/message_templates.py:67 msgid "Payment edited" msgstr "Zahlung bearbeitet" -#: konova/utils/message_templates.py:66 +#: konova/utils/message_templates.py:68 msgid "Payment removed" msgstr "Zahlung gelöscht" -#: konova/utils/message_templates.py:69 +#: konova/utils/message_templates.py:71 msgid "Revocation added" msgstr "Widerspruch hinzugefügt" -#: konova/utils/message_templates.py:70 +#: konova/utils/message_templates.py:72 msgid "Revocation edited" msgstr "Widerspruch bearbeitet" -#: konova/utils/message_templates.py:71 +#: konova/utils/message_templates.py:73 msgid "Revocation removed" msgstr "Widerspruch entfernt" -#: konova/utils/message_templates.py:74 +#: konova/utils/message_templates.py:76 msgid "Document '{}' deleted" msgstr "Dokument '{}' gelöscht" -#: konova/utils/message_templates.py:75 +#: konova/utils/message_templates.py:77 msgid "Document added" msgstr "Dokument hinzugefügt" -#: konova/utils/message_templates.py:76 +#: konova/utils/message_templates.py:78 msgid "Document edited" msgstr "Dokument bearbeitet" -#: konova/utils/message_templates.py:79 +#: konova/utils/message_templates.py:81 msgid "Edited general data" msgstr "Allgemeine Daten bearbeitet" -#: konova/utils/message_templates.py:80 +#: konova/utils/message_templates.py:82 msgid "Added deadline" msgstr "Frist/Termin hinzugefügt" -#: konova/utils/message_templates.py:83 +#: konova/utils/message_templates.py:85 msgid "Geometry conflict detected with {}" msgstr "Geometriekonflikt mit folgenden Einträgen erkannt: {}" #: konova/utils/message_templates.py:86 +msgid "" +"The geometry contained more than {} vertices. It had to be simplified to " +"match the allowed limit of {} vertices." +msgstr "" +"Die Geometrie enthielt mehr als {} Eckpunkte. Sie musste vereinfacht werden um die Obergrenze von {} " +"erlaubten Eckpunkten einzuhalten." + +#: konova/utils/message_templates.py:89 msgid "This intervention has {} revocations" msgstr "Dem Eingriff liegen {} Widersprüche vor" -#: konova/utils/message_templates.py:89 +#: konova/utils/message_templates.py:92 msgid "Checked on {} by {}" msgstr "Am {} von {} geprüft worden" -#: konova/utils/message_templates.py:90 +#: konova/utils/message_templates.py:93 msgid "Data has changed since last check on {} by {}" msgstr "" "Daten wurden nach der letzten Prüfung geändert. Letzte Prüfung am {} durch {}" -#: konova/utils/message_templates.py:91 +#: konova/utils/message_templates.py:94 msgid "Current data not checked yet" msgstr "Momentane Daten noch nicht geprüft" @@ -2275,6 +2280,12 @@ msgstr "Für Sie freigegeben - Datensatz kann bearbeitet werden" msgid "Access not granted" msgstr "Nicht freigegeben - Datensatz nur lesbar" +#: konova/utils/validators.py:26 +msgid "This date is unrealistic. Please enter the correct date (>1950)." +msgstr "" +"Dieses Datum ist unrealistisch. Geben Sie bitte das korrekte Datum ein " +"(>1950)." + #: konova/views/home.py:74 templates/navbars/navbar.html:16 msgid "Home" msgstr "Home"