diff --git a/api/urls/urls.py b/api/urls/urls.py index abe9eacf..fe0ddbbc 100644 --- a/api/urls/urls.py +++ b/api/urls/urls.py @@ -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"), ] \ No newline at end of file diff --git a/api/views/method_views.py b/api/views/method_views.py deleted file mode 100644 index 7c6904a5..00000000 --- a/api/views/method_views.py +++ /dev/null @@ -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 \ No newline at end of file diff --git a/intervention/forms/modals/remove.py b/intervention/forms/modals/remove.py new file mode 100644 index 00000000..7052d8f3 --- /dev/null +++ b/intervention/forms/modals/remove.py @@ -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) diff --git a/intervention/urls.py b/intervention/urls.py index 10a6e5f0..bf5f754a 100644 --- a/intervention/urls.py +++ b/intervention/urls.py @@ -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('/resub', InterventionResubmissionView.as_view(), name='resubmission-create'), # Compensations - path('/compensation//remove', remove_compensation_view, name='remove-compensation'), + path('/compensation//remove', RemoveCompensationFromInterventionView.as_view(), name='remove-compensation'), # Documents path('/document/new/', NewInterventionDocumentView.as_view(), name='new-doc'), diff --git a/intervention/views/compensation.py b/intervention/views/compensation.py index 704a04e4..9e0ba095 100644 --- a/intervention/views/compensation.py +++ b/intervention/views/compensation.py @@ -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" diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index c9a22673..246917db 100644 Binary files a/locale/de/LC_MESSAGES/django.mo and b/locale/de/LC_MESSAGES/django.mo differ diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index d7e46d3b..bc74bf27 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -4,16 +4,16 @@ # FIRST AUTHOR , 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 \n" "Language-Team: LANGUAGE \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"