# Refactoring eiv-kom remove view

* refactors removing compensation from intervention view
* drops unused view on api app
This commit is contained in:
mpeltriaux 2025-11-08 13:05:14 +01:00
parent cf6f188ef3
commit 1b6eea2c9e
7 changed files with 251 additions and 281 deletions

View File

@ -7,11 +7,8 @@ Created on: 21.01.22
"""
from django.urls import path, include
from api.views.method_views import generate_new_token_view
app_name = "api"
urlpatterns = [
path("v1/", include("api.urls.v1.urls", namespace="v1")),
path("token/generate", generate_new_token_view, name="generate-new-token"),
]

View File

@ -1,35 +0,0 @@
"""
Author: Michel Peltriaux
Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany
Contact: michel.peltriaux@sgdnord.rlp.de
Created on: 27.01.22
"""
from django.contrib.auth.decorators import login_required
from django.http import HttpRequest, JsonResponse
from api.models import APIUserToken
@login_required
def generate_new_token_view(request: HttpRequest):
""" Handles request for fetching
Args:
request (HttpRequest): The incoming request
Returns:
"""
if request.method == "GET":
token = APIUserToken()
while APIUserToken.objects.filter(token=token.token).exists():
token = APIUserToken()
return JsonResponse(
data={
"gen_data": token.token
}
)
else:
raise NotImplementedError

View File

@ -0,0 +1,22 @@
"""
Author: Michel Peltriaux
Created on: 08.11.25
"""
from django.shortcuts import get_object_or_404
from compensation.models import Compensation
from konova.forms.modals import RemoveModalForm
class RemoveCompensationFromInterventionModalForm(RemoveModalForm):
""" Specific form for removing a compensation from an intervention
"""
def __init__(self, *args, **kwargs):
# The 'instance' that is pushed into the constructor by the generic base class points to the
# intervention instead of the compensation, which shall be deleted. Therefore we need to fetch the compensation
# and replace the instance parameter with that object
instance = get_object_or_404(Compensation, id=kwargs.pop("comp_id"))
kwargs["instance"] = instance
super().__init__(*args, **kwargs)

View File

@ -9,7 +9,7 @@ from django.urls import path
from intervention.autocomplete.intervention import InterventionAutocomplete
from intervention.views.check import InterventionCheckView
from intervention.views.compensation import remove_compensation_view
from intervention.views.compensation import RemoveCompensationFromInterventionView
from intervention.views.deduction import NewInterventionDeductionView, EditInterventionDeductionView, \
RemoveInterventionDeductionView
from intervention.views.document import NewInterventionDocumentView, GetInterventionDocumentView, \
@ -41,7 +41,7 @@ urlpatterns = [
path('<id>/resub', InterventionResubmissionView.as_view(), name='resubmission-create'),
# Compensations
path('<id>/compensation/<comp_id>/remove', remove_compensation_view, name='remove-compensation'),
path('<id>/compensation/<comp_id>/remove', RemoveCompensationFromInterventionView.as_view(), name='remove-compensation'),
# Documents
path('<id>/document/new/', NewInterventionDocumentView.as_view(), name='new-doc'),

View File

@ -5,42 +5,36 @@ Contact: ksp-servicestelle@sgdnord.rlp.de
Created on: 19.08.22
"""
from django.contrib.auth.decorators import login_required
from django.core.exceptions import ObjectDoesNotExist
from django.http import HttpRequest, Http404
from django.contrib.auth.mixins import LoginRequiredMixin
from django.shortcuts import get_object_or_404
from django.urls import reverse
from compensation.models import Compensation
from intervention.forms.modals.remove import RemoveCompensationFromInterventionModalForm
from intervention.models import Intervention
from konova.decorators import shared_access_required, login_required_modal
from konova.forms.modals import RemoveModalForm
from konova.utils.message_templates import COMPENSATION_REMOVED_TEMPLATE
from konova.views.remove import BaseRemoveModalFormView
@login_required_modal
@login_required
@shared_access_required(Intervention, "id")
def remove_compensation_view(request: HttpRequest, id: str, comp_id: str):
""" Renders a modal view for removing the compensation
class RemoveCompensationFromInterventionView(LoginRequiredMixin, BaseRemoveModalFormView):
_MODEL_CLS = Intervention
_FORM_CLS = RemoveCompensationFromInterventionModalForm
_MSG_SUCCESS = COMPENSATION_REMOVED_TEMPLATE
_REDIRECT_URL = "intervention:detail"
Args:
request (HttpRequest): The incoming request
id (str): The compensation's id
def _user_has_shared_access(self, user, **kwargs):
compensation_id = kwargs.get("comp_id", None)
compensation = get_object_or_404(Compensation, id=compensation_id)
return compensation.is_shared_with(user)
Returns:
def _user_has_permission(self, user, **kwargs):
return user.is_default_user()
"""
intervention = get_object_or_404(Intervention, id=id)
try:
comp = intervention.compensations.get(
id=comp_id
)
except ObjectDoesNotExist:
raise Http404("Unknown compensation")
form = RemoveModalForm(request.POST or None, instance=comp, request=request)
return form.process_request(
request=request,
msg_success=COMPENSATION_REMOVED_TEMPLATE.format(comp.identifier),
redirect_url=reverse("intervention:detail", args=(id,)) + "#related_data",
)
def _get_msg_success(self, *args, **kwargs):
compensation_id = kwargs.get("comp_id", None)
compensation = get_object_or_404(Compensation, id=compensation_id)
return self._MSG_SUCCESS.format(compensation.identifier)
def _get_redirect_url(self, *args, **kwargs):
obj = kwargs.get("obj")
return reverse(self._REDIRECT_URL, args=(obj.id,)) + "#related_data"

Binary file not shown.

View File

@ -4,16 +4,16 @@
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#: compensation/filters/eco_account.py:21
#: compensation/forms/modals/compensation_action.py:82
#: compensation/forms/modals/deadline.py:52
#: compensation/forms/modals/payment.py:24
#: compensation/forms/modals/payment.py:35
#: compensation/forms/modals/payment.py:52
#: compensation/forms/modals/compensation_action.py:84
#: compensation/forms/modals/deadline.py:53
#: compensation/forms/modals/payment.py:26
#: compensation/forms/modals/payment.py:37
#: compensation/forms/modals/payment.py:54
#: 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
#: intervention/forms/modals/revocation.py:22
#: intervention/forms/modals/revocation.py:36
#: intervention/forms/modals/revocation.py:49
#: konova/filters/mixins/file_number.py:17
#: konova/filters/mixins/file_number.py:18
#: konova/filters/mixins/geo_reference.py:25
@ -35,7 +35,7 @@
#: 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/remove_form.py:24
#: konova/forms/modals/resubmission_form.py:22
#: konova/forms/modals/resubmission_form.py:38 konova/forms/remove_form.py:25
#: konova/tests/unit/test_forms.py:59 user/forms/modals/api_token.py:17
@ -45,7 +45,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-19 13:56+0200\n"
"POT-Creation-Date: 2025-11-08 13:03+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -127,7 +127,7 @@ msgstr ""
#: analysis/templates/analysis/reports/includes/eco_account/amount.html:3
#: analysis/templates/analysis/reports/includes/intervention/amount.html:3
#: analysis/templates/analysis/reports/includes/old_data/amount.html:3
#: compensation/forms/modals/compensation_action.py:66
#: compensation/forms/modals/compensation_action.py:68
#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:34
#: intervention/templates/intervention/detail/includes/deductions.html:31
msgid "Amount"
@ -261,7 +261,7 @@ msgstr ""
#: analysis/templates/analysis/reports/includes/eco_account/deductions.html:14
#: analysis/templates/analysis/reports/includes/eco_account/deductions.html:16
#: compensation/forms/modals/state.py:59
#: compensation/forms/modals/state.py:55
#: compensation/templates/compensation/detail/compensation/includes/states-after.html:36
#: compensation/templates/compensation/detail/compensation/includes/states-before.html:36
#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:36
@ -296,7 +296,7 @@ msgid "Compensation"
msgstr "Kompensation"
#: analysis/templates/analysis/reports/includes/intervention/compensated_by.html:21
#: compensation/forms/modals/payment.py:65
#: compensation/forms/modals/payment.py:67
msgid "Payment"
msgstr "Zahlung"
@ -401,15 +401,15 @@ msgstr "Bezeichnung"
msgid "An explanatory name"
msgstr "Aussagekräftiger Titel"
#: compensation/forms/compensation.py:49 ema/forms.py:51 ema/forms.py:114
#: compensation/forms/compensation.py:49 ema/forms.py:52 ema/forms.py:115
#: ema/tests/unit/test_forms.py:31 ema/tests/unit/test_forms.py:85
msgid "Compensation XY; Location ABC"
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:51
#: compensation/forms/modals/compensation_action.py:83
#: compensation/forms/modals/deadline.py:52
#: compensation/forms/modals/payment.py:53
#: 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
@ -420,7 +420,7 @@ msgstr "Kompensation XY; Flur ABC"
#: ema/templates/ema/detail/includes/deadlines.html:39
#: ema/templates/ema/detail/includes/documents.html:34
#: intervention/forms/intervention.py:203
#: intervention/forms/modals/revocation.py:47
#: intervention/forms/modals/revocation.py:48
#: intervention/templates/intervention/detail/includes/documents.html:39
#: intervention/templates/intervention/detail/includes/payments.html:34
#: intervention/templates/intervention/detail/includes/revocation.html:38
@ -431,7 +431,7 @@ msgid "Comment"
msgstr "Kommentar"
#: compensation/forms/compensation.py:58
#: compensation/forms/modals/compensation_action.py:83
#: compensation/forms/modals/compensation_action.py:85
#: intervention/forms/intervention.py:205
#: konova/forms/modals/resubmission_form.py:39
msgid "Additional comment"
@ -448,19 +448,18 @@ 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:161
msgid "New compensation"
msgstr "Neue Kompensation"
#: compensation/forms/compensation.py:179
#: compensation/forms/compensation.py:178
msgid ""
"This intervention is currently recorded. You cannot add further "
"compensations as long as it is recorded."
msgstr ""
"Dieser Eingriff ist derzeit verzeichnet. "
"Sie können keine weiteren Kompensationen hinzufügen, so lange er verzeichnet ist."
"Dieser Eingriff ist derzeit verzeichnet. Sie können keine weiteren "
"Kompensationen hinzufügen, so lange er verzeichnet ist."
#: compensation/forms/compensation.py:202
#: compensation/forms/compensation.py:201
msgid "Edit compensation"
msgstr "Bearbeite Kompensation"
@ -483,7 +482,8 @@ msgid "When did the parties agree on this?"
msgstr "Wann wurde dieses Ökokonto offiziell vereinbart?"
#: compensation/forms/eco_account.py:72
#: compensation/views/eco_account/eco_account.py:93
#: compensation/views/eco_account/eco_account.py:49
#: compensation/views/eco_account/eco_account.py:118
msgid "New Eco-Account"
msgstr "Neues Ökokonto"
@ -580,11 +580,11 @@ msgid ""
"production?"
msgstr "Optional: Handelt es sich um eine produktionsintegrierte Kompensation?"
#: compensation/forms/modals/compensation_action.py:29
#: compensation/forms/modals/compensation_action.py:31
msgid "Action Type"
msgstr "Maßnahmentyp"
#: compensation/forms/modals/compensation_action.py:32
#: compensation/forms/modals/compensation_action.py:34
msgid ""
"An action can consist of multiple different action types. All the selected "
"action types are expected to be performed according to the amount and unit "
@ -594,162 +594,158 @@ msgstr ""
"hier gewählten Einträge sollen mit der weiter unten angegebenen Einheit und "
"Menge umgesetzt werden. "
#: compensation/forms/modals/compensation_action.py:37
#: compensation/forms/modals/compensation_action.py:49
#: compensation/forms/modals/compensation_action.py:39
#: compensation/forms/modals/compensation_action.py:51
msgid "Action Type detail"
msgstr "Zusatzmerkmal"
#: compensation/forms/modals/compensation_action.py:40
#: compensation/forms/modals/compensation_action.py:42
msgid "Select the action type detail"
msgstr "Zusatzmerkmal wählen"
#: compensation/forms/modals/compensation_action.py:54
#: compensation/forms/modals/compensation_action.py:56
msgid "Unit"
msgstr "Einheit"
#: compensation/forms/modals/compensation_action.py:57
#: compensation/forms/modals/compensation_action.py:59
msgid "Select the unit"
msgstr "Einheit wählen"
#: compensation/forms/modals/compensation_action.py:69
#: compensation/forms/modals/compensation_action.py:71
msgid "Insert the amount"
msgstr "Menge eingeben"
#: compensation/forms/modals/compensation_action.py:94
#: compensation/forms/modals/compensation_action.py:96
#: compensation/tests/compensation/unit/test_forms.py:42
msgid "New action"
msgstr "Neue Maßnahme"
#: compensation/forms/modals/compensation_action.py:95
#: compensation/forms/modals/compensation_action.py:97
#: compensation/tests/compensation/unit/test_forms.py:43
msgid "Insert data for the new action"
msgstr "Geben Sie die Daten der neuen Maßnahme ein"
#: compensation/forms/modals/compensation_action.py:119
#: compensation/forms/modals/compensation_action.py:122
#: compensation/templates/compensation/detail/compensation/includes/actions.html:68
#: compensation/templates/compensation/detail/eco_account/includes/actions.html:67
#: compensation/tests/compensation/unit/test_forms.py:84
#: compensation/tests/compensation/unit/test_forms.py:88
#: ema/templates/ema/detail/includes/actions.html:65
msgid "Edit action"
msgstr "Maßnahme bearbeiten"
#: compensation/forms/modals/deadline.py:22
#: compensation/forms/modals/deadline.py:23
msgid "Deadline Type"
msgstr "Fristart"
#: compensation/forms/modals/deadline.py:25
#: compensation/forms/modals/deadline.py:26
msgid "Select the deadline type"
msgstr "Fristart wählen"
#: compensation/forms/modals/deadline.py:34
#: compensation/forms/modals/deadline.py:35
#: 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:20
#: intervention/forms/modals/revocation.py:21
#: konova/forms/modals/resubmission_form.py:23
msgid "Date"
msgstr "Datum"
#: compensation/forms/modals/deadline.py:37
#: compensation/forms/modals/deadline.py:38
msgid "Select date"
msgstr "Datum wählen"
#: compensation/forms/modals/deadline.py:53
#: compensation/forms/modals/payment.py:53
#: intervention/forms/modals/revocation.py:49
#: compensation/forms/modals/deadline.py:54
#: compensation/forms/modals/payment.py:55
#: intervention/forms/modals/revocation.py:50
#: konova/forms/modals/document_form.py:63
msgid "Additional comment, maximum {} letters"
msgstr "Zusätzlicher Kommentar, maximal {} Zeichen"
#: compensation/forms/modals/deadline.py:65
#: compensation/forms/modals/deadline.py:66
#: konova/tests/unit/test_deadline.py:29
msgid "New deadline"
msgstr "Neue Frist"
#: compensation/forms/modals/deadline.py:66
#: compensation/forms/modals/deadline.py:67
#: konova/tests/unit/test_deadline.py:30
msgid "Insert data for the new deadline"
msgstr "Geben Sie die Daten der neuen Frist ein"
#: compensation/forms/modals/deadline.py:78
#: compensation/forms/modals/deadline.py:79
#: konova/tests/unit/test_deadline.py:57
msgid "Please explain this 'other' type of deadline."
msgstr "Bitte erklären Sie um welchen 'sonstigen' Termin es sich handelt."
#: compensation/forms/modals/deadline.py:95
#: compensation/forms/modals/deadline.py:97
#: 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:25
#: compensation/forms/modals/payment.py:27
msgid "in Euro"
msgstr "in Euro"
#: compensation/forms/modals/payment.py:34
#: compensation/forms/modals/payment.py:36
#: intervention/templates/intervention/detail/includes/payments.html:31
msgid "Due on"
msgstr "Fällig am"
#: compensation/forms/modals/payment.py:38
#: compensation/forms/modals/payment.py:40
msgid "Due on which date"
msgstr "Zahlung wird an diesem Datum erwartet"
#: compensation/forms/modals/payment.py:66
#: compensation/forms/modals/payment.py:68
msgid "Add a payment for intervention '{}'"
msgstr "Neue Ersatzzahlung zu Eingriff '{}' hinzufügen"
#: compensation/forms/modals/payment.py:89
#: compensation/forms/modals/payment.py:91
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:108
#: compensation/forms/modals/payment.py:111
#: intervention/templates/intervention/detail/includes/payments.html:67
msgid "Edit payment"
msgstr "Zahlung bearbeiten"
#: compensation/forms/modals/state.py:33
#: compensation/forms/modals/state.py:29
msgid "Biotope Type"
msgstr "Biotoptyp"
#: compensation/forms/modals/state.py:36
#: compensation/forms/modals/state.py:32
msgid "Select the biotope type"
msgstr "Biotoptyp wählen"
#: compensation/forms/modals/state.py:40 compensation/forms/modals/state.py:52
#: compensation/forms/modals/state.py:36 compensation/forms/modals/state.py:48
msgid "Biotope additional type"
msgstr "Zusatzbezeichnung"
#: compensation/forms/modals/state.py:43
#: compensation/forms/modals/state.py:39
msgid "Select an additional biotope type"
msgstr "Zusatzbezeichnung wählen"
#: compensation/forms/modals/state.py:62
#: compensation/forms/modals/state.py:58
#: intervention/forms/modals/deduction.py:49
msgid "in m²"
msgstr ""
#: compensation/forms/modals/state.py:73
#: compensation/tests/compensation/unit/test_forms.py:175
#: compensation/forms/modals/state.py:71
#: compensation/tests/compensation/unit/test_forms.py:179
msgid "New state"
msgstr "Neuer Zustand"
#: compensation/forms/modals/state.py:74
#: compensation/tests/compensation/unit/test_forms.py:176
#: compensation/forms/modals/state.py:72
#: compensation/tests/compensation/unit/test_forms.py:180
msgid "Insert data for the new state"
msgstr "Geben Sie die Daten des neuen Zustandes ein"
#: compensation/forms/modals/state.py:91 konova/forms/modals/base_form.py:32
msgid "Object removed"
msgstr "Objekt entfernt"
#: compensation/forms/modals/state.py:146
#: compensation/forms/modals/state.py:99
#: compensation/templates/compensation/detail/compensation/includes/states-after.html:62
#: compensation/templates/compensation/detail/compensation/includes/states-before.html:62
#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:62
#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:62
#: compensation/tests/compensation/unit/test_forms.py:236
#: compensation/tests/compensation/unit/test_forms.py:260
#: ema/templates/ema/detail/includes/states-after.html:60
#: ema/templates/ema/detail/includes/states-before.html:60
msgid "Edit state"
@ -945,7 +941,7 @@ msgstr "Öffentlicher Bericht"
#: ema/templates/ema/detail/includes/controls.html:15
#: intervention/templates/intervention/detail/includes/controls.html:15
#: konova/forms/modals/resubmission_form.py:51
#: konova/tests/unit/test_forms.py:302 konova/tests/unit/test_forms.py:316
#: konova/tests/unit/test_forms.py:301 konova/tests/unit/test_forms.py:315
#: templates/email/resubmission/resubmission.html:4
msgid "Resubmission"
msgstr "Wiedervorlage"
@ -1023,7 +1019,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:141 konova/tests/unit/test_forms.py:118
#: konova/forms/modals/document_form.py:143 konova/tests/unit/test_forms.py:118
msgid "Edit document"
msgstr "Dokument bearbeiten"
@ -1236,7 +1232,7 @@ msgid "Recorded on"
msgstr "Verzeichnet am"
#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:65
#: intervention/forms/modals/deduction.py:177
#: intervention/forms/modals/deduction.py:178
#: intervention/templates/intervention/detail/includes/deductions.html:60
msgid "Edit Deduction"
msgstr "Abbuchung bearbeiten"
@ -1296,49 +1292,37 @@ msgstr ""
msgid "Responsible data"
msgstr "Daten zu den verantwortlichen Stellen"
#: compensation/views/compensation/compensation.py:35
#: compensation/views/compensation/compensation.py:32
msgid "Compensations - Overview"
msgstr "Kompensationen - Übersicht"
#: compensation/views/compensation/compensation.py:52
#, fuzzy
#| msgid "New compensation"
#: compensation/views/compensation/compensation.py:49
msgid "New Compensation"
msgstr "Neue Kompensation"
#: compensation/views/compensation/compensation.py:208
#: konova/utils/message_templates.py:40
msgid "Compensation {} edited"
msgstr "Kompensation {} bearbeitet"
#: compensation/views/compensation/compensation.py:231
#: compensation/views/eco_account/eco_account.py:159 ema/views/ema.py:59
#: intervention/views/intervention.py:59 intervention/views/intervention.py:179
#: konova/views/base.py:239
msgid "Edit {}"
msgstr "Bearbeite {}"
#: compensation/views/eco_account/eco_account.py:32
#: compensation/views/eco_account/eco_account.py:34
msgid "Eco-account - Overview"
msgstr "Ökokonten - Übersicht"
#: compensation/views/eco_account/eco_account.py:70
#: compensation/views/eco_account/eco_account.py:95
msgid "Eco-Account {} added"
msgstr "Ökokonto {} hinzugefügt"
#: compensation/views/eco_account/eco_account.py:136
#: compensation/views/eco_account/eco_account.py:161
msgid "Eco-Account {} edited"
msgstr "Ökokonto {} bearbeitet"
#: compensation/views/eco_account/eco_account.py:260
msgid "Eco-account removed"
msgstr "Ökokonto entfernt"
#: compensation/views/eco_account/eco_account.py:184 ema/views/ema.py:51
#: intervention/views/intervention.py:58 intervention/views/intervention.py:178
#: konova/views/base.py:524
msgid "Edit {}"
msgstr "Bearbeite {}"
#: ema/forms.py:42 ema/tests/unit/test_forms.py:27 ema/views/ema.py:42
#: ema/forms.py:43 ema/tests/unit/test_forms.py:27 ema/views/ema.py:38
msgid "New EMA"
msgstr "Neue EMA hinzufügen"
#: ema/forms.py:108 ema/tests/unit/test_forms.py:81
#: ema/forms.py:109 ema/tests/unit/test_forms.py:81
msgid "Edit EMA"
msgstr "Bearbeite EMA"
@ -1362,14 +1346,10 @@ msgstr ""
msgid "Payment funded compensation"
msgstr "Ersatzzahlungsmaßnahme"
#: ema/views/ema.py:26
#: ema/views/ema.py:22
msgid "EMAs - Overview"
msgstr "EMAs - Übersicht"
#: ema/views/ema.py:138
msgid "EMA removed"
msgstr "EMA entfernt"
#: intervention/forms/intervention.py:49
msgid "Construction XY; Location ABC"
msgstr "Bauvorhaben XY; Flur ABC"
@ -1430,7 +1410,7 @@ msgstr "Datum Bestandskraft bzw. Rechtskraft"
#: intervention/forms/intervention.py:216
#: intervention/tests/unit/test_forms.py:36
#: intervention/views/intervention.py:51
#: intervention/views/intervention.py:50
msgid "New intervention"
msgstr "Neuer Eingriff"
@ -1452,7 +1432,7 @@ msgid "Run check"
msgstr "Prüfung vornehmen"
#: intervention/forms/modals/check.py:36 konova/forms/modals/record_form.py:30
#: konova/tests/unit/test_forms.py:155
#: konova/tests/unit/test_forms.py:154
msgid "The necessary control steps have been performed:"
msgstr "Die notwendigen Kontrollschritte wurden durchgeführt:"
@ -1496,26 +1476,26 @@ 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:22
#: intervention/forms/modals/revocation.py:23
msgid "Date of revocation"
msgstr "Datum des Widerspruchs"
#: intervention/forms/modals/revocation.py:34
#: intervention/forms/modals/revocation.py:35
#: intervention/templates/intervention/detail/includes/revocation.html:35
msgid "Document"
msgstr "Dokument"
#: intervention/forms/modals/revocation.py:37
#: intervention/forms/modals/revocation.py:38
msgid "Must be smaller than 15 Mb"
msgstr "Muss kleiner als 15 Mb sein"
#: intervention/forms/modals/revocation.py:62
#: intervention/forms/modals/revocation.py:63
#: intervention/templates/intervention/detail/includes/revocation.html:18
#: intervention/tests/unit/test_forms.py:234
msgid "Add revocation"
msgstr "Widerspruch hinzufügen"
#: intervention/forms/modals/revocation.py:80
#: intervention/forms/modals/revocation.py:82
#: intervention/templates/intervention/detail/includes/revocation.html:69
msgid "Edit revocation"
msgstr "Widerspruch bearbeiten"
@ -1600,7 +1580,7 @@ msgid "Amount"
msgstr "Betrag"
#: intervention/templates/intervention/detail/includes/payments.html:61
#: konova/utils/message_templates.py:25
#: konova/utils/message_templates.py:38
msgid "This data is not shared with you"
msgstr "Diese Daten sind für Sie nicht freigegeben"
@ -1662,22 +1642,18 @@ msgstr ""
"Kein Ausgleich jeglicher Art gefunden (Kompensation, Ersatzzahlung, "
"Abbuchung)"
#: intervention/views/check.py:36
#: intervention/views/check.py:19
msgid "Check performed"
msgstr "Prüfung durchgeführt"
#: intervention/views/intervention.py:33
#: intervention/views/intervention.py:32
msgid "Interventions - Overview"
msgstr "Eingriffe - Übersicht"
#: intervention/views/intervention.py:154
#: intervention/views/intervention.py:153
msgid "Intervention {} edited"
msgstr "Eingriff {} bearbeitet"
#: intervention/views/intervention.py:204
msgid "{} removed"
msgstr "{} entfernt"
#: konova/decorators.py:32
msgid "You need to be staff to perform this action!"
msgstr "Hierfür müssen Sie Mitarbeiter sein!"
@ -1794,11 +1770,11 @@ msgid ""
"history"
msgstr "Sucht nach Einträgen, an denen diese Person gearbeitet hat"
#: konova/forms/base_form.py:23 templates/form/collapsable/form.html:62
#: konova/forms/base_form.py:19 templates/form/collapsable/form.html:62
msgid "Save"
msgstr "Speichern"
#: konova/forms/base_form.py:74
#: konova/forms/base_form.py:69
msgid "Not editable"
msgstr "Nicht editierbar"
@ -1812,6 +1788,10 @@ 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/base_form.py:32
msgid "Object removed"
msgstr "Objekt entfernt"
#: 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?"
@ -1832,35 +1812,35 @@ msgstr "Dokument hinzugefügt"
msgid "Confirm record"
msgstr "Verzeichnen bestätigen"
#: konova/forms/modals/record_form.py:29 konova/tests/unit/test_forms.py:153
#: konova/forms/modals/record_form.py:29 konova/tests/unit/test_forms.py:152
msgid "Record data"
msgstr "Daten verzeichnen"
#: konova/forms/modals/record_form.py:36 konova/tests/unit/test_forms.py:168
#: konova/forms/modals/record_form.py:36 konova/tests/unit/test_forms.py:167
msgid "Confirm unrecord"
msgstr "Entzeichnen bestätigen"
#: konova/forms/modals/record_form.py:37 konova/tests/unit/test_forms.py:167
#: konova/forms/modals/record_form.py:37 konova/tests/unit/test_forms.py:166
msgid "Unrecord data"
msgstr "Daten entzeichnen"
#: konova/forms/modals/record_form.py:38 konova/tests/unit/test_forms.py:170
#: konova/forms/modals/record_form.py:38 konova/tests/unit/test_forms.py:169
msgid "I, {} {}, confirm that this data must be unrecorded."
msgstr ""
"Ich, {} {}, bestätige, dass diese Daten wieder entzeichnet werden müssen."
#: konova/forms/modals/remove_form.py:22 konova/forms/remove_form.py:24
#: konova/forms/modals/remove_form.py:23 konova/forms/remove_form.py:24
#: user/forms/modals/api_token.py:16
msgid "Confirm"
msgstr "Bestätige"
#: konova/forms/modals/remove_form.py:32 konova/forms/remove_form.py:36
#: konova/tests/unit/test_forms.py:209 konova/tests/unit/test_forms.py:261
#: konova/forms/modals/remove_form.py:33 konova/forms/remove_form.py:36
#: konova/tests/unit/test_forms.py:208 konova/tests/unit/test_forms.py:260
msgid "Remove"
msgstr "Löschen"
#: konova/forms/modals/remove_form.py:33 konova/tests/unit/test_forms.py:210
#: konova/tests/unit/test_forms.py:262
#: konova/forms/modals/remove_form.py:34 konova/tests/unit/test_forms.py:209
#: konova/tests/unit/test_forms.py:261
msgid "Are you sure?"
msgstr "Sind Sie sicher?"
@ -1869,7 +1849,7 @@ msgid "When do you want to be reminded?"
msgstr "Wann wollen Sie erinnert werden?"
#: konova/forms/modals/resubmission_form.py:52
#: konova/tests/unit/test_forms.py:303 konova/tests/unit/test_forms.py:317
#: konova/tests/unit/test_forms.py:302 konova/tests/unit/test_forms.py:316
msgid "Set your resubmission for this entry."
msgstr "Setzen Sie eine Wiedervorlage für diesen Eintrag."
@ -2094,14 +2074,42 @@ msgstr "Hierfür müssen Sie einer anderen Nutzergruppe angehören!"
msgid "Status of Checked reset"
msgstr "Status 'Geprüft' wurde zurückgesetzt"
#: konova/utils/message_templates.py:22
#: konova/utils/message_templates.py:24
msgid "New team added"
msgstr "Neues Team hinzugefügt"
#: konova/utils/message_templates.py:25
msgid "Team edited"
msgstr "Team bearbeitet"
#: konova/utils/message_templates.py:26
msgid "Team removed"
msgstr "Team gelöscht"
#: konova/utils/message_templates.py:27
msgid "Left Team"
msgstr "Team verlassen"
#: konova/utils/message_templates.py:30
msgid "{} removed"
msgstr "{} entfernt"
#: konova/utils/message_templates.py:33
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:26
#: konova/utils/message_templates.py:34
msgid "{} recorded"
msgstr "{} verzeichnet"
#: konova/utils/message_templates.py:35
msgid "{} unrecorded"
msgstr "{} entzeichnet"
#: konova/utils/message_templates.py:39
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 "
@ -2111,11 +2119,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:27
#: konova/utils/message_templates.py:40
msgid "Share settings updated"
msgstr "Freigabe Einstellungen aktualisiert"
#: konova/utils/message_templates.py:28
#: konova/utils/message_templates.py:41
msgid ""
"Do not forget to share your entry! Currently you are the only one having "
"shared access."
@ -2123,15 +2131,15 @@ msgstr ""
"Denken Sie daran Ihren Eintrag freizugeben! Aktuell haben nur Sie eine "
"Freigabe hierauf."
#: konova/utils/message_templates.py:31
#: konova/utils/message_templates.py:44
msgid "Unsupported file type"
msgstr "Dateiformat nicht unterstützt"
#: konova/utils/message_templates.py:32
#: konova/utils/message_templates.py:45
msgid "File too large"
msgstr "Datei zu groß"
#: konova/utils/message_templates.py:35
#: konova/utils/message_templates.py:48
msgid ""
"Action canceled. Eco account is recorded or deductions exist. Only "
"conservation office member can perform this action."
@ -2139,119 +2147,123 @@ 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:38
#: konova/utils/message_templates.py:51
msgid "Compensation {} added"
msgstr "Kompensation {} hinzugefügt"
#: konova/utils/message_templates.py:39
#: konova/utils/message_templates.py:52
msgid "Compensation {} removed"
msgstr "Kompensation {} entfernt"
#: konova/utils/message_templates.py:41
#: konova/utils/message_templates.py:53
msgid "Compensation {} edited"
msgstr "Kompensation {} bearbeitet"
#: konova/utils/message_templates.py:54
msgid "Added compensation action"
msgstr "Maßnahme hinzugefügt"
#: konova/utils/message_templates.py:42
#: konova/utils/message_templates.py:55
msgid "Added compensation state"
msgstr "Zustand hinzugefügt"
#: konova/utils/message_templates.py:45
#: konova/utils/message_templates.py:58
msgid "State removed"
msgstr "Zustand gelöscht"
#: konova/utils/message_templates.py:46
#: konova/utils/message_templates.py:59
msgid "State edited"
msgstr "Zustand bearbeitet"
#: konova/utils/message_templates.py:47
#: konova/utils/message_templates.py:60
msgid "State added"
msgstr "Zustand hinzugefügt"
#: konova/utils/message_templates.py:50
#: konova/utils/message_templates.py:63
msgid "Action added"
msgstr "Maßnahme hinzugefügt"
#: konova/utils/message_templates.py:51
#: konova/utils/message_templates.py:64
msgid "Action edited"
msgstr "Maßnahme bearbeitet"
#: konova/utils/message_templates.py:52
#: konova/utils/message_templates.py:65
msgid "Action removed"
msgstr "Maßnahme entfernt"
#: konova/utils/message_templates.py:55
#: konova/utils/message_templates.py:68
msgid "Deduction added"
msgstr "Abbuchung hinzugefügt"
#: konova/utils/message_templates.py:56
#: konova/utils/message_templates.py:69
msgid "Deduction edited"
msgstr "Abbuchung bearbeitet"
#: konova/utils/message_templates.py:57
#: konova/utils/message_templates.py:70
msgid "Deduction removed"
msgstr "Abbuchung entfernt"
#: konova/utils/message_templates.py:58
#: konova/utils/message_templates.py:71
msgid "Unknown deduction"
msgstr "Unbekannte Abbuchung"
#: konova/utils/message_templates.py:61
#: konova/utils/message_templates.py:74
msgid "Deadline added"
msgstr "Frist/Termin hinzugefügt"
#: konova/utils/message_templates.py:62
#: konova/utils/message_templates.py:75
msgid "Deadline edited"
msgstr "Frist/Termin bearbeitet"
#: konova/utils/message_templates.py:63
#: konova/utils/message_templates.py:76
msgid "Deadline removed"
msgstr "Frist/Termin gelöscht"
#: konova/utils/message_templates.py:66
#: konova/utils/message_templates.py:79
msgid "Payment added"
msgstr "Zahlung hinzugefügt"
#: konova/utils/message_templates.py:67
#: konova/utils/message_templates.py:80
msgid "Payment edited"
msgstr "Zahlung bearbeitet"
#: konova/utils/message_templates.py:68
#: konova/utils/message_templates.py:81
msgid "Payment removed"
msgstr "Zahlung gelöscht"
#: konova/utils/message_templates.py:71
#: konova/utils/message_templates.py:84
msgid "Revocation added"
msgstr "Widerspruch hinzugefügt"
#: konova/utils/message_templates.py:72
#: konova/utils/message_templates.py:85
msgid "Revocation edited"
msgstr "Widerspruch bearbeitet"
#: konova/utils/message_templates.py:73
#: konova/utils/message_templates.py:86
msgid "Revocation removed"
msgstr "Widerspruch entfernt"
#: konova/utils/message_templates.py:76
#: konova/utils/message_templates.py:89
msgid "Document '{}' deleted"
msgstr "Dokument '{}' gelöscht"
#: konova/utils/message_templates.py:77
#: konova/utils/message_templates.py:90
msgid "Document added"
msgstr "Dokument hinzugefügt"
#: konova/utils/message_templates.py:78
#: konova/utils/message_templates.py:91
msgid "Document edited"
msgstr "Dokument bearbeitet"
#: konova/utils/message_templates.py:81
#: konova/utils/message_templates.py:94
msgid "Edited general data"
msgstr "Allgemeine Daten bearbeitet"
#: konova/utils/message_templates.py:84
#: konova/utils/message_templates.py:97
msgid "Geometry conflict detected with {}"
msgstr "Geometriekonflikt mit folgenden Einträgen erkannt: {}"
#: konova/utils/message_templates.py:85
#: konova/utils/message_templates.py:98
msgid ""
"The geometry contained more than {} vertices. It had to be simplified to "
"match the allowed limit of {} vertices."
@ -2259,7 +2271,7 @@ msgstr ""
"Die Geometrie enthielt mehr als {} Eckpunkte. Sie musste vereinfacht werden "
"um die Obergrenze von {} erlaubten Eckpunkten einzuhalten."
#: konova/utils/message_templates.py:86
#: konova/utils/message_templates.py:99
msgid ""
"The geometry contained {} parts which have been detected as invalid (e.g. "
"too small to be valid). These parts have been removed. Please check the "
@ -2269,27 +2281,31 @@ msgstr ""
"Kleinstflächen).Diese Bestandteile wurden automatisch entfernt. Bitte "
"überprüfen Sie die angepasste Geometrie."
#: konova/utils/message_templates.py:89
#: konova/utils/message_templates.py:102
msgid "This intervention has {} revocations"
msgstr "Dem Eingriff liegen {} Widersprüche vor"
#: konova/utils/message_templates.py:92
#: konova/utils/message_templates.py:105
msgid "Checked on {} by {}"
msgstr "Am {} von {} geprüft worden"
#: konova/utils/message_templates.py:93
#: konova/utils/message_templates.py:106
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:94
#: konova/utils/message_templates.py:107
msgid "Current data not checked yet"
msgstr "Momentane Daten noch nicht geprüft"
#: konova/utils/message_templates.py:97
#: konova/utils/message_templates.py:110
msgid "New token generated. Administrators need to validate."
msgstr "Neuer Token generiert. Administratoren sind informiert."
#: konova/utils/message_templates.py:113
msgid "Resubmission set"
msgstr "Wiedervorlage gesetzt"
#: konova/utils/quality.py:32
msgid "missing"
msgstr "fehlend"
@ -2308,11 +2324,11 @@ msgstr ""
"Dieses Datum ist unrealistisch. Geben Sie bitte das korrekte Datum ein "
"(>1950)."
#: konova/views/base.py:209
#: konova/views/base.py:483
msgid "{} added"
msgstr "{} hinzugefügt"
#: konova/views/base.py:281
#: konova/views/base.py:600
msgid "{} edited"
msgstr "{} bearbeitet"
@ -2324,26 +2340,10 @@ msgstr "Home"
msgid "Log"
msgstr "Log"
#: konova/views/record.py:30
msgid "{} unrecorded"
msgstr "{} entzeichnet"
#: konova/views/record.py:30
msgid "{} recorded"
msgstr "{} verzeichnet"
#: konova/views/record.py:35
msgid "Errors found:"
msgstr "Fehler gefunden:"
#: konova/views/report.py:21
msgid "Report {}"
msgstr "Bericht {}"
#: konova/views/resubmission.py:39
msgid "Resubmission set"
msgstr "Wiedervorlage gesetzt"
#: konova/views/share.py:46
msgid "{} has already been shared with you"
msgstr "{} wurde bereits für Sie freigegeben"
@ -2884,11 +2884,11 @@ msgstr ""
"Falls die Geometrie nicht leer ist, werden die Flurstücke aktuell berechnet. "
"Bitte laden Sie diese Seite in ein paar Augenblicken erneut..."
#: user/forms/modals/api_token.py:25
#: user/forms/modals/api_token.py:26
msgid "Generate API Token"
msgstr "API Token generieren"
#: user/forms/modals/api_token.py:29
#: user/forms/modals/api_token.py:30
msgid ""
"You are about to create a new API token. The existing one will not be usable "
"afterwards."
@ -2896,7 +2896,7 @@ msgstr ""
"Wenn Sie fortfahren, generieren Sie einen neuen API Token. Ihren "
"existierenden werden Sie dann nicht länger nutzen können."
#: user/forms/modals/api_token.py:31
#: user/forms/modals/api_token.py:32
msgid "A new token needs to be validated by an administrator!"
msgstr "Neue Tokens müssen durch Administratoren freigeschaltet werden!"
@ -3066,7 +3066,7 @@ msgid "Manage teams"
msgstr ""
#: user/templates/user/index.html:53 user/templates/user/team/index.html:19
#: user/views/views.py:134
#: user/views/teams.py:36
msgid "Teams"
msgstr ""
@ -3122,41 +3122,33 @@ msgstr "Token noch nicht freigeschaltet"
msgid "Valid until"
msgstr "Läuft ab am"
#: user/views/api_token.py:34
#: user/views/api_token.py:36
msgid "User API token"
msgstr "API Nutzer Token"
#: user/views/views.py:31
#: user/views/users.py:26
msgid "User settings"
msgstr "Einstellungen"
#: user/views/views.py:44
#: user/views/users.py:39
msgid "User notifications"
msgstr "Benachrichtigungen"
#: user/views/views.py:64
#: user/views/users.py:59
msgid "Notifications edited"
msgstr "Benachrichtigungen bearbeitet"
#: user/views/views.py:152
msgid "New team added"
msgstr "Neues Team hinzugefügt"
#~ msgid "Eco-account removed"
#~ msgstr "Ökokonto entfernt"
#: user/views/views.py:167
msgid "Team edited"
msgstr "Team bearbeitet"
#~ msgid "EMA removed"
#~ msgstr "EMA entfernt"
#: user/views/views.py:182
msgid "Team removed"
msgstr "Team gelöscht"
#~ msgid "Errors found:"
#~ msgstr "Fehler gefunden:"
#: user/views/views.py:197
msgid "You are not a member of this team"
msgstr "Sie sind kein Mitglied dieses Teams"
#: user/views/views.py:204
msgid "Left Team"
msgstr "Team verlassen"
#~ msgid "You are not a member of this team"
#~ msgstr "Sie sind kein Mitglied dieses Teams"
#~ msgid "EMA {} added"
#~ msgstr "EMA {} hinzugefügt"