From b17b0b5144145e4136cf399251c945fe00ed0cb9 Mon Sep 17 00:00:00 2001 From: mpeltriaux Date: Wed, 2 Feb 2022 15:16:25 +0100 Subject: [PATCH] # 86 Proper log detail * adds support for payment adding/deleting to intervention log * adds support for deduction adding/deleting to intervention/ecoaccount log * improves code snippets * drops add_deduction() methods for ecoaccount and intervention in favor of simpler creation in NewDeductionModalForm * adds messages * adds/updates translations --- compensation/forms/modalForms.py | 4 +- compensation/models/compensation.py | 2 +- compensation/models/eco_account.py | 39 +- compensation/models/payment.py | 7 + compensation/views/eco_account.py | 6 +- compensation/views/payment.py | 5 +- intervention/forms/forms.py | 7 +- intervention/forms/modalForms.py | 28 +- intervention/models/intervention.py | 27 +- .../detail/includes/deductions.html | 2 +- intervention/urls.py | 4 +- intervention/views.py | 35 +- konova/forms.py | 2 +- konova/models/object.py | 7 +- konova/utils/message_templates.py | 8 + locale/de/LC_MESSAGES/django.mo | Bin 36575 -> 36588 bytes locale/de/LC_MESSAGES/django.po | 372 +++++++++--------- 17 files changed, 289 insertions(+), 266 deletions(-) diff --git a/compensation/forms/modalForms.py b/compensation/forms/modalForms.py index 9e7419b6..9331f60a 100644 --- a/compensation/forms/modalForms.py +++ b/compensation/forms/modalForms.py @@ -21,7 +21,7 @@ from konova.contexts import BaseContext from konova.forms import BaseModalForm, NewDocumentForm from konova.models import DeadlineType from konova.utils.message_templates import FORM_INVALID, ADDED_COMPENSATION_STATE, ADDED_DEADLINE, \ - ADDED_COMPENSATION_ACTION + ADDED_COMPENSATION_ACTION, PAYMENT_ADDED class NewPaymentForm(BaseModalForm): @@ -100,7 +100,7 @@ class NewPaymentForm(BaseModalForm): def save(self): pay = self.instance.add_payment(self) - self.instance.mark_as_edited(self.user, self.request) + self.instance.mark_as_edited(self.user, self.request, edit_comment=PAYMENT_ADDED) return pay diff --git a/compensation/models/compensation.py b/compensation/models/compensation.py index de5a3461..788f4b4c 100644 --- a/compensation/models/compensation.py +++ b/compensation/models/compensation.py @@ -326,7 +326,7 @@ class Compensation(AbstractCompensation, CEFMixin, CoherenceMixin): Returns: """ - self.intervention.mark_as_edited(user, request, edit_comment, reset_recorded) + return self.intervention.mark_as_edited(user, request, edit_comment, reset_recorded) def is_ready_for_publish(self) -> bool: """ Not inherited by RecordableObjectMixin diff --git a/compensation/models/eco_account.py b/compensation/models/eco_account.py index 8e4d32e1..26ac44d7 100644 --- a/compensation/models/eco_account.py +++ b/compensation/models/eco_account.py @@ -9,10 +9,10 @@ import shutil from django.urls import reverse -from user.models import User +from konova.utils.message_templates import DEDUCTION_REMOVED from django.core.exceptions import ValidationError from django.core.validators import MinValueValidator -from django.db import models, transaction +from django.db import models from django.db.models import Sum, QuerySet from django.utils.translation import gettext_lazy as _ @@ -22,7 +22,6 @@ from compensation.utils.quality import EcoAccountQualityChecker from konova.models import ShareableObjectMixin, RecordableObjectMixin, AbstractDocument, BaseResource, \ generate_document_file_upload_path from konova.settings import DEFAULT_SRID_RLP, LANIS_LINK_TEMPLATE -from user.models import UserActionLogEntry class EcoAccount(AbstractCompensation, ShareableObjectMixin, RecordableObjectMixin): @@ -167,34 +166,6 @@ class EcoAccount(AbstractCompensation, ShareableObjectMixin, RecordableObjectMix ) return docs - def add_deduction(self, form): - """ Adds a new deduction to the intervention - - Args: - form (NewDeductionModalForm): The form holding the data - - Returns: - - """ - form_data = form.cleaned_data - user = form.user - - with transaction.atomic(): - # Create log entry - user_action_create = UserActionLogEntry.get_created_action(user) - user_action_edit = UserActionLogEntry.get_edited_action(user) - self.log.add(user_action_edit) - self.modified = user_action_edit - self.save() - - deduction = EcoAccountDeduction.objects.create( - intervention=form_data["intervention"], - account=self, - surface=form_data["surface"], - created=user_action_create, - ) - return deduction - def is_ready_for_publish(self) -> bool: """ Checks whether the data passes all constraints for being publishable @@ -295,3 +266,9 @@ class EcoAccountDeduction(BaseResource): def __str__(self): return "{} of {}".format(self.surface, self.account) + + def delete(self, user=None, *args, **kwargs): + if user is not None: + self.intervention.mark_as_edited(user, edit_comment=DEDUCTION_REMOVED) + self.account.mark_as_edited(user, edit_comment=DEDUCTION_REMOVED, reset_recorded=False) + super().delete(*args, **kwargs) \ No newline at end of file diff --git a/compensation/models/payment.py b/compensation/models/payment.py index ec56910d..48eec3fc 100644 --- a/compensation/models/payment.py +++ b/compensation/models/payment.py @@ -10,6 +10,8 @@ from django.db import models from intervention.models import Intervention from konova.models import BaseResource +from konova.utils.message_templates import PAYMENT_REMOVED +from user.models import UserActionLogEntry class Payment(BaseResource): @@ -35,3 +37,8 @@ class Payment(BaseResource): ordering = [ "-amount", ] + + def delete(self, user=None, *args, **kwargs): + if user is not None: + self.intervention.mark_as_edited(user, edit_comment=PAYMENT_REMOVED) + super().delete(*args, **kwargs) diff --git a/compensation/views/eco_account.py b/compensation/views/eco_account.py index d1d6ddbf..479e66f8 100644 --- a/compensation/views/eco_account.py +++ b/compensation/views/eco_account.py @@ -30,7 +30,7 @@ from konova.sub_settings.context_settings import TAB_TITLE_IDENTIFIER from konova.utils.documents import get_document, remove_document from konova.utils.generators import generate_qr_code from konova.utils.message_templates import IDENTIFIER_REPLACED, FORM_INVALID, DATA_UNSHARED, DATA_UNSHARED_EXPLANATION, \ - CANCEL_ACC_RECORDED_OR_DEDUCTED + CANCEL_ACC_RECORDED_OR_DEDUCTED, DEDUCTION_REMOVED, DEDUCTION_ADDED from konova.utils.user_checks import in_group @@ -288,7 +288,7 @@ def deduction_remove_view(request: HttpRequest, id: str, deduction_id: str): form = RemoveModalForm(request.POST or None, instance=eco_deduction, request=request) return form.process_request( request=request, - msg_success=_("Deduction removed"), + msg_success=DEDUCTION_REMOVED, redirect_url=reverse("compensation:acc:detail", args=(id,)) + "#related_data" ) @@ -564,7 +564,7 @@ def new_deduction_view(request: HttpRequest, id: str): form = NewDeductionModalForm(request.POST or None, instance=acc, request=request) return form.process_request( request, - msg_success=_("Deduction added"), + msg_success=DEDUCTION_ADDED, redirect_url=reverse("compensation:acc:detail", args=(id,)) + "#related_data" ) diff --git a/compensation/views/payment.py b/compensation/views/payment.py index 7caf847e..b715a3ae 100644 --- a/compensation/views/payment.py +++ b/compensation/views/payment.py @@ -16,6 +16,7 @@ from compensation.models import Payment from intervention.models import Intervention from konova.decorators import default_group_required from konova.forms import RemoveModalForm +from konova.utils.message_templates import PAYMENT_ADDED, PAYMENT_REMOVED @login_required @@ -34,7 +35,7 @@ def new_payment_view(request: HttpRequest, intervention_id: str): form = NewPaymentForm(request.POST or None, instance=intervention, request=request) return form.process_request( request, - msg_success=_("Payment added"), + msg_success=PAYMENT_ADDED, redirect_url=reverse("intervention:detail", args=(intervention_id,)) + "#related_data" ) @@ -55,7 +56,7 @@ def payment_remove_view(request: HttpRequest, id: str): form = RemoveModalForm(request.POST or None, instance=payment, request=request) return form.process_request( request=request, - msg_success=_("Payment removed"), + msg_success=PAYMENT_REMOVED, redirect_url=reverse("intervention:detail", args=(payment.intervention_id,)) + "#related_data" ) diff --git a/intervention/forms/forms.py b/intervention/forms/forms.py index 6f098151..1c5cf1c6 100644 --- a/intervention/forms/forms.py +++ b/intervention/forms/forms.py @@ -7,6 +7,8 @@ Created on: 02.12.20 """ from dal import autocomplete from django import forms + +from konova.utils.message_templates import EDITED_GENERAL_DATA from user.models import User from django.db import transaction from django.urls import reverse, reverse_lazy @@ -333,7 +335,7 @@ class EditInterventionForm(NewInterventionForm): self.instance.responsible.conservation_file_number = conservation_file_number self.instance.responsible.save() - user_action = UserActionLogEntry.get_edited_action(user) + user_action = self.instance.mark_as_edited(user, edit_comment=EDITED_GENERAL_DATA) geometry = geom_form.save(user_action) self.instance.geometry = geometry @@ -347,8 +349,5 @@ class EditInterventionForm(NewInterventionForm): self.instance.modified = user_action self.instance.save() - # Uncheck and unrecord intervention due to changed data - self.instance.mark_as_edited(user) - return self.instance diff --git a/intervention/forms/modalForms.py b/intervention/forms/modalForms.py index b7330aec..a240d8f6 100644 --- a/intervention/forms/modalForms.py +++ b/intervention/forms/modalForms.py @@ -6,13 +6,14 @@ Created on: 27.09.21 """ from dal import autocomplete -from user.models import User + +from konova.utils.message_templates import DEDUCTION_ADDED +from user.models import User, UserActionLogEntry from django.db import transaction from django import forms -from django.urls import reverse from django.utils.translation import gettext_lazy as _ -from compensation.models import EcoAccount +from compensation.models import EcoAccount, EcoAccountDeduction from intervention.inputs import TextToClipboardInput from intervention.models import Intervention, InterventionDocument from konova.forms import BaseModalForm, NewDocumentForm @@ -366,9 +367,26 @@ class NewDeductionModalForm(BaseModalForm): ) return is_valid_surface and super_result + def __create_deduction(self): + """ Creates the deduction + + Returns: + + """ + with transaction.atomic(): + user_action_create = UserActionLogEntry.get_created_action(self.user) + deduction = EcoAccountDeduction.objects.create( + intervention=self.cleaned_data["intervention"], + account=self.cleaned_data["account"], + surface=self.cleaned_data["surface"], + created=user_action_create, + ) + return deduction + def save(self): - deduction = self.instance.add_deduction(self) - self.instance.mark_as_edited(self.user, self.request, reset_recorded=False) + deduction = self.__create_deduction() + self.cleaned_data["intervention"].mark_as_edited(self.user, edit_comment=DEDUCTION_ADDED) + self.cleaned_data["account"].mark_as_edited(self.user, edit_comment=DEDUCTION_ADDED, reset_recorded=False) return deduction diff --git a/intervention/models/intervention.py b/intervention/models/intervention.py index 24018fe7..9bb229fb 100644 --- a/intervention/models/intervention.py +++ b/intervention/models/intervention.py @@ -26,7 +26,7 @@ from konova.models import generate_document_file_upload_path, AbstractDocument, ShareableObjectMixin, \ RecordableObjectMixin, CheckableObjectMixin, GeoReferencedMixin from konova.settings import LANIS_LINK_TEMPLATE, LANIS_ZOOM_LUT, DEFAULT_SRID_RLP -from konova.utils.message_templates import DATA_UNSHARED_EXPLANATION +from konova.utils.message_templates import DATA_UNSHARED_EXPLANATION, DEDUCTION_ADDED from user.models import UserActionLogEntry @@ -229,28 +229,6 @@ class Intervention(BaseObject, ShareableObjectMixin, RecordableObjectMixin, Chec ) return revocation - def add_deduction(self, form): - """ Adds a new deduction to the intervention - - Args: - form (NewDeductionModalForm): The form holding the data - - Returns: - - """ - form_data = form.cleaned_data - user = form.user - - with transaction.atomic(): - user_action_create = UserActionLogEntry.get_created_action(user) - deduction = EcoAccountDeduction.objects.create( - intervention=self, - account=form_data["account"], - surface=form_data["surface"], - created=user_action_create, - ) - return deduction - def mark_as_edited(self, performing_user: User, request: HttpRequest = None, edit_comment: str = None, reset_recorded: bool = True): """ In case the object or a related object changed, internal processes need to be started, such as unrecord and uncheck @@ -264,9 +242,10 @@ class Intervention(BaseObject, ShareableObjectMixin, RecordableObjectMixin, Chec Returns: """ - super().mark_as_edited(performing_user, request, edit_comment, reset_recorded) + action = super().mark_as_edited(performing_user, request, edit_comment, reset_recorded) if self.checked: self.set_unchecked() + return action def set_status_messages(self, request: HttpRequest): """ Setter for different information that need to be rendered diff --git a/intervention/templates/intervention/detail/includes/deductions.html b/intervention/templates/intervention/detail/includes/deductions.html index bc169082..99f11cb8 100644 --- a/intervention/templates/intervention/detail/includes/deductions.html +++ b/intervention/templates/intervention/detail/includes/deductions.html @@ -57,7 +57,7 @@ {{ deduction.created.timestamp|default_if_none:""|naturalday}} {% if is_default_member and has_access %} - {% endif %} diff --git a/intervention/urls.py b/intervention/urls.py index dc757da7..4754eb53 100644 --- a/intervention/urls.py +++ b/intervention/urls.py @@ -9,7 +9,8 @@ from django.urls import path from intervention.views import index_view, new_view, detail_view, edit_view, remove_view, new_document_view, share_view, \ create_share_view, remove_revocation_view, new_revocation_view, check_view, log_view, new_deduction_view, \ - record_view, remove_document_view, get_document_view, get_revocation_view, new_id_view, report_view + record_view, remove_document_view, get_document_view, get_revocation_view, new_id_view, report_view, \ + remove_deduction_view app_name = "intervention" urlpatterns = [ @@ -33,6 +34,7 @@ urlpatterns = [ # Deductions path('/deduction/new', new_deduction_view, name='new-deduction'), + path('/remove/', remove_deduction_view, name='remove-deduction'), # Revocation routes path('/revocation/new', new_revocation_view, name='new-revocation'), diff --git a/intervention/views.py b/intervention/views.py index 71fd0989..ea169b3b 100644 --- a/intervention/views.py +++ b/intervention/views.py @@ -1,6 +1,7 @@ from django.contrib.auth.decorators import login_required +from django.core.exceptions import ObjectDoesNotExist from django.utils.translation import gettext_lazy as _ -from django.http import HttpRequest, JsonResponse +from django.http import HttpRequest, JsonResponse, Http404 from django.shortcuts import render from intervention.forms.forms import NewInterventionForm, EditInterventionForm @@ -15,7 +16,7 @@ from konova.sub_settings.context_settings import TAB_TITLE_IDENTIFIER from konova.utils.documents import remove_document, get_document from konova.utils.generators import generate_qr_code from konova.utils.message_templates import INTERVENTION_INVALID, FORM_INVALID, IDENTIFIER_REPLACED, \ - CHECKED_RECORDED_RESET + CHECKED_RECORDED_RESET, DEDUCTION_REMOVED, DEDUCTION_ADDED from konova.utils.user_checks import in_group @@ -506,11 +507,39 @@ def new_deduction_view(request: HttpRequest, id: str): form = NewDeductionModalForm(request.POST or None, instance=intervention, request=request) return form.process_request( request, - msg_success=_("Deduction added"), + msg_success=DEDUCTION_ADDED, redirect_url=reverse("intervention:detail", args=(id,)) + "#related_data", ) +@login_required +@default_group_required +@shared_access_required(Intervention, "id") +def remove_deduction_view(request: HttpRequest, id: str, deduction_id: str): + """ Renders a modal view for removing deductions + + Args: + request (HttpRequest): The incoming request + id (str): The intervention's id + deduction_id (str): The deduction's id + + Returns: + + """ + intervention = get_object_or_404(Intervention, id=id) + try: + eco_deduction = intervention.deductions.get(id=deduction_id) + except ObjectDoesNotExist: + raise Http404("Unknown deduction") + + form = RemoveModalForm(request.POST or None, instance=eco_deduction, request=request) + return form.process_request( + request=request, + msg_success=DEDUCTION_REMOVED, + redirect_url=reverse("intervention:detail", args=(id,)) + "#related_data" + ) + + @login_required @conservation_office_group_required @shared_access_required(Intervention, "id") diff --git a/konova/forms.py b/konova/forms.py index aae83e6a..030599c3 100644 --- a/konova/forms.py +++ b/konova/forms.py @@ -327,7 +327,7 @@ class RemoveModalForm(BaseModalForm): self.instance.mark_as_deleted(self.user) else: # If the class does not provide restorable delete functionality, we must delete the entry finally - self.instance.delete() + self.instance.delete(self.user) class NewDocumentForm(BaseModalForm): diff --git a/konova/models/object.py b/konova/models/object.py index c5ad501d..9eba8c1d 100644 --- a/konova/models/object.py +++ b/konova/models/object.py @@ -275,9 +275,9 @@ class RecordableObjectMixin(models.Model): Returns: """ - action = UserActionLogEntry.get_edited_action(performing_user, edit_comment) - self.modified = action - self.log.add(action) + edit_action = UserActionLogEntry.get_edited_action(performing_user, edit_comment) + self.modified = edit_action + self.log.add(edit_action) self.save() if self.recorded and reset_recorded: @@ -288,6 +288,7 @@ class RecordableObjectMixin(models.Model): request, CHECKED_RECORDED_RESET ) + return edit_action @abstractmethod def is_ready_for_publish(self) -> bool: diff --git a/konova/utils/message_templates.py b/konova/utils/message_templates.py index 29f8197c..501a5a03 100644 --- a/konova/utils/message_templates.py +++ b/konova/utils/message_templates.py @@ -21,6 +21,14 @@ CHECKED_RECORDED_RESET = _("Status of Checked and Recorded reseted") # ECO ACCOUNT CANCEL_ACC_RECORDED_OR_DEDUCTED = _("Action canceled. Eco account is recorded or deductions exist. Only conservation office member can perform this action.") +# DEDUCTIONS +DEDUCTION_ADDED = _("Deduction added") +DEDUCTION_REMOVED = _("Deduction removed") + +# PAYMENTS +PAYMENT_ADDED = _("Payment added") +PAYMENT_REMOVED = _("Payment removed") + # Edited EDITED_GENERAL_DATA = _("Edited general data") ADDED_COMPENSATION_STATE = _("Added compensation state") diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index e6edc28bd0a903453509a74318e3587db30c17c5..b708497fbae6e4a938da19633c3c7db6cd4349dd 100644 GIT binary patch delta 6389 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 delta 6381 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\n" "Language-Team: LANGUAGE \n" @@ -140,7 +140,7 @@ msgstr "Zuständigkeitsbereich" #: compensation/templates/compensation/detail/compensation/view.html:63 #: intervention/tables.py:33 #: intervention/templates/intervention/detail/view.html:68 -#: user/models/user_action.py:18 +#: user/models/user_action.py:20 msgid "Checked" msgstr "Geprüft" @@ -159,7 +159,7 @@ msgstr "Geprüft" #: ema/tables.py:38 ema/templates/ema/detail/view.html:35 #: intervention/tables.py:39 #: intervention/templates/intervention/detail/view.html:82 -#: user/models/user_action.py:19 +#: user/models/user_action.py:21 msgid "Recorded" msgstr "Verzeichnet" @@ -214,13 +214,13 @@ msgstr "Abbuchungen" #: analysis/templates/analysis/reports/includes/eco_account/deductions.html:9 #: analysis/templates/analysis/reports/includes/eco_account/deductions.html:11 #: compensation/forms/modalForms.py:151 -#: compensation/templates/compensation/detail/compensation/includes/states-after.html:39 -#: compensation/templates/compensation/detail/compensation/includes/states-before.html:39 -#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:39 -#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:39 -#: ema/templates/ema/detail/includes/states-after.html:39 -#: ema/templates/ema/detail/includes/states-before.html:39 -#: intervention/forms/modalForms.py:295 +#: compensation/templates/compensation/detail/compensation/includes/states-after.html:36 +#: compensation/templates/compensation/detail/compensation/includes/states-before.html:36 +#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:36 +#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:36 +#: ema/templates/ema/detail/includes/states-after.html:36 +#: ema/templates/ema/detail/includes/states-before.html:36 +#: intervention/forms/modalForms.py:293 msgid "Surface" msgstr "Fläche" @@ -284,7 +284,7 @@ msgid "Type" msgstr "Typ" #: analysis/templates/analysis/reports/includes/old_data/amount.html:24 -#: intervention/forms/modalForms.py:306 intervention/forms/modalForms.py:313 +#: intervention/forms/modalForms.py:304 intervention/forms/modalForms.py:311 #: intervention/tables.py:89 #: intervention/templates/intervention/detail/view.html:19 #: konova/templates/konova/includes/quickstart/interventions.html:4 @@ -295,7 +295,7 @@ msgstr "Eingriff" #: analysis/templates/analysis/reports/includes/old_data/amount.html:34 #: compensation/tables.py:226 #: compensation/templates/compensation/detail/eco_account/view.html:19 -#: intervention/forms/modalForms.py:279 intervention/forms/modalForms.py:286 +#: intervention/forms/modalForms.py:277 intervention/forms/modalForms.py:284 #: konova/templates/konova/includes/quickstart/ecoaccounts.html:4 #: templates/navbars/navbar.html:34 msgid "Eco-account" @@ -354,8 +354,8 @@ msgid "Compensation XY; Location ABC" msgstr "Kompensation XY; Flur ABC" #: compensation/forms/forms.py:57 compensation/forms/modalForms.py:61 -#: compensation/forms/modalForms.py:255 compensation/forms/modalForms.py:350 -#: compensation/templates/compensation/detail/compensation/includes/actions.html:37 +#: compensation/forms/modalForms.py:255 compensation/forms/modalForms.py:349 +#: compensation/templates/compensation/detail/compensation/includes/actions.html:35 #: compensation/templates/compensation/detail/compensation/includes/deadlines.html:34 #: compensation/templates/compensation/detail/compensation/includes/documents.html:31 #: compensation/templates/compensation/detail/eco_account/includes/actions.html:34 @@ -364,7 +364,7 @@ msgstr "Kompensation XY; Flur ABC" #: ema/templates/ema/detail/includes/actions.html:34 #: ema/templates/ema/detail/includes/deadlines.html:34 #: ema/templates/ema/detail/includes/documents.html:31 -#: intervention/forms/forms.py:178 intervention/forms/modalForms.py:150 +#: intervention/forms/forms.py:178 intervention/forms/modalForms.py:148 #: intervention/templates/intervention/detail/includes/documents.html:31 #: intervention/templates/intervention/detail/includes/payments.html:34 #: intervention/templates/intervention/detail/includes/revocation.html:38 @@ -372,7 +372,8 @@ msgstr "Kompensation XY; Flur ABC" msgid "Comment" msgstr "Kommentar" -#: compensation/forms/forms.py:59 intervention/forms/forms.py:180 +#: compensation/forms/forms.py:59 compensation/forms/modalForms.py:351 +#: intervention/forms/forms.py:180 msgid "Additional comment" msgstr "Zusätzlicher Kommentar" @@ -431,7 +432,7 @@ msgstr "kompensiert Eingriff" msgid "Select the intervention for which this compensation compensates" msgstr "Wählen Sie den Eingriff, für den diese Kompensation bestimmt ist" -#: compensation/forms/forms.py:184 compensation/views/compensation.py:91 +#: compensation/forms/forms.py:184 compensation/views/compensation.py:92 msgid "New compensation" msgstr "Neue Kompensation" @@ -457,7 +458,7 @@ msgstr "Vereinbarungsdatum" msgid "When did the parties agree on this?" msgstr "Wann wurde dieses Ökokonto offiziell vereinbart?" -#: compensation/forms/forms.py:340 compensation/views/eco_account.py:101 +#: compensation/forms/forms.py:340 compensation/views/eco_account.py:102 msgid "New Eco-Account" msgstr "Neues Ökokonto" @@ -483,8 +484,7 @@ msgid "Due on which date" msgstr "Zahlung wird an diesem Datum erwartet" #: compensation/forms/modalForms.py:63 compensation/forms/modalForms.py:257 -#: compensation/forms/modalForms.py:352 intervention/forms/modalForms.py:152 -#: konova/forms.py:375 +#: intervention/forms/modalForms.py:150 konova/forms.py:375 msgid "Additional comment, maximum {} letters" msgstr "Zusätzlicher Kommentar, maximal {} Zeichen" @@ -505,12 +505,6 @@ msgid "Select the biotope type" msgstr "Biotoptyp wählen" #: compensation/forms/modalForms.py:132 compensation/forms/modalForms.py:144 -#: compensation/templates/compensation/detail/compensation/includes/states-after.html:36 -#: compensation/templates/compensation/detail/compensation/includes/states-before.html:36 -#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:36 -#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:36 -#: ema/templates/ema/detail/includes/states-after.html:36 -#: ema/templates/ema/detail/includes/states-before.html:36 msgid "Biotope additional type" msgstr "Zusatzbezeichnung" @@ -518,7 +512,7 @@ msgstr "Zusatzbezeichnung" msgid "Select an additional biotope type" msgstr "Zusatzbezeichnung wählen" -#: compensation/forms/modalForms.py:154 intervention/forms/modalForms.py:297 +#: compensation/forms/modalForms.py:154 intervention/forms/modalForms.py:295 msgid "in m²" msgstr "" @@ -546,7 +540,7 @@ msgstr "Fristart wählen" #: compensation/templates/compensation/detail/compensation/includes/deadlines.html:31 #: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:31 #: ema/templates/ema/detail/includes/deadlines.html:31 -#: intervention/forms/modalForms.py:124 +#: intervention/forms/modalForms.py:122 msgid "Date" msgstr "Datum" @@ -571,27 +565,27 @@ msgid "Select the action type" msgstr "Maßnahmentyp wählen" #: compensation/forms/modalForms.py:300 -#: compensation/templates/compensation/detail/compensation/includes/actions.html:41 -#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:38 -#: compensation/templates/compensation/detail/compensation/includes/documents.html:35 -#: compensation/templates/compensation/detail/compensation/includes/states-after.html:43 -#: compensation/templates/compensation/detail/compensation/includes/states-before.html:43 -#: compensation/templates/compensation/detail/eco_account/includes/actions.html:38 -#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:37 -#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:40 -#: compensation/templates/compensation/detail/eco_account/includes/documents.html:34 -#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:43 -#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:43 -#: ema/templates/ema/detail/includes/actions.html:37 -#: ema/templates/ema/detail/includes/deadlines.html:37 -#: ema/templates/ema/detail/includes/documents.html:34 -#: ema/templates/ema/detail/includes/states-after.html:42 -#: ema/templates/ema/detail/includes/states-before.html:42 -#: intervention/templates/intervention/detail/includes/compensations.html:37 -#: intervention/templates/intervention/detail/includes/deductions.html:38 -#: intervention/templates/intervention/detail/includes/documents.html:35 -#: intervention/templates/intervention/detail/includes/payments.html:38 -#: intervention/templates/intervention/detail/includes/revocation.html:42 +#: compensation/templates/compensation/detail/compensation/includes/actions.html:40 +#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:39 +#: compensation/templates/compensation/detail/compensation/includes/documents.html:36 +#: compensation/templates/compensation/detail/compensation/includes/states-after.html:41 +#: compensation/templates/compensation/detail/compensation/includes/states-before.html:41 +#: compensation/templates/compensation/detail/eco_account/includes/actions.html:39 +#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:38 +#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:41 +#: compensation/templates/compensation/detail/eco_account/includes/documents.html:35 +#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:41 +#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:41 +#: ema/templates/ema/detail/includes/actions.html:38 +#: ema/templates/ema/detail/includes/deadlines.html:38 +#: ema/templates/ema/detail/includes/documents.html:35 +#: ema/templates/ema/detail/includes/states-after.html:40 +#: ema/templates/ema/detail/includes/states-before.html:40 +#: intervention/templates/intervention/detail/includes/compensations.html:38 +#: intervention/templates/intervention/detail/includes/deductions.html:39 +#: intervention/templates/intervention/detail/includes/documents.html:36 +#: intervention/templates/intervention/detail/includes/payments.html:39 +#: intervention/templates/intervention/detail/includes/revocation.html:43 #: templates/log.html:10 msgid "Action" msgstr "Aktionen" @@ -616,11 +610,11 @@ msgstr "Einheit wählen" msgid "Insert the amount" msgstr "Menge eingeben" -#: compensation/forms/modalForms.py:363 +#: compensation/forms/modalForms.py:362 msgid "New action" msgstr "Neue Maßnahme" -#: compensation/forms/modalForms.py:364 +#: compensation/forms/modalForms.py:363 msgid "Insert data for the new action" msgstr "Geben Sie die Daten der neuen Maßnahme ein" @@ -652,14 +646,14 @@ msgstr "Stück" msgid "Added deadline" msgstr "Frist/Termin hinzugefügt" -#: compensation/models/eco_account.py:55 +#: compensation/models/eco_account.py:57 msgid "" "Deductable surface can not be larger than existing surfaces in after states" msgstr "" "Die abbuchbare Fläche darf die Gesamtfläche der Zielzustände nicht " "überschreiten" -#: compensation/models/eco_account.py:62 +#: compensation/models/eco_account.py:64 msgid "" "Deductable surface can not be smaller than the sum of already existing " "deductions. Please contact the responsible users for the deductions!" @@ -692,7 +686,7 @@ msgstr "Am {} von {} geprüft worden" #: compensation/tables.py:130 #: compensation/templates/compensation/detail/compensation/view.html:80 -#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:56 +#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:58 #: compensation/templates/compensation/detail/eco_account/view.html:47 #: ema/tables.py:102 ema/templates/ema/detail/view.html:38 #: intervention/tables.py:132 @@ -730,39 +724,35 @@ msgid "Not recorded yet. Can not be used for deductions, yet." msgstr "" "Noch nicht verzeichnet. Kann noch nicht für Abbuchungen genutzt werden." -#: compensation/templates/compensation/detail/compensation/includes/actions.html:8 +#: compensation/templates/compensation/detail/compensation/includes/actions.html:9 #: compensation/templates/compensation/detail/eco_account/includes/actions.html:8 #: ema/templates/ema/detail/includes/actions.html:8 msgctxt "Compensation" msgid "Actions" msgstr "Maßnahmen" -#: compensation/templates/compensation/detail/compensation/includes/actions.html:14 +#: compensation/templates/compensation/detail/compensation/includes/actions.html:15 #: compensation/templates/compensation/detail/eco_account/includes/actions.html:14 #: ema/templates/ema/detail/includes/actions.html:14 msgid "Add new action" msgstr "Neue Maßnahme hinzufügen" -#: compensation/templates/compensation/detail/compensation/includes/actions.html:28 +#: compensation/templates/compensation/detail/compensation/includes/actions.html:29 #: compensation/templates/compensation/detail/eco_account/includes/actions.html:28 #: ema/templates/ema/detail/includes/actions.html:28 msgid "Action type" msgstr "Maßnahmentyp" -#: compensation/templates/compensation/detail/compensation/includes/actions.html:31 -msgid "Action type details" -msgstr "Zusatzmerkmale" - -#: compensation/templates/compensation/detail/compensation/includes/actions.html:34 +#: compensation/templates/compensation/detail/compensation/includes/actions.html:32 #: compensation/templates/compensation/detail/eco_account/includes/actions.html:31 #: ema/templates/ema/detail/includes/actions.html:31 msgctxt "Compensation" msgid "Amount" msgstr "Menge" -#: compensation/templates/compensation/detail/compensation/includes/actions.html:61 -#: compensation/templates/compensation/detail/eco_account/includes/actions.html:53 -#: ema/templates/ema/detail/includes/actions.html:51 +#: compensation/templates/compensation/detail/compensation/includes/actions.html:66 +#: compensation/templates/compensation/detail/eco_account/includes/actions.html:65 +#: ema/templates/ema/detail/includes/actions.html:63 msgid "Remove action" msgstr "Maßnahme entfernen" @@ -814,9 +804,9 @@ msgstr "Termine und Fristen" msgid "Add new deadline" msgstr "Frist/Termin hinzufügen" -#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:53 -#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:51 -#: ema/templates/ema/detail/includes/deadlines.html:51 +#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:59 +#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:57 +#: ema/templates/ema/detail/includes/deadlines.html:57 msgid "Remove deadline" msgstr "Frist löschen" @@ -835,10 +825,10 @@ msgstr "Dokumente" msgid "Add new document" msgstr "Neues Dokument hinzufügen" -#: compensation/templates/compensation/detail/compensation/includes/documents.html:51 -#: compensation/templates/compensation/detail/eco_account/includes/documents.html:49 -#: ema/templates/ema/detail/includes/documents.html:49 -#: intervention/templates/intervention/detail/includes/documents.html:51 +#: compensation/templates/compensation/detail/compensation/includes/documents.html:57 +#: compensation/templates/compensation/detail/eco_account/includes/documents.html:55 +#: ema/templates/ema/detail/includes/documents.html:55 +#: intervention/templates/intervention/detail/includes/documents.html:57 msgid "Remove document" msgstr "Dokument löschen" @@ -855,9 +845,9 @@ msgstr "Zielzustand" msgid "Add new state after" msgstr "Neuen Zielzustand hinzufügen" -#: compensation/templates/compensation/detail/compensation/includes/states-after.html:26 -#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:26 -#: ema/templates/ema/detail/includes/states-after.html:26 +#: compensation/templates/compensation/detail/compensation/includes/states-after.html:25 +#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:25 +#: ema/templates/ema/detail/includes/states-after.html:25 msgid "Missing surfaces according to states before: " msgstr "Fehlende Flächenmengen laut Ausgangszustand: " @@ -870,12 +860,12 @@ msgstr "Fehlende Flächenmengen laut Ausgangszustand: " msgid "Biotope type" msgstr "Biotoptyp" -#: compensation/templates/compensation/detail/compensation/includes/states-after.html:64 -#: compensation/templates/compensation/detail/compensation/includes/states-before.html:64 -#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:64 -#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:64 -#: ema/templates/ema/detail/includes/states-after.html:62 -#: ema/templates/ema/detail/includes/states-before.html:62 +#: 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 +#: ema/templates/ema/detail/includes/states-after.html:60 +#: ema/templates/ema/detail/includes/states-before.html:60 msgid "Remove state" msgstr "Zustand entfernen" @@ -892,9 +882,9 @@ msgstr "Ausgangszustand" msgid "Add new state before" msgstr "Neuen Ausgangszustand hinzufügen" -#: compensation/templates/compensation/detail/compensation/includes/states-before.html:26 -#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:26 -#: ema/templates/ema/detail/includes/states-before.html:26 +#: compensation/templates/compensation/detail/compensation/includes/states-before.html:25 +#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:25 +#: ema/templates/ema/detail/includes/states-before.html:25 msgid "Missing surfaces according to states after: " msgstr "Fehlende Flächenmengen laut Zielzustand: " @@ -925,7 +915,7 @@ msgstr "Geprüft am " #: compensation/templates/compensation/detail/compensation/view.html:70 #: compensation/templates/compensation/detail/compensation/view.html:84 -#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:54 +#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:56 #: compensation/templates/compensation/detail/eco_account/view.html:51 #: ema/templates/ema/detail/view.html:42 #: intervention/templates/intervention/detail/view.html:75 @@ -993,16 +983,16 @@ msgstr "Eingriffskennung" #: compensation/templates/compensation/detail/eco_account/includes/deductions.html:37 #: intervention/templates/intervention/detail/includes/deductions.html:34 -#: user/models/user_action.py:21 +#: user/models/user_action.py:23 msgid "Created" msgstr "Erstellt" -#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:54 +#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:56 msgid "Recorded on" msgstr "Verzeichnet am" -#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:63 -#: intervention/templates/intervention/detail/includes/deductions.html:58 +#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:65 +#: intervention/templates/intervention/detail/includes/deductions.html:60 msgid "Remove Deduction" msgstr "Abbuchung entfernen" @@ -1086,130 +1076,135 @@ msgstr "" msgid "Responsible data" msgstr "Daten zu den verantwortlichen Stellen" -#: compensation/views/compensation.py:47 +#: compensation/views/compensation.py:48 msgid "Compensations - Overview" msgstr "Kompensationen - Übersicht" -#: compensation/views/compensation.py:81 +#: compensation/views/compensation.py:82 msgid "Compensation {} added" msgstr "Kompensation {} hinzugefügt" -#: compensation/views/compensation.py:146 +#: compensation/views/compensation.py:147 msgid "Compensation {} edited" msgstr "Kompensation {} bearbeitet" -#: compensation/views/compensation.py:156 compensation/views/eco_account.py:159 -#: ema/views.py:226 intervention/views.py:309 +#: compensation/views/compensation.py:157 compensation/views/eco_account.py:160 +#: ema/views.py:227 intervention/views.py:310 msgid "Edit {}" msgstr "Bearbeite {}" -#: compensation/views/compensation.py:235 compensation/views/eco_account.py:314 -#: ema/views.py:187 intervention/views.py:482 +#: compensation/views/compensation.py:236 compensation/views/eco_account.py:316 +#: ema/views.py:188 intervention/views.py:486 msgid "Log" msgstr "Log" -#: compensation/views/compensation.py:258 +#: compensation/views/compensation.py:259 msgid "Compensation removed" msgstr "Kompensation entfernt" -#: compensation/views/compensation.py:279 compensation/views/eco_account.py:466 -#: ema/views.py:355 intervention/views.py:132 +#: compensation/views/compensation.py:280 compensation/views/eco_account.py:496 +#: ema/views.py:359 intervention/views.py:132 msgid "Document added" msgstr "Dokument hinzugefügt" -#: compensation/views/compensation.py:348 compensation/views/eco_account.py:360 -#: ema/views.py:293 +#: compensation/views/compensation.py:350 compensation/views/eco_account.py:362 +#: ema/views.py:294 msgid "State added" msgstr "Zustand hinzugefügt" -#: compensation/views/compensation.py:369 compensation/views/eco_account.py:381 -#: ema/views.py:314 +#: compensation/views/compensation.py:372 compensation/views/eco_account.py:384 +#: ema/views.py:316 msgid "Action added" msgstr "Maßnahme hinzugefügt" -#: compensation/views/compensation.py:390 compensation/views/eco_account.py:446 -#: ema/views.py:335 +#: compensation/views/compensation.py:394 compensation/views/eco_account.py:475 +#: ema/views.py:338 msgid "Deadline added" msgstr "Frist/Termin hinzugefügt" -#: compensation/views/compensation.py:412 compensation/views/eco_account.py:403 -#: ema/views.py:425 +#: compensation/views/compensation.py:417 compensation/views/eco_account.py:453 +#: ema/views.py:595 +msgid "Deadline removed" +msgstr "Frist gelöscht" + +#: compensation/views/compensation.py:440 compensation/views/eco_account.py:407 +#: ema/views.py:430 msgid "State removed" msgstr "Zustand gelöscht" -#: compensation/views/compensation.py:434 compensation/views/eco_account.py:425 -#: ema/views.py:447 +#: compensation/views/compensation.py:463 compensation/views/eco_account.py:430 +#: ema/views.py:453 msgid "Action removed" msgstr "Maßnahme entfernt" -#: compensation/views/compensation.py:452 compensation/views/eco_account.py:554 -#: ema/views.py:465 intervention/views.py:546 +#: compensation/views/compensation.py:482 compensation/views/eco_account.py:586 +#: ema/views.py:472 intervention/views.py:551 msgid "Report {}" msgstr "Bericht {}" -#: compensation/views/eco_account.py:58 +#: compensation/views/eco_account.py:59 msgid "Eco-account - Overview" msgstr "Ökokonten - Übersicht" -#: compensation/views/eco_account.py:91 +#: compensation/views/eco_account.py:92 msgid "Eco-Account {} added" msgstr "Ökokonto {} hinzugefügt" -#: compensation/views/eco_account.py:149 +#: compensation/views/eco_account.py:150 msgid "Eco-Account {} edited" msgstr "Ökokonto {} bearbeitet" -#: compensation/views/eco_account.py:262 +#: compensation/views/eco_account.py:263 msgid "Eco-account removed" msgstr "Ökokonto entfernt" -#: compensation/views/eco_account.py:290 +#: compensation/views/eco_account.py:291 msgid "Deduction removed" msgstr "Abbuchung entfernt" -#: compensation/views/eco_account.py:335 ema/views.py:268 -#: intervention/views.py:524 +#: compensation/views/eco_account.py:337 ema/views.py:269 +#: intervention/views.py:529 msgid "{} unrecorded" msgstr "{} entzeichnet" -#: compensation/views/eco_account.py:335 ema/views.py:268 -#: intervention/views.py:524 +#: compensation/views/eco_account.py:337 ema/views.py:269 +#: intervention/views.py:529 msgid "{} recorded" msgstr "{} verzeichnet" -#: compensation/views/eco_account.py:536 intervention/views.py:505 +#: compensation/views/eco_account.py:567 intervention/views.py:509 msgid "Deduction added" msgstr "Abbuchung hinzugefügt" -#: compensation/views/eco_account.py:627 ema/views.py:531 -#: intervention/views.py:380 +#: compensation/views/eco_account.py:659 ema/views.py:538 +#: intervention/views.py:383 msgid "{} has already been shared with you" msgstr "{} wurde bereits für Sie freigegeben" -#: compensation/views/eco_account.py:632 ema/views.py:536 -#: intervention/views.py:385 +#: compensation/views/eco_account.py:664 ema/views.py:543 +#: intervention/views.py:388 msgid "{} has been shared with you" msgstr "{} ist nun für Sie freigegeben" -#: compensation/views/eco_account.py:639 ema/views.py:543 -#: intervention/views.py:392 +#: compensation/views/eco_account.py:671 ema/views.py:550 +#: intervention/views.py:395 msgid "Share link invalid" msgstr "Freigabelink ungültig" -#: compensation/views/eco_account.py:662 ema/views.py:566 -#: intervention/views.py:415 +#: compensation/views/eco_account.py:694 ema/views.py:573 +#: intervention/views.py:418 msgid "Share settings updated" msgstr "Freigabe Einstellungen aktualisiert" -#: compensation/views/payment.py:36 +#: compensation/views/payment.py:37 msgid "Payment added" msgstr "Zahlung hinzugefügt" -#: compensation/views/payment.py:56 +#: compensation/views/payment.py:58 msgid "Payment removed" msgstr "Zahlung gelöscht" -#: ema/forms.py:40 ema/views.py:91 +#: ema/forms.py:40 ema/views.py:92 msgid "New EMA" msgstr "Neue EMA hinzufügen" @@ -1237,19 +1232,19 @@ msgstr "" msgid "Payment funded compensation" msgstr "Ersatzzahlungsmaßnahme" -#: ema/views.py:48 +#: ema/views.py:49 msgid "EMAs - Overview" msgstr "EMAs - Übersicht" -#: ema/views.py:81 +#: ema/views.py:82 msgid "EMA {} added" msgstr "EMA {} hinzugefügt" -#: ema/views.py:216 +#: ema/views.py:217 msgid "EMA {} edited" msgstr "EMA {} bearbeitet" -#: ema/views.py:249 +#: ema/views.py:250 msgid "EMA removed" msgstr "EMA entfernt" @@ -1318,6 +1313,10 @@ msgstr "Neuer Eingriff" msgid "Edit intervention" msgstr "Eingriff bearbeiten" +#: intervention/forms/forms.py:338 +msgid "General data edited" +msgstr "Allgemeine Daten bearbeitet" + #: intervention/forms/modalForms.py:25 msgid "Share link" msgstr "Freigabelink" @@ -1346,38 +1345,38 @@ msgstr "Wählen Sie die Nutzer ab, die keinen Zugriff mehr haben sollen" msgid "Share settings for {}" msgstr "Freigabe Einstellungen für {}" -#: intervention/forms/modalForms.py:126 +#: intervention/forms/modalForms.py:124 msgid "Date of revocation" msgstr "Datum des Widerspruchs" -#: intervention/forms/modalForms.py:137 +#: intervention/forms/modalForms.py:135 #: intervention/templates/intervention/detail/includes/revocation.html:35 msgid "Document" msgstr "Dokument" -#: intervention/forms/modalForms.py:140 +#: intervention/forms/modalForms.py:138 msgid "Must be smaller than 15 Mb" msgstr "Muss kleiner als 15 Mb sein" -#: intervention/forms/modalForms.py:164 +#: intervention/forms/modalForms.py:162 #: intervention/templates/intervention/detail/includes/revocation.html:18 msgid "Add revocation" msgstr "Widerspruch hinzufügen" -#: intervention/forms/modalForms.py:181 +#: intervention/forms/modalForms.py:179 msgid "Checked intervention data" msgstr "Eingriffsdaten geprüft" -#: intervention/forms/modalForms.py:187 +#: intervention/forms/modalForms.py:185 msgid "Checked compensations data and payments" msgstr "Kompensationen und Zahlungen geprüft" -#: intervention/forms/modalForms.py:196 +#: intervention/forms/modalForms.py:194 #: intervention/templates/intervention/detail/includes/controls.html:19 msgid "Run check" msgstr "Prüfung vornehmen" -#: intervention/forms/modalForms.py:197 konova/forms.py:457 +#: intervention/forms/modalForms.py:195 konova/forms.py:457 msgid "" "I, {} {}, confirm that all necessary control steps have been performed by " "myself." @@ -1385,23 +1384,23 @@ msgstr "" "Ich, {} {}, bestätige, dass die notwendigen Kontrollschritte durchgeführt " "wurden:" -#: intervention/forms/modalForms.py:281 +#: intervention/forms/modalForms.py:279 msgid "Only recorded accounts can be selected for deductions" msgstr "Nur verzeichnete Ökokonten können für Abbuchungen verwendet werden." -#: intervention/forms/modalForms.py:308 +#: intervention/forms/modalForms.py:306 msgid "Only shared interventions can be selected" msgstr "Nur freigegebene Eingriffe können gewählt werden" -#: intervention/forms/modalForms.py:321 +#: intervention/forms/modalForms.py:319 msgid "New Deduction" msgstr "Neue Abbuchung" -#: intervention/forms/modalForms.py:322 +#: intervention/forms/modalForms.py:320 msgid "Enter the information for a new deduction from a chosen eco-account" msgstr "Geben Sie die Informationen für eine neue Abbuchung ein." -#: intervention/forms/modalForms.py:350 +#: intervention/forms/modalForms.py:348 msgid "" "Eco-account {} is not recorded yet. You can only deduct from recorded " "accounts." @@ -1409,7 +1408,7 @@ msgstr "" "Ökokonto {} ist noch nicht verzeichnet. Abbuchungen können nur von " "verzeichneten Ökokonten erfolgen." -#: intervention/forms/modalForms.py:363 +#: intervention/forms/modalForms.py:361 msgid "" "The account {} has not enough surface for a deduction of {} m². There are " "only {} m² left" @@ -1418,7 +1417,7 @@ msgstr "" "Restfläche. Es stehen noch {} m² zur Verfügung." #: intervention/tables.py:45 -#: intervention/templates/intervention/detail/includes/revocation.html:56 +#: intervention/templates/intervention/detail/includes/revocation.html:58 msgid "Revocation" msgstr "Widerspruch" @@ -1434,7 +1433,7 @@ msgstr "Widerspruch vom {}, am {} von {} hinzugefügt" msgid "Add new compensation" msgstr "Neue Kompensation hinzufügen" -#: intervention/templates/intervention/detail/includes/compensations.html:53 +#: intervention/templates/intervention/detail/includes/compensations.html:55 msgid "Remove compensation" msgstr "Kompensation entfernen" @@ -1442,11 +1441,11 @@ msgstr "Kompensation entfernen" msgid "Account Identifier" msgstr "Ökokonto Kennung" -#: intervention/templates/intervention/detail/includes/deductions.html:45 +#: intervention/templates/intervention/detail/includes/deductions.html:47 msgid "Eco-account deleted! Deduction invalid!" msgstr "Ökokonto gelöscht! Abbuchung ungültig!" -#: intervention/templates/intervention/detail/includes/deductions.html:45 +#: intervention/templates/intervention/detail/includes/deductions.html:47 msgid "Eco-account not recorded! Deduction invalid!" msgstr "Ökokonto nicht verzeichnet! Abbuchung ungültig!" @@ -1464,7 +1463,7 @@ msgctxt "money" msgid "Amount" msgstr "Betrag" -#: intervention/templates/intervention/detail/includes/payments.html:53 +#: intervention/templates/intervention/detail/includes/payments.html:59 msgid "Remove payment" msgstr "Zahlung entfernen" @@ -1478,7 +1477,7 @@ msgctxt "Revocation" msgid "From" msgstr "Vom" -#: intervention/templates/intervention/detail/includes/revocation.html:63 +#: intervention/templates/intervention/detail/includes/revocation.html:69 msgid "Remove revocation" msgstr "Widerspruch entfernen" @@ -1520,31 +1519,31 @@ msgstr "Eingriffe - Übersicht" msgid "Intervention {} added" msgstr "Eingriff {} hinzugefügt" -#: intervention/views.py:248 +#: intervention/views.py:249 msgid "This intervention has {} revocations" msgstr "Dem Eingriff liegen {} Widersprüche vor" -#: intervention/views.py:297 +#: intervention/views.py:298 msgid "Intervention {} edited" msgstr "Eingriff {} bearbeitet" -#: intervention/views.py:333 +#: intervention/views.py:334 msgid "{} removed" msgstr "{} entfernt" -#: intervention/views.py:354 +#: intervention/views.py:356 msgid "Revocation removed" msgstr "Widerspruch entfernt" -#: intervention/views.py:436 +#: intervention/views.py:439 msgid "Check performed" msgstr "Prüfung durchgeführt" -#: intervention/views.py:458 +#: intervention/views.py:461 msgid "Revocation added" msgstr "Widerspruch hinzugefügt" -#: intervention/views.py:529 +#: intervention/views.py:534 msgid "There are errors on this intervention:" msgstr "Es liegen Fehler in diesem Eingriff vor:" @@ -1747,11 +1746,11 @@ msgstr "Kontrolle am" msgid "Other" msgstr "Sonstige" -#: konova/sub_settings/django_settings.py:155 +#: konova/sub_settings/django_settings.py:159 msgid "German" msgstr "" -#: konova/sub_settings/django_settings.py:156 +#: konova/sub_settings/django_settings.py:160 msgid "English" msgstr "" @@ -1813,31 +1812,31 @@ msgstr "In Zwischenablage kopiert" msgid "Document '{}' deleted" msgstr "Dokument '{}' gelöscht" -#: konova/utils/mailer.py:70 +#: konova/utils/mailer.py:66 msgid "{} - Shared access removed" msgstr "{} - Zugriff entzogen" -#: konova/utils/mailer.py:92 +#: konova/utils/mailer.py:88 msgid "{} - Shared access given" msgstr "{} - Zugriff freigegeben" -#: konova/utils/mailer.py:114 +#: konova/utils/mailer.py:110 msgid "{} - Shared data recorded" msgstr "{} - Freigegebene Daten verzeichnet" -#: konova/utils/mailer.py:136 +#: konova/utils/mailer.py:132 msgid "{} - Shared data unrecorded" msgstr "{} - Freigegebene Daten entzeichnet" -#: konova/utils/mailer.py:158 +#: konova/utils/mailer.py:154 msgid "{} - Shared data deleted" msgstr "{} - Freigegebene Daten gelöscht" -#: konova/utils/mailer.py:180 +#: konova/utils/mailer.py:176 msgid "{} - Shared data checked" msgstr "{} - Freigegebene Daten geprüft" -#: konova/utils/mailer.py:201 templates/email/api/verify_token.html:4 +#: konova/utils/mailer.py:197 templates/email/api/verify_token.html:4 msgid "Request for new API token" msgstr "Anfrage für neuen API Token" @@ -1927,19 +1926,15 @@ msgstr "fehlt" msgid "Home" msgstr "Home" -#: konova/views.py:117 -msgid "Deadline removed" -msgstr "Frist gelöscht" - -#: news/models.py:11 +#: news/models.py:12 msgid "Default" msgstr "Standard" -#: news/models.py:12 +#: news/models.py:13 msgid "Info" msgstr "" -#: news/models.py:13 +#: news/models.py:14 msgid "Warning" msgstr "Warnung" @@ -2227,6 +2222,10 @@ msgid "Timestamp" msgstr "Zeitpunkt" #: templates/log.html:13 +msgid "Details" +msgstr "" + +#: templates/log.html:16 msgid "User" msgstr "Nutzer" @@ -2315,15 +2314,15 @@ msgstr "Neuen Token generieren" msgid "A new token needs to be validated by an administrator!" msgstr "Neue Tokens müssen durch Administratoren freigeschaltet werden!" -#: user/models/user_action.py:20 +#: user/models/user_action.py:22 msgid "Unrecorded" msgstr "Entzeichnet" -#: user/models/user_action.py:22 +#: user/models/user_action.py:24 msgid "Edited" msgstr "Bearbeitet" -#: user/models/user_action.py:23 +#: user/models/user_action.py:25 msgid "Deleted" msgstr "Gelöscht" @@ -3923,6 +3922,9 @@ msgstr "" msgid "Unable to connect to qpid with SASL mechanism %s" msgstr "" +#~ msgid "Action type details" +#~ msgstr "Zusatzmerkmale" + #~ msgid "On registered data edited" #~ msgstr "Wenn meine freigegebenen Daten bearbeitet wurden"