Geometry simplification

* simplifies geometries on SimpleGeomForm if threshold GEOM_MAX_VERTICES has been exceeded
    * geometry is iteratively simplified to find a proper tolerance value which satisfies the GEOM_MAX_VERTICES threshold
pull/339/head
mpeltriaux 1 year ago
parent 4d96afae1d
commit a571c28027

@ -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.sub_settings.context_settings import TAB_TITLE_IDENTIFIER
from konova.utils.message_templates import COMPENSATION_REMOVED_TEMPLATE, DATA_CHECKED_PREVIOUSLY_TEMPLATE, \ 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, \ 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 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)) 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) return redirect("compensation:detail", id=comp.id)
else: else:
messages.error(request, FORM_INVALID, extra_tags="danger",) 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: if intervention_recorded or intervention_checked:
messages.info(request, CHECKED_RECORDED_RESET) messages.info(request, CHECKED_RECORDED_RESET)
messages.success(request, _("Compensation {} edited").format(comp.identifier)) 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) return redirect("compensation:detail", id=comp.id)
else: else:
messages.error(request, FORM_INVALID, extra_tags="danger",) messages.error(request, FORM_INVALID, extra_tags="danger",)
@ -218,6 +228,8 @@ def detail_view(request: HttpRequest, id: str):
_user = request.user _user = request.user
is_data_shared = comp.intervention.is_shared_with(_user) is_data_shared = comp.intervention.is_shared_with(_user)
# Order states according to surface # Order states according to surface
before_states = comp.before_states.all().prefetch_related("biotope_type").order_by("-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") after_states = comp.after_states.all().prefetch_related("biotope_type").order_by("-surface")

@ -22,7 +22,7 @@ from konova.forms import SimpleGeomForm
from konova.settings import ETS_GROUP, DEFAULT_GROUP, ZB_GROUP from konova.settings import ETS_GROUP, DEFAULT_GROUP, ZB_GROUP
from konova.sub_settings.context_settings import TAB_TITLE_IDENTIFIER 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, \ 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 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)) 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) return redirect("compensation:acc:detail", id=acc.id)
else: else:
messages.error(request, FORM_INVALID, extra_tags="danger",) 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 # The data form takes the geom form for processing, as well as the performing user
acc = data_form.save(request.user, geom_form) acc = data_form.save(request.user, geom_form)
messages.success(request, _("Eco-Account {} edited").format(acc.identifier)) 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) return redirect("compensation:acc:detail", id=acc.id)
else: else:
messages.error(request, FORM_INVALID, extra_tags="danger",) messages.error(request, FORM_INVALID, extra_tags="danger",)

@ -23,7 +23,7 @@ from konova.forms.modals import RemoveModalForm
from konova.settings import DEFAULT_GROUP, ZB_GROUP, ETS_GROUP from konova.settings import DEFAULT_GROUP, ZB_GROUP, ETS_GROUP
from konova.sub_settings.context_settings import TAB_TITLE_IDENTIFIER from konova.sub_settings.context_settings import TAB_TITLE_IDENTIFIER
from konova.utils.message_templates import RECORDED_BLOCKS_EDIT, IDENTIFIER_REPLACED, FORM_INVALID, \ 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 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)) 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) return redirect("ema:detail", id=ema.id)
else: else:
messages.error(request, FORM_INVALID, extra_tags="danger",) 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 # The data form takes the geom form for processing, as well as the performing user
ema = data_form.save(request.user, geom_form) ema = data_form.save(request.user, geom_form)
messages.success(request, _("EMA {} edited").format(ema.identifier)) 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) return redirect("ema:detail", id=ema.id)
else: else:
messages.error(request, FORM_INVALID, extra_tags="danger",) messages.error(request, FORM_INVALID, extra_tags="danger",)

@ -22,7 +22,7 @@ from konova.forms.modals import RemoveModalForm
from konova.settings import DEFAULT_GROUP, ZB_GROUP, ETS_GROUP from konova.settings import DEFAULT_GROUP, ZB_GROUP, ETS_GROUP
from konova.sub_settings.context_settings import TAB_TITLE_IDENTIFIER from konova.sub_settings.context_settings import TAB_TITLE_IDENTIFIER
from konova.utils.message_templates import DATA_CHECKED_PREVIOUSLY_TEMPLATE, RECORDED_BLOCKS_EDIT, \ 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 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)) 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) return redirect("intervention:detail", id=intervention.id)
else: else:
messages.error(request, FORM_INVALID, extra_tags="danger",) 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)) messages.success(request, _("Intervention {} edited").format(intervention.identifier))
if i_check or i_rec: if i_check or i_rec:
messages.info(request, CHECKED_RECORDED_RESET) messages.info(request, CHECKED_RECORDED_RESET)
if geom_form.geometry_simplified:
messages.info(
request,
GEOMETRY_SIMPLIFIED
)
return redirect("intervention:detail", id=intervention.id) return redirect("intervention:detail", id=intervention.id)
else: else:
messages.error(request, FORM_INVALID, extra_tags="danger",) messages.error(request, FORM_INVALID, extra_tags="danger",)

@ -15,6 +15,7 @@ from django.utils.translation import gettext_lazy as _
from konova.forms.base_form import BaseForm from konova.forms.base_form import BaseForm
from konova.models import Geometry 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.tasks import celery_update_parcels, celery_check_for_geometry_conflicts
from konova.sub_settings.lanis_settings import DEFAULT_SRID_RLP from konova.sub_settings.lanis_settings import DEFAULT_SRID_RLP
from user.models import UserActionLogEntry from user.models import UserActionLogEntry
@ -25,6 +26,7 @@ class SimpleGeomForm(BaseForm):
""" """
read_only = True read_only = True
geometry_simplified = False
geom = MultiPolygonField( geom = MultiPolygonField(
srid=DEFAULT_SRID_RLP, srid=DEFAULT_SRID_RLP,
label=_("Geometry"), label=_("Geometry"),
@ -124,6 +126,38 @@ class SimpleGeomForm(BaseForm):
return is_valid 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): def save(self, action: UserActionLogEntry):
""" Saves the form's geometry """ Saves the form's geometry
@ -149,6 +183,13 @@ class SimpleGeomForm(BaseForm):
geom=self.cleaned_data.get("geom", MultiPolygon(srid=DEFAULT_SRID_RLP)), geom=self.cleaned_data.get("geom", MultiPolygon(srid=DEFAULT_SRID_RLP)),
created=action, 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 # Start parcel update and geometry conflict checking procedure in a background process
celery_update_parcels.delay(geometry.id) celery_update_parcels.delay(geometry.id)
celery_check_for_geometry_conflicts.delay(geometry.id) celery_check_for_geometry_conflicts.delay(geometry.id)

@ -44,3 +44,5 @@ STRF_DATE_TIME = "%d.%m.%Y %H:%M:%S"
DEFAULT_GROUP = "Default" DEFAULT_GROUP = "Default"
ZB_GROUP = "Registration office" ZB_GROUP = "Registration office"
ETS_GROUP = "Conservation office" ETS_GROUP = "Conservation office"
GEOM_MAX_VERTICES = 10000

@ -7,6 +7,8 @@ Created on: 02.08.21
""" """
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from konova.settings import GEOM_MAX_VERTICES
NO_DETAILS = _("no further details") NO_DETAILS = _("no further details")
UNKNOWN = _("Unknown") UNKNOWN = _("Unknown")
UNGROUPED = _("Ungrouped") UNGROUPED = _("Ungrouped")
@ -79,8 +81,9 @@ DOCUMENT_EDITED = _("Document edited")
EDITED_GENERAL_DATA = _("Edited general data") EDITED_GENERAL_DATA = _("Edited general data")
ADDED_DEADLINE = _("Added deadline") ADDED_DEADLINE = _("Added deadline")
# Geometry conflicts # Geometry
GEOMETRY_CONFLICT_WITH_TEMPLATE = _("Geometry conflict detected with {}") 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
INTERVENTION_HAS_REVOCATIONS_TEMPLATE = _("This intervention has {} revocations") INTERVENTION_HAS_REVOCATIONS_TEMPLATE = _("This intervention has {} revocations")

Binary file not shown.

@ -6,14 +6,14 @@
#: compensation/filters/eco_account.py:21 #: compensation/filters/eco_account.py:21
#: compensation/forms/modals/compensation_action.py:82 #: compensation/forms/modals/compensation_action.py:82
#: compensation/forms/modals/deadline.py:52 #: compensation/forms/modals/deadline.py:52
#: compensation/forms/modals/payment.py:23 #: compensation/forms/modals/payment.py:24
#: compensation/forms/modals/payment.py:34 #: compensation/forms/modals/payment.py:35
#: compensation/forms/modals/payment.py:50 #: compensation/forms/modals/payment.py:52
#: intervention/forms/intervention.py:56 intervention/forms/intervention.py:176 #: intervention/forms/intervention.py:57 intervention/forms/intervention.py:177
#: intervention/forms/intervention.py:188 #: intervention/forms/intervention.py:190
#: intervention/forms/modals/revocation.py:20 #: intervention/forms/modals/revocation.py:21
#: intervention/forms/modals/revocation.py:33 #: intervention/forms/modals/revocation.py:35
#: intervention/forms/modals/revocation.py:46 #: intervention/forms/modals/revocation.py:48
#: konova/filters/mixins/file_number.py:17 #: konova/filters/mixins/file_number.py:17
#: konova/filters/mixins/file_number.py:18 #: konova/filters/mixins/file_number.py:18
#: konova/filters/mixins/geo_reference.py:25 #: 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:25 konova/filters/mixins/office.py:56
#: konova/filters/mixins/office.py:57 konova/filters/mixins/record.py:23 #: 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/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/geometry_form.py:33 konova/forms/modals/document_form.py:26
#: konova/forms/modals/document_form.py:35 #: konova/forms/modals/document_form.py:36
#: konova/forms/modals/document_form.py:48 #: konova/forms/modals/document_form.py:50
#: konova/forms/modals/document_form.py:60 #: konova/forms/modals/document_form.py:62
#: konova/forms/modals/document_form.py:78 #: konova/forms/modals/document_form.py:80
#: konova/forms/modals/remove_form.py:23 #: konova/forms/modals/remove_form.py:23
#: konova/forms/modals/resubmission_form.py:21 #: konova/forms/modals/resubmission_form.py:22
#: konova/forms/modals/resubmission_form.py:36 konova/forms/remove_form.py:19 #: konova/forms/modals/resubmission_form.py:38 konova/forms/remove_form.py:19
#: user/forms/user.py:39 #: user/forms/user.py:39
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -53,57 +53,58 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\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" msgid "From"
msgstr "Vom" msgstr "Vom"
#: analysis/forms.py:25 #: analysis/forms.py:27
msgid "Entries created from..." msgid "Entries created from..."
msgstr "Einträge erstellt seit..." msgstr "Einträge erstellt seit..."
#: analysis/forms.py:37 #: analysis/forms.py:39
msgid "To" msgid "To"
msgstr "Bis" msgstr "Bis"
#: analysis/forms.py:38 #: analysis/forms.py:41
msgid "Entries created until..." msgid "Entries created until..."
msgstr "Einträge erstellt bis..." 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/detail/eco_account/view.html:59
#: compensation/templates/compensation/report/eco_account/report.html:16 #: compensation/templates/compensation/report/eco_account/report.html:16
#: compensation/utils/quality.py:113 ema/templates/ema/detail/view.html:49 #: compensation/utils/quality.py:113 ema/templates/ema/detail/view.html:49
#: ema/templates/ema/report/report.html:16 ema/utils/quality.py:26 #: 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/detail/view.html:56
#: intervention/templates/intervention/report/report.html:37 #: intervention/templates/intervention/report/report.html:37
#: intervention/utils/quality.py:62 konova/filters/mixins/office.py:34 #: intervention/utils/quality.py:62 konova/filters/mixins/office.py:34
msgid "Conservation office" msgid "Conservation office"
msgstr "Eintragungsstelle" 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" msgid "Select the responsible office"
msgstr "Verantwortliche Stelle" 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 #: compensation/forms/mixins.py:32 compensation/forms/mixins.py:62
#: intervention/forms/intervention.py:66 intervention/forms/intervention.py:83 #: intervention/forms/intervention.py:67 intervention/forms/intervention.py:84
#: intervention/forms/intervention.py:99 intervention/forms/intervention.py:115 #: intervention/forms/intervention.py:100
#: intervention/forms/intervention.py:156 intervention/forms/modals/share.py:41 #: 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 #: intervention/forms/modals/share.py:55 user/forms/modals/team.py:48
#: user/forms/modals/team.py:112 #: user/forms/modals/team.py:112
msgid "Click for selection" msgid "Click for selection"
msgstr "Auswählen..." msgstr "Auswählen..."
#: analysis/forms.py:67 #: analysis/forms.py:70
msgid "Generate report" msgid "Generate report"
msgstr "Bericht generieren" msgstr "Bericht generieren"
#: analysis/forms.py:68 #: analysis/forms.py:71
msgid "Select a timespan and the desired conservation office" msgid "Select a timespan and the desired conservation office"
msgstr "Wählen Sie die Zeitspanne und die gewünschte Eintragungsstelle" 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" msgid "Continue"
msgstr "Weiter" msgstr "Weiter"
@ -286,7 +287,7 @@ msgid "Compensation"
msgstr "Kompensation" msgstr "Kompensation"
#: analysis/templates/analysis/reports/includes/intervention/compensated_by.html:21 #: analysis/templates/analysis/reports/includes/intervention/compensated_by.html:21
#: compensation/forms/modals/payment.py:63 #: compensation/forms/modals/payment.py:65
msgid "Payment" msgid "Payment"
msgstr "Zahlung" msgstr "Zahlung"
@ -309,7 +310,7 @@ msgstr ""
" " " "
#: analysis/templates/analysis/reports/includes/intervention/laws.html:14 #: 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/detail/view.html:39
#: intervention/templates/intervention/report/report.html:20 #: intervention/templates/intervention/report/report.html:20
msgid "Law" msgid "Law"
@ -358,12 +359,12 @@ msgstr "Nur unverzeichnete anzeigen"
#: compensation/forms/compensation.py:30 compensation/tables/compensation.py:23 #: compensation/forms/compensation.py:30 compensation/tables/compensation.py:23
#: compensation/tables/eco_account.py:24 ema/tables.py:26 #: 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 #: intervention/templates/intervention/detail/includes/compensations.html:30
msgid "Identifier" msgid "Identifier"
msgstr "Kennung" 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 #: user/forms/user.py:77
msgid "Generated automatically - not editable" msgid "Generated automatically - not editable"
msgstr "Automatisch generiert - nicht bearbeitbar" 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/tables.py:31 ema/templates/ema/detail/includes/documents.html:28
#: ema/templates/ema/detail/view.html:31 #: ema/templates/ema/detail/view.html:31
#: ema/templates/ema/report/report.html:12 #: 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/compensations.html:33
#: intervention/templates/intervention/detail/includes/documents.html:33 #: intervention/templates/intervention/detail/includes/documents.html:33
#: intervention/templates/intervention/detail/view.html:31 #: intervention/templates/intervention/detail/view.html:31
#: intervention/templates/intervention/report/report.html:12 #: intervention/templates/intervention/report/report.html:12
#: konova/forms/modals/document_form.py:24 #: konova/forms/modals/document_form.py:25
msgid "Title" msgid "Title"
msgstr "Bezeichnung" 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" msgid "An explanatory name"
msgstr "Aussagekräftiger Titel" msgstr "Aussagekräftiger Titel"
@ -399,7 +400,7 @@ msgstr "Kompensation XY; Flur ABC"
#: compensation/forms/compensation.py:56 #: compensation/forms/compensation.py:56
#: compensation/forms/modals/compensation_action.py:81 #: compensation/forms/modals/compensation_action.py:81
#: compensation/forms/modals/deadline.py:51 #: 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/actions.html:35
#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:39 #: compensation/templates/compensation/detail/compensation/includes/deadlines.html:39
#: compensation/templates/compensation/detail/compensation/includes/documents.html:34 #: 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/actions.html:34
#: ema/templates/ema/detail/includes/deadlines.html:39 #: ema/templates/ema/detail/includes/deadlines.html:39
#: ema/templates/ema/detail/includes/documents.html:34 #: ema/templates/ema/detail/includes/documents.html:34
#: intervention/forms/intervention.py:200 #: intervention/forms/intervention.py:203
#: intervention/forms/modals/revocation.py:45 #: intervention/forms/modals/revocation.py:47
#: intervention/templates/intervention/detail/includes/documents.html:39 #: intervention/templates/intervention/detail/includes/documents.html:39
#: intervention/templates/intervention/detail/includes/payments.html:34 #: intervention/templates/intervention/detail/includes/payments.html:34
#: intervention/templates/intervention/detail/includes/revocation.html:38 #: intervention/templates/intervention/detail/includes/revocation.html:38
#: konova/forms/modals/document_form.py:59 #: konova/forms/modals/document_form.py:61
#: konova/forms/modals/resubmission_form.py:35 #: konova/forms/modals/resubmission_form.py:37
#: konova/templates/konova/includes/comment_card.html:16 #: konova/templates/konova/includes/comment_card.html:16
msgid "Comment" msgid "Comment"
msgstr "Kommentar" msgstr "Kommentar"
#: compensation/forms/compensation.py:58 #: compensation/forms/compensation.py:58
#: compensation/forms/modals/compensation_action.py:83 #: compensation/forms/modals/compensation_action.py:83
#: intervention/forms/intervention.py:202 #: intervention/forms/intervention.py:205
#: konova/forms/modals/resubmission_form.py:37 #: konova/forms/modals/resubmission_form.py:39
msgid "Additional comment" msgid "Additional comment"
msgstr "Zusätzlicher Kommentar" 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" msgstr "Wählen Sie den Eingriff, für den diese Kompensation bestimmt ist"
#: compensation/forms/compensation.py:114 #: compensation/forms/compensation.py:114
#: compensation/views/compensation/compensation.py:115 #: compensation/views/compensation/compensation.py:120
msgid "New compensation" msgid "New compensation"
msgstr "Neue Kompensation" msgstr "Neue Kompensation"
@ -446,38 +447,38 @@ msgstr "Neue Kompensation"
msgid "Edit compensation" msgid "Edit compensation"
msgstr "Bearbeite Kompensation" 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" msgid "Available Surface"
msgstr "Verfügbare Fläche" 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" msgid "The amount that can be used for deductions"
msgstr "Die für Abbuchungen zur Verfügung stehende Menge" 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/templates/compensation/detail/eco_account/view.html:67
#: compensation/utils/quality.py:84 #: compensation/utils/quality.py:84
msgid "Agreement date" msgid "Agreement date"
msgstr "Vereinbarungsdatum" msgstr "Vereinbarungsdatum"
#: compensation/forms/eco_account.py:44 #: compensation/forms/eco_account.py:45
msgid "When did the parties agree on this?" msgid "When did the parties agree on this?"
msgstr "Wann wurde dieses Ökokonto offiziell vereinbart?" msgstr "Wann wurde dieses Ökokonto offiziell vereinbart?"
#: compensation/forms/eco_account.py:70 #: compensation/forms/eco_account.py:72
#: compensation/views/eco_account/eco_account.py:96 #: compensation/views/eco_account/eco_account.py:101
msgid "New Eco-Account" msgid "New Eco-Account"
msgstr "Neues Ökokonto" msgstr "Neues Ökokonto"
#: compensation/forms/eco_account.py:79 #: compensation/forms/eco_account.py:81
msgid "Eco-Account XY; Location ABC" msgid "Eco-Account XY; Location ABC"
msgstr "Ökokonto XY; Flur ABC" msgstr "Ökokonto XY; Flur ABC"
#: compensation/forms/eco_account.py:145 #: compensation/forms/eco_account.py:147
msgid "Edit Eco-Account" msgid "Edit Eco-Account"
msgstr "Ökokonto bearbeiten" 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." msgid "The account can not be removed, since there are still deductions."
msgstr "" msgstr ""
"Das Ökokonto kann nicht entfernt werden, da hierzu noch Abbuchungen " "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/templates/compensation/report/eco_account/report.html:20
#: compensation/utils/quality.py:115 ema/templates/ema/detail/view.html:53 #: compensation/utils/quality.py:115 ema/templates/ema/detail/view.html:53
#: ema/templates/ema/report/report.html:20 ema/utils/quality.py:28 #: 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/detail/view.html:60
#: intervention/templates/intervention/report/report.html:41 #: intervention/templates/intervention/report/report.html:41
#: intervention/utils/quality.py:55 #: intervention/utils/quality.py:55
msgid "Conservation office file number" msgid "Conservation office file number"
msgstr "Aktenzeichen Eintragungsstelle" 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" msgid "ETS-123/ABC.456"
msgstr "" msgstr ""
@ -511,11 +512,11 @@ msgstr "Zu welcher Kategorie dieser Maßnahmenträger gehört"
msgid "Eco-Account handler detail" msgid "Eco-Account handler detail"
msgstr "Detailangabe zum Maßnahmenträger" 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" msgid "Detail input on the handler"
msgstr "Name der Behörde, Stadt, Firma, ..." 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" msgid "Company Mustermann"
msgstr "Firma Mustermann" msgstr "Firma Mustermann"
@ -604,31 +605,31 @@ msgstr "Geben Sie die Daten der neuen Maßnahme ein"
msgid "Edit action" msgid "Edit action"
msgstr "Maßnahme bearbeiten" msgstr "Maßnahme bearbeiten"
#: compensation/forms/modals/deadline.py:23 #: compensation/forms/modals/deadline.py:22
msgid "Deadline Type" msgid "Deadline Type"
msgstr "Fristart" msgstr "Fristart"
#: compensation/forms/modals/deadline.py:26 #: compensation/forms/modals/deadline.py:25
msgid "Select the deadline type" msgid "Select the deadline type"
msgstr "Fristart wählen" 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/compensation/includes/deadlines.html:36
#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:36 #: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:36
#: ema/templates/ema/detail/includes/deadlines.html:36 #: ema/templates/ema/detail/includes/deadlines.html:36
#: intervention/forms/modals/revocation.py:19 #: intervention/forms/modals/revocation.py:20
#: konova/forms/modals/resubmission_form.py:22 #: konova/forms/modals/resubmission_form.py:23
msgid "Date" msgid "Date"
msgstr "Datum" msgstr "Datum"
#: compensation/forms/modals/deadline.py:38 #: compensation/forms/modals/deadline.py:37
msgid "Select date" msgid "Select date"
msgstr "Datum wählen" msgstr "Datum wählen"
#: compensation/forms/modals/deadline.py:53 #: compensation/forms/modals/deadline.py:53
#: compensation/forms/modals/payment.py:51 #: compensation/forms/modals/payment.py:53
#: intervention/forms/modals/revocation.py:47 #: intervention/forms/modals/revocation.py:49
#: konova/forms/modals/document_form.py:61 #: konova/forms/modals/document_form.py:63
msgid "Additional comment, maximum {} letters" msgid "Additional comment, maximum {} letters"
msgstr "Zusätzlicher Kommentar, maximal {} Zeichen" msgstr "Zusätzlicher Kommentar, maximal {} Zeichen"
@ -640,39 +641,35 @@ msgstr "Neue Frist"
msgid "Insert data for the new deadline" msgid "Insert data for the new deadline"
msgstr "Geben Sie die Daten der neuen Frist ein" msgstr "Geben Sie die Daten der neuen Frist ein"
#: compensation/forms/modals/deadline.py:77 #: compensation/forms/modals/deadline.py:79
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/templates/compensation/detail/compensation/includes/deadlines.html:64 #: compensation/templates/compensation/detail/compensation/includes/deadlines.html:64
#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:62 #: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:62
#: ema/templates/ema/detail/includes/deadlines.html:62 #: ema/templates/ema/detail/includes/deadlines.html:62
msgid "Edit deadline" msgid "Edit deadline"
msgstr "Frist/Termin bearbeiten" msgstr "Frist/Termin bearbeiten"
#: compensation/forms/modals/payment.py:24 #: compensation/forms/modals/payment.py:25
msgid "in Euro" msgid "in Euro"
msgstr "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 #: intervention/templates/intervention/detail/includes/payments.html:31
msgid "Due on" msgid "Due on"
msgstr "Fällig am" msgstr "Fällig am"
#: compensation/forms/modals/payment.py:36 #: compensation/forms/modals/payment.py:38
msgid "Due on which date" msgid "Due on which date"
msgstr "Zahlung wird an diesem Datum erwartet" 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 '{}'" msgid "Add a payment for intervention '{}'"
msgstr "Neue Ersatzzahlung zu Eingriff '{}' hinzufügen" 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." 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." 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 #: intervention/templates/intervention/detail/includes/payments.html:59
msgid "Edit payment" msgid "Edit payment"
msgstr "Zahlung bearbeiten" msgstr "Zahlung bearbeiten"
@ -924,7 +921,7 @@ msgstr "Öffentlicher Bericht"
#: compensation/templates/compensation/detail/eco_account/includes/controls.html:15 #: compensation/templates/compensation/detail/eco_account/includes/controls.html:15
#: ema/templates/ema/detail/includes/controls.html:15 #: ema/templates/ema/detail/includes/controls.html:15
#: intervention/templates/intervention/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 #: templates/email/resubmission/resubmission.html:4
msgid "Resubmission" msgid "Resubmission"
msgstr "Wiedervorlage" msgstr "Wiedervorlage"
@ -987,7 +984,7 @@ msgstr "Dokumente"
#: compensation/templates/compensation/detail/eco_account/includes/documents.html:14 #: compensation/templates/compensation/detail/eco_account/includes/documents.html:14
#: ema/templates/ema/detail/includes/documents.html:14 #: ema/templates/ema/detail/includes/documents.html:14
#: intervention/templates/intervention/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" msgid "Add new document"
msgstr "Neues Dokument hinzufügen" msgstr "Neues Dokument hinzufügen"
@ -995,7 +992,7 @@ msgstr "Neues Dokument hinzufügen"
#: compensation/templates/compensation/detail/eco_account/includes/documents.html:31 #: compensation/templates/compensation/detail/eco_account/includes/documents.html:31
#: ema/templates/ema/detail/includes/documents.html:31 #: ema/templates/ema/detail/includes/documents.html:31
#: intervention/templates/intervention/detail/includes/documents.html:36 #: 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" msgid "Created on"
msgstr "Erstellt" msgstr "Erstellt"
@ -1003,7 +1000,7 @@ msgstr "Erstellt"
#: compensation/templates/compensation/detail/eco_account/includes/documents.html:61 #: compensation/templates/compensation/detail/eco_account/includes/documents.html:61
#: ema/templates/ema/detail/includes/documents.html:61 #: ema/templates/ema/detail/includes/documents.html:61
#: intervention/templates/intervention/detail/includes/documents.html:70 #: 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" msgid "Edit document"
msgstr "Dokument bearbeiten" msgstr "Dokument bearbeiten"
@ -1281,14 +1278,14 @@ msgstr "Daten zu den verantwortlichen Stellen"
msgid "Compensations - Overview" msgid "Compensations - Overview"
msgstr "Kompensationen - Übersicht" msgstr "Kompensationen - Übersicht"
#: compensation/views/compensation/compensation.py:177 #: compensation/views/compensation/compensation.py:182
#: konova/utils/message_templates.py:38 #: konova/utils/message_templates.py:40
msgid "Compensation {} edited" msgid "Compensation {} edited"
msgstr "Kompensation {} bearbeitet" msgstr "Kompensation {} bearbeitet"
#: compensation/views/compensation/compensation.py:187 #: compensation/views/compensation/compensation.py:197
#: compensation/views/eco_account/eco_account.py:161 ema/views/ema.py:220 #: compensation/views/eco_account/eco_account.py:171 ema/views/ema.py:231
#: intervention/views/intervention.py:243 #: intervention/views/intervention.py:253
msgid "Edit {}" msgid "Edit {}"
msgstr "Bearbeite {}" msgstr "Bearbeite {}"
@ -1306,15 +1303,15 @@ msgstr "Ökokonten - Übersicht"
msgid "Eco-Account {} added" msgid "Eco-Account {} added"
msgstr "Ökokonto {} hinzugefügt" msgstr "Ökokonto {} hinzugefügt"
#: compensation/views/eco_account/eco_account.py:151 #: compensation/views/eco_account/eco_account.py:156
msgid "Eco-Account {} edited" msgid "Eco-Account {} edited"
msgstr "Ökokonto {} bearbeitet" msgstr "Ökokonto {} bearbeitet"
#: compensation/views/eco_account/eco_account.py:275 #: compensation/views/eco_account/eco_account.py:285
msgid "Eco-account removed" msgid "Eco-account removed"
msgstr "Ökokonto entfernt" msgstr "Ökokonto entfernt"
#: ema/forms.py:42 ema/views/ema.py:96 #: ema/forms.py:42 ema/views/ema.py:102
msgid "New EMA" msgid "New EMA"
msgstr "Neue EMA hinzufügen" msgstr "Neue EMA hinzufügen"
@ -1350,78 +1347,78 @@ msgstr "EMAs - Übersicht"
msgid "EMA {} added" msgid "EMA {} added"
msgstr "EMA {} hinzugefügt" msgstr "EMA {} hinzugefügt"
#: ema/views/ema.py:210 #: ema/views/ema.py:216
msgid "EMA {} edited" msgid "EMA {} edited"
msgstr "EMA {} bearbeitet" msgstr "EMA {} bearbeitet"
#: ema/views/ema.py:244 #: ema/views/ema.py:255
msgid "EMA removed" msgid "EMA removed"
msgstr "EMA entfernt" msgstr "EMA entfernt"
#: intervention/forms/intervention.py:48 #: intervention/forms/intervention.py:49
msgid "Construction XY; Location ABC" msgid "Construction XY; Location ABC"
msgstr "Bauvorhaben XY; Flur 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/detail/view.html:35
#: intervention/templates/intervention/report/report.html:16 #: intervention/templates/intervention/report/report.html:16
#: intervention/utils/quality.py:95 #: intervention/utils/quality.py:95
msgid "Process type" msgid "Process type"
msgstr "Verfahrenstyp" msgstr "Verfahrenstyp"
#: intervention/forms/intervention.py:73 #: intervention/forms/intervention.py:74
msgid "Multiple selection possible" msgid "Multiple selection possible"
msgstr "Mehrfachauswahl möglich" msgstr "Mehrfachauswahl möglich"
#: intervention/forms/intervention.py:88 #: intervention/forms/intervention.py:89
#: intervention/templates/intervention/detail/view.html:48 #: intervention/templates/intervention/detail/view.html:48
#: intervention/templates/intervention/report/report.html:29 #: intervention/templates/intervention/report/report.html:29
#: intervention/utils/quality.py:59 konova/filters/mixins/office.py:66 #: intervention/utils/quality.py:59 konova/filters/mixins/office.py:66
msgid "Registration office" msgid "Registration office"
msgstr "Zulassungsbehörde" msgstr "Zulassungsbehörde"
#: intervention/forms/intervention.py:120 #: intervention/forms/intervention.py:121
#: intervention/templates/intervention/detail/view.html:52 #: intervention/templates/intervention/detail/view.html:52
#: intervention/templates/intervention/report/report.html:33 #: intervention/templates/intervention/report/report.html:33
#: intervention/utils/quality.py:52 #: intervention/utils/quality.py:52
msgid "Registration office file number" msgid "Registration office file number"
msgstr "Aktenzeichen Zulassungsbehörde" msgstr "Aktenzeichen Zulassungsbehörde"
#: intervention/forms/intervention.py:126 #: intervention/forms/intervention.py:127
msgid "ZB-123/ABC.456" msgid "ZB-123/ABC.456"
msgstr "" msgstr ""
#: intervention/forms/intervention.py:144 #: intervention/forms/intervention.py:145
msgid "Intervention handler type" msgid "Intervention handler type"
msgstr "Art des Eingriffsverursachers" msgstr "Art des Eingriffsverursachers"
#: intervention/forms/intervention.py:146 #: intervention/forms/intervention.py:147
msgid "What type of handler is responsible for the intervention?" msgid "What type of handler is responsible for the intervention?"
msgstr "Zu welcher Kategorie dieser Eingriffsverursacher gehört" msgstr "Zu welcher Kategorie dieser Eingriffsverursacher gehört"
#: intervention/forms/intervention.py:161 #: intervention/forms/intervention.py:162
msgid "Intervention handler detail" msgid "Intervention handler detail"
msgstr "Detailangabe zum Eingriffsverursacher" msgstr "Detailangabe zum Eingriffsverursacher"
#: intervention/forms/intervention.py:175 #: intervention/forms/intervention.py:176
#: intervention/templates/intervention/detail/view.html:101 #: intervention/templates/intervention/detail/view.html:101
#: intervention/templates/intervention/report/report.html:81 #: intervention/templates/intervention/report/report.html:81
#: intervention/utils/quality.py:86 #: intervention/utils/quality.py:86
msgid "Registration date" msgid "Registration date"
msgstr "Datum Zulassung bzw. Satzungsbeschluss" 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/detail/view.html:105
#: intervention/templates/intervention/report/report.html:85 #: intervention/templates/intervention/report/report.html:85
msgid "Binding on" msgid "Binding on"
msgstr "Datum Bestandskraft bzw. Rechtskraft" msgstr "Datum Bestandskraft bzw. Rechtskraft"
#: intervention/forms/intervention.py:213 #: intervention/forms/intervention.py:216
#: intervention/views/intervention.py:100 #: intervention/views/intervention.py:105
msgid "New intervention" msgid "New intervention"
msgstr "Neuer Eingriff" msgstr "Neuer Eingriff"
#: intervention/forms/intervention.py:303 #: intervention/forms/intervention.py:306
msgid "Edit intervention" msgid "Edit intervention"
msgstr "Eingriff bearbeiten" msgstr "Eingriff bearbeiten"
@ -1486,25 +1483,25 @@ msgstr ""
"Das Ökokonto {} hat für eine Abbuchung von {} m² nicht ausreichend " "Das Ökokonto {} hat für eine Abbuchung von {} m² nicht ausreichend "
"Restfläche. Es stehen noch {} m² zur Verfügung." "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" msgid "Date of revocation"
msgstr "Datum des Widerspruchs" msgstr "Datum des Widerspruchs"
#: intervention/forms/modals/revocation.py:32 #: intervention/forms/modals/revocation.py:34
#: intervention/templates/intervention/detail/includes/revocation.html:35 #: intervention/templates/intervention/detail/includes/revocation.html:35
msgid "Document" msgid "Document"
msgstr "Dokument" msgstr "Dokument"
#: intervention/forms/modals/revocation.py:35 #: intervention/forms/modals/revocation.py:37
msgid "Must be smaller than 15 Mb" msgid "Must be smaller than 15 Mb"
msgstr "Muss kleiner als 15 Mb sein" 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 #: intervention/templates/intervention/detail/includes/revocation.html:18
msgid "Add revocation" msgid "Add revocation"
msgstr "Widerspruch hinzufügen" msgstr "Widerspruch hinzufügen"
#: intervention/forms/modals/revocation.py:78 #: intervention/forms/modals/revocation.py:80
#: intervention/templates/intervention/detail/includes/revocation.html:69 #: intervention/templates/intervention/detail/includes/revocation.html:69
msgid "Edit revocation" msgid "Edit revocation"
msgstr "Widerspruch bearbeiten" msgstr "Widerspruch bearbeiten"
@ -1657,11 +1654,11 @@ msgstr "Eingriffe - Übersicht"
msgid "Intervention {} added" msgid "Intervention {} added"
msgstr "Eingriff {} hinzugefügt" msgstr "Eingriff {} hinzugefügt"
#: intervention/views/intervention.py:231 #: intervention/views/intervention.py:236
msgid "Intervention {} edited" msgid "Intervention {} edited"
msgstr "Eingriff {} bearbeitet" msgstr "Eingriff {} bearbeitet"
#: intervention/views/intervention.py:268 #: intervention/views/intervention.py:278
msgid "{} removed" msgid "{} removed"
msgstr "{} entfernt" msgstr "{} entfernt"
@ -1779,30 +1776,30 @@ msgstr "Speichern"
msgid "Not editable" msgid "Not editable"
msgstr "Nicht editierbar" 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 #: konova/utils/quality.py:46 templates/form/collapsable/form.html:45
msgid "Geometry" msgid "Geometry"
msgstr "Geometrie" msgstr "Geometrie"
#: konova/forms/geometry_form.py:99 #: konova/forms/geometry_form.py:101
msgid "Only surfaces allowed. Points or lines must be buffered." msgid "Only surfaces allowed. Points or lines must be buffered."
msgstr "" msgstr ""
"Nur Flächen erlaubt. Punkte oder Linien müssen zu Flächen gepuffert werden." "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." msgid "When has this file been created? Important for photos."
msgstr "Wann wurde diese Datei erstellt oder das Foto aufgenommen?" 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 #: venv/lib/python3.7/site-packages/django/db/models/fields/files.py:231
msgid "File" msgid "File"
msgstr "Datei" 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." msgid "Allowed formats: pdf, jpg, png. Max size 15 MB."
msgstr "Formate: pdf, jpg, png. Maximal 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" msgid "Added document"
msgstr "Dokument hinzugefügt" msgstr "Dokument hinzugefügt"
@ -1839,15 +1836,15 @@ msgstr "Löschen"
msgid "Are you sure?" msgid "Are you sure?"
msgstr "Sind Sie sicher?" 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?" msgid "When do you want to be reminded?"
msgstr "Wann wollen Sie erinnert werden?" 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." msgid "Set your resubmission for this entry."
msgstr "Setzen Sie eine Wiedervorlage für diesen Eintrag." 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" msgid "The date should be in the future"
msgstr "Das Datum sollte in der Zukunft liegen" msgstr "Das Datum sollte in der Zukunft liegen"
@ -2021,32 +2018,32 @@ msgstr "Anfrage für neuen API Token"
msgid "Resubmission - {}" msgid "Resubmission - {}"
msgstr "Wiedervorlage - {}" msgstr "Wiedervorlage - {}"
#: konova/utils/message_templates.py:10 #: konova/utils/message_templates.py:12
msgid "no further details" msgid "no further details"
msgstr "keine weitere Angabe" 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 #: venv/lib/python3.7/site-packages/django/forms/widgets.py:709
msgid "Unknown" msgid "Unknown"
msgstr "Unbekannt" msgstr "Unbekannt"
#: konova/utils/message_templates.py:12 #: konova/utils/message_templates.py:14
msgid "Ungrouped" msgid "Ungrouped"
msgstr "Ohne Zuordnung" msgstr "Ohne Zuordnung"
#: konova/utils/message_templates.py:13 #: konova/utils/message_templates.py:15
msgid "There was an error on this form." msgid "There was an error on this form."
msgstr "Es gab einen Fehler im Formular." msgstr "Es gab einen Fehler im Formular."
#: konova/utils/message_templates.py:14 #: konova/utils/message_templates.py:16
msgid "Invalid parameters" msgid "Invalid parameters"
msgstr "Parameter ungültig" msgstr "Parameter ungültig"
#: konova/utils/message_templates.py:15 #: konova/utils/message_templates.py:17
msgid "There are errors in this intervention." msgid "There are errors in this intervention."
msgstr "Es liegen Fehler in diesem Eingriff vor:" msgstr "Es liegen Fehler in diesem Eingriff vor:"
#: konova/utils/message_templates.py:16 #: konova/utils/message_templates.py:18
msgid "" msgid ""
"The identifier '{}' had to be changed to '{}' since another entry has been " "The identifier '{}' had to be changed to '{}' since another entry has been "
"added in the meanwhile, which uses this identifier" "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 " "Die Kennung '{}' musste zu '{}' geändert werden, da ein anderer Eintrag in "
"der Zwischenzeit angelegt wurde, welcher diese Kennung nun bereits verwendet" "der Zwischenzeit angelegt wurde, welcher diese Kennung nun bereits verwendet"
#: konova/utils/message_templates.py:17 #: konova/utils/message_templates.py:19
msgid "" msgid ""
"Only conservation or registration office users are allowed to remove entries." "Only conservation or registration office users are allowed to remove entries."
msgstr "" msgstr ""
"Nur Mitarbeiter der Naturschutz- oder Zulassungsbehördengruppe dürfen " "Nur Mitarbeiter der Naturschutz- oder Zulassungsbehördengruppe dürfen "
"Einträge entfernen" "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." msgid "You need to be part of another user group."
msgstr "Hierfür müssen Sie einer anderen Nutzergruppe angehören!" 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" msgid "Status of Checked and Recorded reseted"
msgstr "'Geprüft'/'Verzeichnet' wurde zurückgesetzt" msgstr "'Geprüft'/'Verzeichnet' wurde zurückgesetzt"
#: konova/utils/message_templates.py:20 #: konova/utils/message_templates.py:22
msgid "" msgid ""
"Entry is recorded. To edit data, the entry first needs to be unrecorded." "Entry is recorded. To edit data, the entry first needs to be unrecorded."
msgstr "" msgstr ""
"Eintrag ist verzeichnet. Um Daten zu bearbeiten, muss der Eintrag erst " "Eintrag ist verzeichnet. Um Daten zu bearbeiten, muss der Eintrag erst "
"entzeichnet werden." "entzeichnet werden."
#: konova/utils/message_templates.py:23 #: konova/utils/message_templates.py:25
msgid "This data is not shared with you" msgid "This data is not shared with you"
msgstr "Diese Daten sind für Sie nicht freigegeben" msgstr "Diese Daten sind für Sie nicht freigegeben"
#: konova/utils/message_templates.py:24 #: konova/utils/message_templates.py:26
msgid "" msgid ""
"Remember: This data has not been shared with you, yet. This means you can " "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 " "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, " "bedeutet, dass Sie nur lesenden Zugriff hierauf haben und weder bearbeiten, "
"noch Prüfungen durchführen oder verzeichnen können." "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" msgid "Share settings updated"
msgstr "Freigabe Einstellungen aktualisiert" msgstr "Freigabe Einstellungen aktualisiert"
#: konova/utils/message_templates.py:26 #: konova/utils/message_templates.py:28
msgid "" msgid ""
"Do not forget to share your entry! Currently you are the only one having " "Do not forget to share your entry! Currently you are the only one having "
"shared access." "shared access."
@ -2102,15 +2099,15 @@ msgstr ""
"Denken Sie daran Ihren Eintrag freizugeben! Aktuell haben nur Sie eine " "Denken Sie daran Ihren Eintrag freizugeben! Aktuell haben nur Sie eine "
"Freigabe hierauf." "Freigabe hierauf."
#: konova/utils/message_templates.py:29 #: konova/utils/message_templates.py:31
msgid "Unsupported file type" msgid "Unsupported file type"
msgstr "Dateiformat nicht unterstützt" msgstr "Dateiformat nicht unterstützt"
#: konova/utils/message_templates.py:30 #: konova/utils/message_templates.py:32
msgid "File too large" msgid "File too large"
msgstr "Datei zu groß" msgstr "Datei zu groß"
#: konova/utils/message_templates.py:33 #: konova/utils/message_templates.py:35
msgid "" msgid ""
"Action canceled. Eco account is recorded or deductions exist. Only " "Action canceled. Eco account is recorded or deductions exist. Only "
"conservation office member can perform this action." "conservation office member can perform this action."
@ -2118,136 +2115,144 @@ msgstr ""
"Aktion abgebrochen. Ökokonto ist bereits verzeichnet oder Abbuchungen liegen " "Aktion abgebrochen. Ökokonto ist bereits verzeichnet oder Abbuchungen liegen "
"vor. Nur Eintragungsstellennutzer können diese Aktion jetzt durchführen." "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" msgid "Compensation {} added"
msgstr "Kompensation {} hinzugefügt" msgstr "Kompensation {} hinzugefügt"
#: konova/utils/message_templates.py:37 #: konova/utils/message_templates.py:39
msgid "Compensation {} removed" msgid "Compensation {} removed"
msgstr "Kompensation {} entfernt" msgstr "Kompensation {} entfernt"
#: konova/utils/message_templates.py:39 #: konova/utils/message_templates.py:41
msgid "Added compensation action" msgid "Added compensation action"
msgstr "Maßnahme hinzugefügt" msgstr "Maßnahme hinzugefügt"
#: konova/utils/message_templates.py:40 #: konova/utils/message_templates.py:42
msgid "Added compensation state" msgid "Added compensation state"
msgstr "Zustand hinzugefügt" msgstr "Zustand hinzugefügt"
#: konova/utils/message_templates.py:43 #: konova/utils/message_templates.py:45
msgid "State removed" msgid "State removed"
msgstr "Zustand gelöscht" msgstr "Zustand gelöscht"
#: konova/utils/message_templates.py:44 #: konova/utils/message_templates.py:46
msgid "State edited" msgid "State edited"
msgstr "Zustand bearbeitet" msgstr "Zustand bearbeitet"
#: konova/utils/message_templates.py:45 #: konova/utils/message_templates.py:47
msgid "State added" msgid "State added"
msgstr "Zustand hinzugefügt" msgstr "Zustand hinzugefügt"
#: konova/utils/message_templates.py:48 #: konova/utils/message_templates.py:50
msgid "Action added" msgid "Action added"
msgstr "Maßnahme hinzugefügt" msgstr "Maßnahme hinzugefügt"
#: konova/utils/message_templates.py:49 #: konova/utils/message_templates.py:51
msgid "Action edited" msgid "Action edited"
msgstr "Maßnahme bearbeitet" msgstr "Maßnahme bearbeitet"
#: konova/utils/message_templates.py:50 #: konova/utils/message_templates.py:52
msgid "Action removed" msgid "Action removed"
msgstr "Maßnahme entfernt" msgstr "Maßnahme entfernt"
#: konova/utils/message_templates.py:53 #: konova/utils/message_templates.py:55
msgid "Deduction added" msgid "Deduction added"
msgstr "Abbuchung hinzugefügt" msgstr "Abbuchung hinzugefügt"
#: konova/utils/message_templates.py:54 #: konova/utils/message_templates.py:56
msgid "Deduction edited" msgid "Deduction edited"
msgstr "Abbuchung bearbeitet" msgstr "Abbuchung bearbeitet"
#: konova/utils/message_templates.py:55 #: konova/utils/message_templates.py:57
msgid "Deduction removed" msgid "Deduction removed"
msgstr "Abbuchung entfernt" msgstr "Abbuchung entfernt"
#: konova/utils/message_templates.py:56 #: konova/utils/message_templates.py:58
msgid "Unknown deduction" msgid "Unknown deduction"
msgstr "Unbekannte Abbuchung" msgstr "Unbekannte Abbuchung"
#: konova/utils/message_templates.py:59 #: konova/utils/message_templates.py:61
msgid "Deadline added" msgid "Deadline added"
msgstr "Frist/Termin hinzugefügt" msgstr "Frist/Termin hinzugefügt"
#: konova/utils/message_templates.py:60 #: konova/utils/message_templates.py:62
msgid "Deadline edited" msgid "Deadline edited"
msgstr "Frist/Termin bearbeitet" msgstr "Frist/Termin bearbeitet"
#: konova/utils/message_templates.py:61 #: konova/utils/message_templates.py:63
msgid "Deadline removed" msgid "Deadline removed"
msgstr "Frist/Termin gelöscht" msgstr "Frist/Termin gelöscht"
#: konova/utils/message_templates.py:64 #: konova/utils/message_templates.py:66
msgid "Payment added" msgid "Payment added"
msgstr "Zahlung hinzugefügt" msgstr "Zahlung hinzugefügt"
#: konova/utils/message_templates.py:65 #: konova/utils/message_templates.py:67
msgid "Payment edited" msgid "Payment edited"
msgstr "Zahlung bearbeitet" msgstr "Zahlung bearbeitet"
#: konova/utils/message_templates.py:66 #: konova/utils/message_templates.py:68
msgid "Payment removed" msgid "Payment removed"
msgstr "Zahlung gelöscht" msgstr "Zahlung gelöscht"
#: konova/utils/message_templates.py:69 #: konova/utils/message_templates.py:71
msgid "Revocation added" msgid "Revocation added"
msgstr "Widerspruch hinzugefügt" msgstr "Widerspruch hinzugefügt"
#: konova/utils/message_templates.py:70 #: konova/utils/message_templates.py:72
msgid "Revocation edited" msgid "Revocation edited"
msgstr "Widerspruch bearbeitet" msgstr "Widerspruch bearbeitet"
#: konova/utils/message_templates.py:71 #: konova/utils/message_templates.py:73
msgid "Revocation removed" msgid "Revocation removed"
msgstr "Widerspruch entfernt" msgstr "Widerspruch entfernt"
#: konova/utils/message_templates.py:74 #: konova/utils/message_templates.py:76
msgid "Document '{}' deleted" msgid "Document '{}' deleted"
msgstr "Dokument '{}' gelöscht" msgstr "Dokument '{}' gelöscht"
#: konova/utils/message_templates.py:75 #: konova/utils/message_templates.py:77
msgid "Document added" msgid "Document added"
msgstr "Dokument hinzugefügt" msgstr "Dokument hinzugefügt"
#: konova/utils/message_templates.py:76 #: konova/utils/message_templates.py:78
msgid "Document edited" msgid "Document edited"
msgstr "Dokument bearbeitet" msgstr "Dokument bearbeitet"
#: konova/utils/message_templates.py:79 #: konova/utils/message_templates.py:81
msgid "Edited general data" msgid "Edited general data"
msgstr "Allgemeine Daten bearbeitet" msgstr "Allgemeine Daten bearbeitet"
#: konova/utils/message_templates.py:80 #: konova/utils/message_templates.py:82
msgid "Added deadline" msgid "Added deadline"
msgstr "Frist/Termin hinzugefügt" msgstr "Frist/Termin hinzugefügt"
#: konova/utils/message_templates.py:83 #: konova/utils/message_templates.py:85
msgid "Geometry conflict detected with {}" msgid "Geometry conflict detected with {}"
msgstr "Geometriekonflikt mit folgenden Einträgen erkannt: {}" msgstr "Geometriekonflikt mit folgenden Einträgen erkannt: {}"
#: konova/utils/message_templates.py:86 #: 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" msgid "This intervention has {} revocations"
msgstr "Dem Eingriff liegen {} Widersprüche vor" msgstr "Dem Eingriff liegen {} Widersprüche vor"
#: konova/utils/message_templates.py:89 #: konova/utils/message_templates.py:92
msgid "Checked on {} by {}" msgid "Checked on {} by {}"
msgstr "Am {} von {} geprüft worden" 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 {}" msgid "Data has changed since last check on {} by {}"
msgstr "" msgstr ""
"Daten wurden nach der letzten Prüfung geändert. Letzte Prüfung am {} durch {}" "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" msgid "Current data not checked yet"
msgstr "Momentane Daten noch nicht geprüft" msgstr "Momentane Daten noch nicht geprüft"
@ -2275,6 +2280,12 @@ msgstr "Für Sie freigegeben - Datensatz kann bearbeitet werden"
msgid "Access not granted" msgid "Access not granted"
msgstr "Nicht freigegeben - Datensatz nur lesbar" 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 #: konova/views/home.py:74 templates/navbars/navbar.html:16
msgid "Home" msgid "Home"
msgstr "Home" msgstr "Home"

Loading…
Cancel
Save