#86 Edit payment
* adds button for payment editing * adds new edit form payment editing * adds tests for views and workflow
This commit is contained in:
parent
cb6a2d4d91
commit
78b4dce64d
@ -21,7 +21,7 @@ from konova.contexts import BaseContext
|
||||
from konova.forms import BaseModalForm, NewDocumentForm, RemoveModalForm
|
||||
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_EDITED
|
||||
|
||||
|
||||
class NewPaymentForm(BaseModalForm):
|
||||
@ -103,6 +103,32 @@ class NewPaymentForm(BaseModalForm):
|
||||
return pay
|
||||
|
||||
|
||||
class EditPaymentModalForm(NewPaymentForm):
|
||||
""" Form handling edit for Payment
|
||||
|
||||
"""
|
||||
payment = None
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.payment = kwargs.pop("payment", None)
|
||||
super().__init__(*args, **kwargs)
|
||||
form_date = {
|
||||
"amount": self.payment.amount,
|
||||
"due": str(self.payment.due_on),
|
||||
"comment": self.payment.comment,
|
||||
}
|
||||
self.load_initial_data(form_date, disabled_fields=[])
|
||||
|
||||
def save(self):
|
||||
payment = self.payment
|
||||
payment.amount = self.cleaned_data.get("amount", None)
|
||||
payment.due_on = self.cleaned_data.get("due", None)
|
||||
payment.comment = self.cleaned_data.get("comment", None)
|
||||
payment.save()
|
||||
self.instance.mark_as_edited(self.user, self.request, edit_comment=PAYMENT_EDITED)
|
||||
return payment
|
||||
|
||||
|
||||
class RemovePaymentModalForm(RemoveModalForm):
|
||||
""" Removing modal form for Payment
|
||||
|
||||
|
@ -117,7 +117,7 @@ class CompensationViewTestCase(BaseViewTestCase):
|
||||
def test_logged_in_no_groups_unshared(self):
|
||||
""" Check correct status code for all requests
|
||||
|
||||
Assumption: User logged in and has no groups and data is shared
|
||||
Assumption: User logged in and has no groups and data is not shared
|
||||
|
||||
Returns:
|
||||
|
||||
|
7
compensation/tests/payment/__init__.py
Normal file
7
compensation/tests/payment/__init__.py
Normal file
@ -0,0 +1,7 @@
|
||||
"""
|
||||
Author: Michel Peltriaux
|
||||
Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany
|
||||
Contact: michel.peltriaux@sgdnord.rlp.de
|
||||
Created on: 09.02.22
|
||||
|
||||
"""
|
154
compensation/tests/payment/test_views.py
Normal file
154
compensation/tests/payment/test_views.py
Normal file
@ -0,0 +1,154 @@
|
||||
"""
|
||||
Author: Michel Peltriaux
|
||||
Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany
|
||||
Contact: michel.peltriaux@sgdnord.rlp.de
|
||||
Created on: 09.02.22
|
||||
|
||||
"""
|
||||
from django.urls import reverse
|
||||
from django.test.client import Client
|
||||
|
||||
from compensation.models import Payment
|
||||
from konova.settings import DEFAULT_GROUP
|
||||
from konova.tests.test_views import BaseViewTestCase
|
||||
|
||||
|
||||
class PaymentViewTestCase(BaseViewTestCase):
|
||||
|
||||
@classmethod
|
||||
def setUpTestData(cls) -> None:
|
||||
super().setUpTestData()
|
||||
|
||||
cls.payment = Payment.objects.get_or_create(
|
||||
intervention=cls.intervention,
|
||||
amount=1,
|
||||
due_on="2020-01-01",
|
||||
comment="Testcomment"
|
||||
)[0]
|
||||
|
||||
cls.new_url = reverse("compensation:pay:new", args=(cls.intervention.id,))
|
||||
cls.edit_url = reverse("compensation:pay:edit", args=(cls.intervention.id, cls.payment.id))
|
||||
cls.remove_url = reverse("compensation:pay:remove", args=(cls.intervention.id, cls.payment.id))
|
||||
|
||||
def test_anonymous_user(self):
|
||||
""" Check correct status code for all requests
|
||||
|
||||
Assumption: User not logged in
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
client = Client()
|
||||
|
||||
success_urls = [
|
||||
]
|
||||
fail_urls = [
|
||||
self.new_url,
|
||||
self.edit_url,
|
||||
self.remove_url,
|
||||
]
|
||||
|
||||
self.assert_url_success(client, success_urls)
|
||||
self.assert_url_fail(client, fail_urls)
|
||||
|
||||
def test_logged_in_no_groups_shared(self):
|
||||
""" Check correct status code for all requests
|
||||
|
||||
Assumption: User logged in and has no groups and data is shared
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
client = Client()
|
||||
client.login(username=self.superuser.username, password=self.superuser_pw)
|
||||
self.superuser.groups.set([])
|
||||
self.intervention.share_with_list([self.superuser])
|
||||
|
||||
# Since the user has no groups, it does not matter that data has been shared. There SHOULD not be any difference
|
||||
# to a user without access, since the important permissions are missing
|
||||
success_urls = [
|
||||
]
|
||||
fail_urls = [
|
||||
self.new_url,
|
||||
self.edit_url,
|
||||
self.remove_url,
|
||||
]
|
||||
|
||||
self.assert_url_success(client, success_urls)
|
||||
self.assert_url_fail(client, fail_urls)
|
||||
|
||||
def test_logged_in_no_groups_unshared(self):
|
||||
""" Check correct status code for all requests
|
||||
|
||||
Assumption: User logged in and has no groups and data is not shared
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
client = Client()
|
||||
client.login(username=self.superuser.username, password=self.superuser_pw)
|
||||
self.superuser.groups.set([])
|
||||
# Sharing is inherited by base intervention for compensation. Therefore configure the interventions share state
|
||||
self.intervention.share_with_list([])
|
||||
|
||||
# Since the user has no groups, it does not matter that data is unshared. There SHOULD not be any difference
|
||||
# to a user having shared access, since all important permissions are missing
|
||||
success_urls = [
|
||||
]
|
||||
fail_urls = [
|
||||
self.new_url,
|
||||
self.edit_url,
|
||||
self.remove_url,
|
||||
]
|
||||
|
||||
self.assert_url_success(client, success_urls)
|
||||
self.assert_url_fail(client, fail_urls)
|
||||
|
||||
def test_logged_in_default_group_shared(self):
|
||||
""" Check correct status code for all requests
|
||||
|
||||
Assumption: User logged in, is default group member and data is shared
|
||||
--> Default group necessary since all base functionalities depend on this group membership
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
client = Client()
|
||||
client.login(username=self.superuser.username, password=self.superuser_pw)
|
||||
group = self.groups.get(name=DEFAULT_GROUP)
|
||||
self.superuser.groups.set([group])
|
||||
# Sharing is inherited by base intervention for compensation. Therefore configure the interventions share state
|
||||
self.intervention.share_with_list([self.superuser])
|
||||
|
||||
success_urls = [
|
||||
self.new_url,
|
||||
self.edit_url,
|
||||
self.remove_url,
|
||||
]
|
||||
self.assert_url_success(client, success_urls)
|
||||
|
||||
def test_logged_in_default_group_unshared(self):
|
||||
""" Check correct status code for all requests
|
||||
|
||||
Assumption: User logged in, is default group member and data is NOT shared
|
||||
--> Default group necessary since all base functionalities depend on this group membership
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
client = Client()
|
||||
client.login(username=self.superuser.username, password=self.superuser_pw)
|
||||
group = self.groups.get(name=DEFAULT_GROUP)
|
||||
self.superuser.groups.set([group])
|
||||
# Sharing is inherited by base intervention for compensation. Therefore configure the interventions share state
|
||||
self.intervention.share_with_list([])
|
||||
|
||||
success_urls = [
|
||||
]
|
||||
fail_urls = [
|
||||
self.new_url,
|
||||
self.edit_url,
|
||||
self.remove_url,
|
||||
]
|
||||
self.assert_url_fail(client, fail_urls)
|
||||
self.assert_url_success(client, success_urls)
|
125
compensation/tests/payment/test_workflow.py
Normal file
125
compensation/tests/payment/test_workflow.py
Normal file
@ -0,0 +1,125 @@
|
||||
"""
|
||||
Author: Michel Peltriaux
|
||||
Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany
|
||||
Contact: michel.peltriaux@sgdnord.rlp.de
|
||||
Created on: 09.02.22
|
||||
|
||||
"""
|
||||
from django.core.exceptions import ObjectDoesNotExist
|
||||
from django.urls import reverse
|
||||
|
||||
from compensation.models import Payment
|
||||
from konova.tests.test_views import BaseWorkflowTestCase
|
||||
from user.models import UserAction
|
||||
|
||||
|
||||
class PaymentWorkflowTestCase(BaseWorkflowTestCase):
|
||||
@classmethod
|
||||
def setUpTestData(cls):
|
||||
super().setUpTestData()
|
||||
|
||||
# Give the user shared access to the dummy intervention
|
||||
cls.intervention.share_with(cls.superuser)
|
||||
|
||||
cls.payment = Payment.objects.get_or_create(
|
||||
intervention=cls.intervention,
|
||||
amount=1,
|
||||
due_on="2020-01-01",
|
||||
comment="Testcomment"
|
||||
)[0]
|
||||
|
||||
def test_new(self):
|
||||
""" Test the creation of a payment
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
# Prepare url and form data to be posted
|
||||
new_url = reverse("compensation:pay:new", args=(self.intervention.id,))
|
||||
test_amount = 12345
|
||||
test_due_on = "1970-01-01"
|
||||
test_comment = self.create_dummy_string()
|
||||
post_data = {
|
||||
"amount": test_amount,
|
||||
"due": test_due_on,
|
||||
"comment": test_comment,
|
||||
}
|
||||
pre_creation_intervention_log_count = self.intervention.log.count()
|
||||
num_payments = self.intervention.payments.count()
|
||||
|
||||
self.client_user.post(new_url, post_data)
|
||||
|
||||
self.intervention.refresh_from_db()
|
||||
|
||||
self.assertEqual(num_payments + 1, self.intervention.payments.count())
|
||||
new_payment = self.intervention.payments.get(amount=test_amount)
|
||||
self.assertEqual(new_payment.amount, test_amount)
|
||||
self.assertEqual(str(new_payment.due_on), test_due_on)
|
||||
self.assertEqual(new_payment.comment, test_comment)
|
||||
|
||||
# Expect logs to be set
|
||||
self.assertEqual(pre_creation_intervention_log_count + 1, self.intervention.log.count())
|
||||
self.assertEqual(self.intervention.log.first().action, UserAction.EDITED)
|
||||
|
||||
def test_edit(self):
|
||||
""" Test edit of a payment
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
# Prepare url and form data to be posted
|
||||
new_url = reverse("compensation:pay:edit", args=(self.intervention.id, self.payment.id))
|
||||
test_amount = self.payment.amount * 2
|
||||
test_due_on = "1970-01-01"
|
||||
test_comment = self.create_dummy_string()
|
||||
post_data = {
|
||||
"amount": test_amount,
|
||||
"due": test_due_on,
|
||||
"comment": test_comment,
|
||||
}
|
||||
pre_edit_intervention_log_count = self.intervention.log.count()
|
||||
num_payments = self.intervention.payments.count()
|
||||
|
||||
self.client_user.post(new_url, post_data)
|
||||
|
||||
self.intervention.refresh_from_db()
|
||||
self.payment.refresh_from_db()
|
||||
|
||||
self.assertEqual(num_payments, self.intervention.payments.count())
|
||||
self.assertEqual(self.payment.amount, test_amount)
|
||||
self.assertEqual(str(self.payment.due_on), test_due_on)
|
||||
self.assertEqual(self.payment.comment, test_comment)
|
||||
|
||||
# Expect logs to be set
|
||||
self.assertEqual(pre_edit_intervention_log_count + 1, self.intervention.log.count())
|
||||
self.assertEqual(self.intervention.log.first().action, UserAction.EDITED)
|
||||
|
||||
def test_remove(self):
|
||||
""" Test remove of a payment
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
# Prepare url and form data to be posted
|
||||
new_url = reverse("compensation:pay:remove", args=(self.intervention.id, self.payment.id))
|
||||
post_data = {
|
||||
"confirm": True,
|
||||
}
|
||||
pre_remove_intervention_log_count = self.intervention.log.count()
|
||||
num_payments = self.intervention.payments.count()
|
||||
|
||||
self.client_user.post(new_url, post_data)
|
||||
|
||||
self.intervention.refresh_from_db()
|
||||
try:
|
||||
self.payment.refresh_from_db()
|
||||
self.fail(msg="Payment still exists after delete")
|
||||
except ObjectDoesNotExist:
|
||||
pass
|
||||
|
||||
self.assertEqual(num_payments - 1, self.intervention.payments.count())
|
||||
|
||||
# Expect logs to be set
|
||||
self.assertEqual(pre_remove_intervention_log_count + 1, self.intervention.log.count())
|
||||
self.assertEqual(self.intervention.log.first().action, UserAction.EDITED)
|
||||
|
@ -12,4 +12,5 @@ app_name = "pay"
|
||||
urlpatterns = [
|
||||
path('<id>/new', new_payment_view, name='new'),
|
||||
path('<id>/remove/<payment_id>', payment_remove_view, name='remove'),
|
||||
path('<id>/edit/<payment_id>', payment_edit_view, name='edit'),
|
||||
]
|
||||
|
@ -11,16 +11,17 @@ from django.contrib.auth.decorators import login_required
|
||||
from django.http import HttpRequest
|
||||
from django.shortcuts import get_object_or_404
|
||||
|
||||
from compensation.forms.modalForms import NewPaymentForm, RemovePaymentModalForm
|
||||
from compensation.forms.modalForms import NewPaymentForm, RemovePaymentModalForm, EditPaymentModalForm
|
||||
from compensation.models import Payment
|
||||
from intervention.models import Intervention
|
||||
from konova.decorators import default_group_required
|
||||
from konova.decorators import default_group_required, shared_access_required
|
||||
from konova.forms import RemoveModalForm
|
||||
from konova.utils.message_templates import PAYMENT_ADDED, PAYMENT_REMOVED
|
||||
from konova.utils.message_templates import PAYMENT_ADDED, PAYMENT_REMOVED, PAYMENT_EDITED
|
||||
|
||||
|
||||
@login_required
|
||||
@default_group_required
|
||||
@shared_access_required(Intervention, "id")
|
||||
def new_payment_view(request: HttpRequest, id: str):
|
||||
""" Renders a modal view for adding new payments
|
||||
|
||||
@ -42,6 +43,7 @@ def new_payment_view(request: HttpRequest, id: str):
|
||||
|
||||
@login_required
|
||||
@default_group_required
|
||||
@shared_access_required(Intervention, "id")
|
||||
def payment_remove_view(request: HttpRequest, id: str, payment_id: str):
|
||||
""" Renders a modal view for removing payments
|
||||
|
||||
@ -62,3 +64,27 @@ def payment_remove_view(request: HttpRequest, id: str, payment_id: str):
|
||||
redirect_url=reverse("intervention:detail", args=(payment.intervention_id,)) + "#related_data"
|
||||
)
|
||||
|
||||
|
||||
@login_required
|
||||
@default_group_required
|
||||
@shared_access_required(Intervention, "id")
|
||||
def payment_edit_view(request: HttpRequest, id: str, payment_id: str):
|
||||
""" Renders a modal view for editing payments
|
||||
|
||||
Args:
|
||||
request (HttpRequest): The incoming request
|
||||
id (str): The intervention's id
|
||||
payment_id (str): The payment's id
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
intervention = get_object_or_404(Intervention, id=id)
|
||||
payment = get_object_or_404(Payment, id=payment_id)
|
||||
form = EditPaymentModalForm(request.POST or None, instance=intervention, payment=payment, request=request)
|
||||
return form.process_request(
|
||||
request=request,
|
||||
msg_success=PAYMENT_EDITED,
|
||||
redirect_url=reverse("intervention:detail", args=(payment.intervention_id,)) + "#related_data"
|
||||
)
|
||||
|
||||
|
@ -54,9 +54,12 @@
|
||||
{{ pay.comment }}
|
||||
</div>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<td class="align-middle float-right">
|
||||
{% if is_default_member and has_access %}
|
||||
<button data-form-url="{% url 'compensation:pay:remove' obj.id pay.id %}" class="btn btn-default btn-modal float-right" title="{% trans 'Remove payment' %}">
|
||||
<button data-form-url="{% url 'compensation:pay:edit' obj.id pay.id %}" class="btn btn-default btn-modal" title="{% trans 'Edit payment' %}">
|
||||
{% fa5_icon 'edit' %}
|
||||
</button>
|
||||
<button data-form-url="{% url 'compensation:pay:remove' obj.id pay.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove payment' %}">
|
||||
{% fa5_icon 'trash' %}
|
||||
</button>
|
||||
{% endif %}
|
||||
|
@ -87,7 +87,7 @@ class BaseForm(forms.Form):
|
||||
"""
|
||||
self.fields[field].widget.attrs["placeholder"] = val
|
||||
|
||||
def load_initial_data(self, form_data: dict, disabled_fields: list):
|
||||
def load_initial_data(self, form_data: dict, disabled_fields: list = None):
|
||||
""" Initializes form data from instance
|
||||
|
||||
Inserts instance data into form and disables form fields
|
||||
@ -99,8 +99,9 @@ class BaseForm(forms.Form):
|
||||
return
|
||||
for k, v in form_data.items():
|
||||
self.initialize_form_field(k, v)
|
||||
for field in disabled_fields:
|
||||
self.disable_form_field(field)
|
||||
if disabled_fields:
|
||||
for field in disabled_fields:
|
||||
self.disable_form_field(field)
|
||||
|
||||
def add_widget_html_class(self, field: str, cls: str):
|
||||
""" Adds a HTML class string to the widget of a field
|
||||
|
@ -46,6 +46,7 @@ DEADLINE_REMOVED = _("Deadline removed")
|
||||
|
||||
# PAYMENTS
|
||||
PAYMENT_ADDED = _("Payment added")
|
||||
PAYMENT_EDITED = _("Payment edited")
|
||||
PAYMENT_REMOVED = _("Payment removed")
|
||||
|
||||
# REVOCATIONS
|
||||
|
Binary file not shown.
@ -5,7 +5,7 @@
|
||||
#
|
||||
#: compensation/filters.py:122 compensation/forms/modalForms.py:35
|
||||
#: compensation/forms/modalForms.py:46 compensation/forms/modalForms.py:62
|
||||
#: compensation/forms/modalForms.py:306 compensation/forms/modalForms.py:399
|
||||
#: compensation/forms/modalForms.py:329 compensation/forms/modalForms.py:422
|
||||
#: intervention/forms/forms.py:54 intervention/forms/forms.py:156
|
||||
#: intervention/forms/forms.py:168 intervention/forms/modalForms.py:124
|
||||
#: intervention/forms/modalForms.py:137 intervention/forms/modalForms.py:150
|
||||
@ -18,15 +18,15 @@
|
||||
#: konova/filters/mixins.py:270 konova/filters/mixins.py:315
|
||||
#: konova/filters/mixins.py:353 konova/filters/mixins.py:354
|
||||
#: konova/filters/mixins.py:385 konova/filters/mixins.py:386
|
||||
#: konova/forms.py:140 konova/forms.py:241 konova/forms.py:312
|
||||
#: konova/forms.py:356 konova/forms.py:366 konova/forms.py:379
|
||||
#: konova/forms.py:391 konova/forms.py:409 user/forms.py:42
|
||||
#: konova/forms.py:141 konova/forms.py:242 konova/forms.py:313
|
||||
#: konova/forms.py:357 konova/forms.py:367 konova/forms.py:380
|
||||
#: konova/forms.py:392 konova/forms.py:410 user/forms.py:42
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-02-08 15:16+0100\n"
|
||||
"POT-Creation-Date: 2022-02-09 09:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -75,7 +75,7 @@ msgstr "Bericht generieren"
|
||||
msgid "Select a timespan and the desired conservation office"
|
||||
msgstr "Wählen Sie die Zeitspanne und die gewünschte Eintragungsstelle"
|
||||
|
||||
#: analysis/forms.py:69 konova/forms.py:188
|
||||
#: analysis/forms.py:69 konova/forms.py:189
|
||||
msgid "Continue"
|
||||
msgstr "Weiter"
|
||||
|
||||
@ -95,7 +95,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/modalForms.py:383
|
||||
#: compensation/forms/modalForms.py:406
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:34
|
||||
#: intervention/templates/intervention/detail/includes/deductions.html:31
|
||||
msgid "Amount"
|
||||
@ -152,7 +152,7 @@ msgstr "Geprüft"
|
||||
#: analysis/templates/analysis/reports/includes/intervention/compensated_by.html:9
|
||||
#: analysis/templates/analysis/reports/includes/intervention/laws.html:20
|
||||
#: analysis/templates/analysis/reports/includes/old_data/amount.html:18
|
||||
#: compensation/tables.py:46 compensation/tables.py:219
|
||||
#: compensation/tables.py:46 compensation/tables.py:222
|
||||
#: compensation/templates/compensation/detail/compensation/view.html:77
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:31
|
||||
#: compensation/templates/compensation/detail/eco_account/view.html:44
|
||||
@ -213,7 +213,7 @@ 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:167
|
||||
#: compensation/forms/modalForms.py:190
|
||||
#: 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
|
||||
@ -239,7 +239,6 @@ msgstr "Kompensationsart"
|
||||
|
||||
#: analysis/templates/analysis/reports/includes/intervention/compensated_by.html:15
|
||||
#: analysis/templates/analysis/reports/includes/old_data/amount.html:29
|
||||
#: compensation/tables.py:90
|
||||
#: compensation/templates/compensation/detail/compensation/view.html:19
|
||||
#: konova/templates/konova/includes/quickstart/compensations.html:4
|
||||
#: templates/navbars/navbar.html:28
|
||||
@ -284,8 +283,8 @@ msgid "Type"
|
||||
msgstr "Typ"
|
||||
|
||||
#: analysis/templates/analysis/reports/includes/old_data/amount.html:24
|
||||
#: intervention/forms/modalForms.py:322 intervention/forms/modalForms.py:329
|
||||
#: intervention/tables.py:88
|
||||
#: compensation/tables.py:89 intervention/forms/modalForms.py:322
|
||||
#: intervention/forms/modalForms.py:329 intervention/tables.py:88
|
||||
#: intervention/templates/intervention/detail/view.html:19
|
||||
#: konova/templates/konova/includes/quickstart/interventions.html:4
|
||||
#: templates/navbars/navbar.html:22
|
||||
@ -293,7 +292,7 @@ msgid "Intervention"
|
||||
msgstr "Eingriff"
|
||||
|
||||
#: analysis/templates/analysis/reports/includes/old_data/amount.html:34
|
||||
#: compensation/tables.py:263
|
||||
#: compensation/tables.py:266
|
||||
#: compensation/templates/compensation/detail/eco_account/view.html:19
|
||||
#: intervention/forms/modalForms.py:295 intervention/forms/modalForms.py:302
|
||||
#: konova/templates/konova/includes/quickstart/ecoaccounts.html:4
|
||||
@ -314,7 +313,7 @@ msgid "Show only unrecorded"
|
||||
msgstr "Nur unverzeichnete anzeigen"
|
||||
|
||||
#: compensation/forms/forms.py:32 compensation/tables.py:25
|
||||
#: compensation/tables.py:194 ema/tables.py:29 intervention/forms/forms.py:28
|
||||
#: compensation/tables.py:197 ema/tables.py:29 intervention/forms/forms.py:28
|
||||
#: intervention/tables.py:24
|
||||
#: intervention/templates/intervention/detail/includes/compensations.html:30
|
||||
msgid "Identifier"
|
||||
@ -326,7 +325,7 @@ msgid "Generated automatically"
|
||||
msgstr "Automatisch generiert"
|
||||
|
||||
#: compensation/forms/forms.py:44 compensation/tables.py:30
|
||||
#: compensation/tables.py:199
|
||||
#: compensation/tables.py:202
|
||||
#: compensation/templates/compensation/detail/compensation/includes/documents.html:28
|
||||
#: compensation/templates/compensation/detail/compensation/view.html:31
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/documents.html:28
|
||||
@ -341,7 +340,7 @@ msgstr "Automatisch generiert"
|
||||
#: intervention/templates/intervention/detail/includes/documents.html:28
|
||||
#: intervention/templates/intervention/detail/view.html:31
|
||||
#: intervention/templates/intervention/report/report.html:12
|
||||
#: konova/forms.py:355
|
||||
#: konova/forms.py:356
|
||||
msgid "Title"
|
||||
msgstr "Bezeichnung"
|
||||
|
||||
@ -354,7 +353,7 @@ msgid "Compensation XY; Location ABC"
|
||||
msgstr "Kompensation XY; Flur ABC"
|
||||
|
||||
#: compensation/forms/forms.py:57 compensation/forms/modalForms.py:61
|
||||
#: compensation/forms/modalForms.py:305 compensation/forms/modalForms.py:398
|
||||
#: compensation/forms/modalForms.py:328 compensation/forms/modalForms.py:421
|
||||
#: 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
|
||||
@ -368,11 +367,11 @@ msgstr "Kompensation XY; Flur ABC"
|
||||
#: intervention/templates/intervention/detail/includes/documents.html:31
|
||||
#: intervention/templates/intervention/detail/includes/payments.html:34
|
||||
#: intervention/templates/intervention/detail/includes/revocation.html:38
|
||||
#: konova/forms.py:390 konova/templates/konova/includes/comment_card.html:16
|
||||
#: konova/forms.py:391 konova/templates/konova/includes/comment_card.html:16
|
||||
msgid "Comment"
|
||||
msgstr "Kommentar"
|
||||
|
||||
#: compensation/forms/forms.py:59 compensation/forms/modalForms.py:400
|
||||
#: compensation/forms/forms.py:59 compensation/forms/modalForms.py:423
|
||||
#: intervention/forms/forms.py:182
|
||||
msgid "Additional comment"
|
||||
msgstr "Zusätzlicher Kommentar"
|
||||
@ -483,8 +482,8 @@ msgstr "Fällig am"
|
||||
msgid "Due on which date"
|
||||
msgstr "Zahlung wird an diesem Datum erwartet"
|
||||
|
||||
#: compensation/forms/modalForms.py:63 compensation/forms/modalForms.py:307
|
||||
#: intervention/forms/modalForms.py:151 konova/forms.py:392
|
||||
#: compensation/forms/modalForms.py:63 compensation/forms/modalForms.py:330
|
||||
#: intervention/forms/modalForms.py:151 konova/forms.py:393
|
||||
msgid "Additional comment, maximum {} letters"
|
||||
msgstr "Zusätzlicher Kommentar, maximal {} Zeichen"
|
||||
|
||||
@ -496,47 +495,47 @@ msgstr "Neue Ersatzzahlung zu Eingriff '{}' hinzufügen"
|
||||
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/modalForms.py:131 compensation/forms/modalForms.py:143
|
||||
#: compensation/forms/modalForms.py:154 compensation/forms/modalForms.py:166
|
||||
msgid "Biotope Type"
|
||||
msgstr "Biotoptyp"
|
||||
|
||||
#: compensation/forms/modalForms.py:134
|
||||
#: compensation/forms/modalForms.py:157
|
||||
msgid "Select the biotope type"
|
||||
msgstr "Biotoptyp wählen"
|
||||
|
||||
#: compensation/forms/modalForms.py:148 compensation/forms/modalForms.py:160
|
||||
#: compensation/forms/modalForms.py:171 compensation/forms/modalForms.py:183
|
||||
msgid "Biotope additional type"
|
||||
msgstr "Zusatzbezeichnung"
|
||||
|
||||
#: compensation/forms/modalForms.py:151
|
||||
#: compensation/forms/modalForms.py:174
|
||||
msgid "Select an additional biotope type"
|
||||
msgstr "Zusatzbezeichnung wählen"
|
||||
|
||||
#: compensation/forms/modalForms.py:170 intervention/forms/modalForms.py:313
|
||||
#: compensation/forms/modalForms.py:193 intervention/forms/modalForms.py:313
|
||||
msgid "in m²"
|
||||
msgstr ""
|
||||
|
||||
#: compensation/forms/modalForms.py:181
|
||||
#: compensation/forms/modalForms.py:204
|
||||
msgid "New state"
|
||||
msgstr "Neuer Zustand"
|
||||
|
||||
#: compensation/forms/modalForms.py:182
|
||||
#: compensation/forms/modalForms.py:205
|
||||
msgid "Insert data for the new state"
|
||||
msgstr "Geben Sie die Daten des neuen Zustandes ein"
|
||||
|
||||
#: compensation/forms/modalForms.py:189 konova/forms.py:190
|
||||
#: compensation/forms/modalForms.py:212 konova/forms.py:191
|
||||
msgid "Object removed"
|
||||
msgstr "Objekt entfernt"
|
||||
|
||||
#: compensation/forms/modalForms.py:277
|
||||
#: compensation/forms/modalForms.py:300
|
||||
msgid "Deadline Type"
|
||||
msgstr "Fristart"
|
||||
|
||||
#: compensation/forms/modalForms.py:280
|
||||
#: compensation/forms/modalForms.py:303
|
||||
msgid "Select the deadline type"
|
||||
msgstr "Fristart wählen"
|
||||
|
||||
#: compensation/forms/modalForms.py:289
|
||||
#: compensation/forms/modalForms.py:312
|
||||
#: 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
|
||||
@ -544,27 +543,27 @@ msgstr "Fristart wählen"
|
||||
msgid "Date"
|
||||
msgstr "Datum"
|
||||
|
||||
#: compensation/forms/modalForms.py:292
|
||||
#: compensation/forms/modalForms.py:315
|
||||
msgid "Select date"
|
||||
msgstr "Datum wählen"
|
||||
|
||||
#: compensation/forms/modalForms.py:319
|
||||
#: compensation/forms/modalForms.py:342
|
||||
msgid "New deadline"
|
||||
msgstr "Neue Frist"
|
||||
|
||||
#: compensation/forms/modalForms.py:320
|
||||
#: compensation/forms/modalForms.py:343
|
||||
msgid "Insert data for the new deadline"
|
||||
msgstr "Geben Sie die Daten der neuen Frist ein"
|
||||
|
||||
#: compensation/forms/modalForms.py:337
|
||||
#: compensation/forms/modalForms.py:360
|
||||
msgid "Action Type"
|
||||
msgstr "Maßnahmentyp"
|
||||
|
||||
#: compensation/forms/modalForms.py:340
|
||||
#: compensation/forms/modalForms.py:363
|
||||
msgid "Select the action type"
|
||||
msgstr "Maßnahmentyp wählen"
|
||||
|
||||
#: compensation/forms/modalForms.py:349
|
||||
#: compensation/forms/modalForms.py:372
|
||||
#: 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
|
||||
@ -590,31 +589,31 @@ msgstr "Maßnahmentyp wählen"
|
||||
msgid "Action"
|
||||
msgstr "Aktionen"
|
||||
|
||||
#: compensation/forms/modalForms.py:354 compensation/forms/modalForms.py:366
|
||||
#: compensation/forms/modalForms.py:377 compensation/forms/modalForms.py:389
|
||||
msgid "Action Type detail"
|
||||
msgstr "Zusatzmerkmal"
|
||||
|
||||
#: compensation/forms/modalForms.py:357
|
||||
#: compensation/forms/modalForms.py:380
|
||||
msgid "Select the action type detail"
|
||||
msgstr "Zusatzmerkmal wählen"
|
||||
|
||||
#: compensation/forms/modalForms.py:371
|
||||
#: compensation/forms/modalForms.py:394
|
||||
msgid "Unit"
|
||||
msgstr "Einheit"
|
||||
|
||||
#: compensation/forms/modalForms.py:374
|
||||
#: compensation/forms/modalForms.py:397
|
||||
msgid "Select the unit"
|
||||
msgstr "Einheit wählen"
|
||||
|
||||
#: compensation/forms/modalForms.py:386
|
||||
#: compensation/forms/modalForms.py:409
|
||||
msgid "Insert the amount"
|
||||
msgstr "Menge eingeben"
|
||||
|
||||
#: compensation/forms/modalForms.py:411
|
||||
#: compensation/forms/modalForms.py:434
|
||||
msgid "New action"
|
||||
msgstr "Neue Maßnahme"
|
||||
|
||||
#: compensation/forms/modalForms.py:412
|
||||
#: compensation/forms/modalForms.py:435
|
||||
msgid "Insert data for the new action"
|
||||
msgstr "Geben Sie die Daten der neuen Maßnahme ein"
|
||||
|
||||
@ -657,35 +656,35 @@ msgstr ""
|
||||
"Es wurde bereits mehr Fläche abgebucht, als Sie nun als abbuchbar einstellen "
|
||||
"wollen. Kontaktieren Sie die für die Abbuchungen verantwortlichen Nutzer!"
|
||||
|
||||
#: compensation/tables.py:35 compensation/tables.py:204 ema/tables.py:39
|
||||
#: compensation/tables.py:35 compensation/tables.py:207 ema/tables.py:39
|
||||
#: intervention/tables.py:34 konova/filters/mixins.py:98
|
||||
msgid "Parcel gmrkng"
|
||||
msgstr "Gemarkung"
|
||||
|
||||
#: compensation/tables.py:52 compensation/tables.py:225 ema/tables.py:50
|
||||
#: compensation/tables.py:52 compensation/tables.py:228 ema/tables.py:50
|
||||
#: intervention/tables.py:51
|
||||
msgid "Editable"
|
||||
msgstr "Freigegeben"
|
||||
|
||||
#: compensation/tables.py:58 compensation/tables.py:231 ema/tables.py:56
|
||||
#: compensation/tables.py:58 compensation/tables.py:234 ema/tables.py:56
|
||||
#: intervention/tables.py:57
|
||||
msgid "Last edit"
|
||||
msgstr "Zuletzt bearbeitet"
|
||||
|
||||
#: compensation/tables.py:90 compensation/tables.py:263 ema/tables.py:89
|
||||
#: compensation/tables.py:89 compensation/tables.py:266 ema/tables.py:89
|
||||
#: intervention/tables.py:88
|
||||
msgid "Open {}"
|
||||
msgstr "Öffne {}"
|
||||
|
||||
#: compensation/tables.py:111 intervention/tables.py:111
|
||||
#: compensation/tables.py:114 intervention/tables.py:111
|
||||
msgid "Not checked yet"
|
||||
msgstr "Noch nicht geprüft"
|
||||
|
||||
#: compensation/tables.py:116 intervention/tables.py:116
|
||||
#: compensation/tables.py:119 intervention/tables.py:116
|
||||
msgid "Checked on {} by {}"
|
||||
msgstr "Am {} von {} geprüft worden"
|
||||
|
||||
#: compensation/tables.py:157
|
||||
#: compensation/tables.py:160
|
||||
#: compensation/templates/compensation/detail/compensation/view.html:80
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:58
|
||||
#: compensation/templates/compensation/detail/eco_account/view.html:47
|
||||
@ -695,32 +694,32 @@ msgstr "Am {} von {} geprüft worden"
|
||||
msgid "Not recorded yet"
|
||||
msgstr "Noch nicht verzeichnet"
|
||||
|
||||
#: compensation/tables.py:162 compensation/tables.py:323 ema/tables.py:136
|
||||
#: compensation/tables.py:165 compensation/tables.py:326 ema/tables.py:136
|
||||
#: intervention/tables.py:162
|
||||
msgid "Recorded on {} by {}"
|
||||
msgstr "Am {} von {} verzeichnet worden"
|
||||
|
||||
#: compensation/tables.py:186 compensation/tables.py:345 ema/tables.py:159
|
||||
#: compensation/tables.py:189 compensation/tables.py:348 ema/tables.py:159
|
||||
#: intervention/tables.py:185
|
||||
msgid "Full access granted"
|
||||
msgstr "Für Sie freigegeben - Datensatz kann bearbeitet werden"
|
||||
|
||||
#: compensation/tables.py:186 compensation/tables.py:345 ema/tables.py:159
|
||||
#: compensation/tables.py:189 compensation/tables.py:348 ema/tables.py:159
|
||||
#: intervention/tables.py:185
|
||||
msgid "Access not granted"
|
||||
msgstr "Nicht freigegeben - Datensatz nur lesbar"
|
||||
|
||||
#: compensation/tables.py:209
|
||||
#: compensation/tables.py:212
|
||||
#: compensation/templates/compensation/detail/eco_account/view.html:35
|
||||
#: konova/templates/konova/widgets/progressbar.html:3
|
||||
msgid "Available"
|
||||
msgstr "Verfügbar"
|
||||
|
||||
#: compensation/tables.py:240
|
||||
#: compensation/tables.py:243
|
||||
msgid "Eco Accounts"
|
||||
msgstr "Ökokonten"
|
||||
|
||||
#: compensation/tables.py:318
|
||||
#: compensation/tables.py:321
|
||||
msgid "Not recorded yet. Can not be used for deductions, yet."
|
||||
msgstr ""
|
||||
"Noch nicht verzeichnet. Kann noch nicht für Abbuchungen genutzt werden."
|
||||
@ -822,7 +821,7 @@ msgstr "Dokumente"
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/documents.html:14
|
||||
#: ema/templates/ema/detail/includes/documents.html:14
|
||||
#: intervention/templates/intervention/detail/includes/documents.html:14
|
||||
#: konova/forms.py:408
|
||||
#: konova/forms.py:409
|
||||
msgid "Add new document"
|
||||
msgstr "Neues Dokument hinzufügen"
|
||||
|
||||
@ -1086,17 +1085,17 @@ msgid "Compensation {} edited"
|
||||
msgstr "Kompensation {} bearbeitet"
|
||||
|
||||
#: compensation/views/compensation.py:159 compensation/views/eco_account.py:161
|
||||
#: ema/views.py:230 intervention/views.py:313
|
||||
#: ema/views.py:230 intervention/views.py:305
|
||||
msgid "Edit {}"
|
||||
msgstr "Bearbeite {}"
|
||||
|
||||
#: compensation/views/compensation.py:238 compensation/views/eco_account.py:317
|
||||
#: ema/views.py:191 intervention/views.py:491
|
||||
#: ema/views.py:191 intervention/views.py:483
|
||||
msgid "Log"
|
||||
msgstr "Log"
|
||||
|
||||
#: compensation/views/compensation.py:487 compensation/views/eco_account.py:590
|
||||
#: ema/views.py:477 intervention/views.py:609
|
||||
#: ema/views.py:477 intervention/views.py:601
|
||||
msgid "Report {}"
|
||||
msgstr "Bericht {}"
|
||||
|
||||
@ -1117,32 +1116,32 @@ msgid "Eco-account removed"
|
||||
msgstr "Ökokonto entfernt"
|
||||
|
||||
#: compensation/views/eco_account.py:338 ema/views.py:272
|
||||
#: intervention/views.py:562
|
||||
#: intervention/views.py:554
|
||||
msgid "{} unrecorded"
|
||||
msgstr "{} entzeichnet"
|
||||
|
||||
#: compensation/views/eco_account.py:338 ema/views.py:272
|
||||
#: intervention/views.py:562
|
||||
#: intervention/views.py:554
|
||||
msgid "{} recorded"
|
||||
msgstr "{} verzeichnet"
|
||||
|
||||
#: compensation/views/eco_account.py:663 ema/views.py:543
|
||||
#: intervention/views.py:388
|
||||
#: intervention/views.py:380
|
||||
msgid "{} has already been shared with you"
|
||||
msgstr "{} wurde bereits für Sie freigegeben"
|
||||
|
||||
#: compensation/views/eco_account.py:668 ema/views.py:548
|
||||
#: intervention/views.py:393
|
||||
#: intervention/views.py:385
|
||||
msgid "{} has been shared with you"
|
||||
msgstr "{} ist nun für Sie freigegeben"
|
||||
|
||||
#: compensation/views/eco_account.py:675 ema/views.py:555
|
||||
#: intervention/views.py:400
|
||||
#: intervention/views.py:392
|
||||
msgid "Share link invalid"
|
||||
msgstr "Freigabelink ungültig"
|
||||
|
||||
#: compensation/views/eco_account.py:698 ema/views.py:578
|
||||
#: intervention/views.py:423
|
||||
#: intervention/views.py:415
|
||||
msgid "Share settings updated"
|
||||
msgstr "Freigabe Einstellungen aktualisiert"
|
||||
|
||||
@ -1314,7 +1313,7 @@ msgstr "Kompensationen und Zahlungen geprüft"
|
||||
msgid "Run check"
|
||||
msgstr "Prüfung vornehmen"
|
||||
|
||||
#: intervention/forms/modalForms.py:213 konova/forms.py:474
|
||||
#: intervention/forms/modalForms.py:213 konova/forms.py:475
|
||||
msgid ""
|
||||
"I, {} {}, confirm that all necessary control steps have been performed by "
|
||||
"myself."
|
||||
@ -1389,6 +1388,10 @@ msgid "Amount"
|
||||
msgstr "Betrag"
|
||||
|
||||
#: intervention/templates/intervention/detail/includes/payments.html:59
|
||||
msgid "Edit payment"
|
||||
msgstr "Zahlung bearbeitet"
|
||||
|
||||
#: intervention/templates/intervention/detail/includes/payments.html:62
|
||||
msgid "Remove payment"
|
||||
msgstr "Zahlung entfernen"
|
||||
|
||||
@ -1449,23 +1452,19 @@ msgstr "Eingriffe - Übersicht"
|
||||
msgid "Intervention {} added"
|
||||
msgstr "Eingriff {} hinzugefügt"
|
||||
|
||||
#: intervention/views.py:252
|
||||
msgid "This intervention has {} revocations"
|
||||
msgstr "Dem Eingriff liegen {} Widersprüche vor"
|
||||
|
||||
#: intervention/views.py:301
|
||||
#: intervention/views.py:293
|
||||
msgid "Intervention {} edited"
|
||||
msgstr "Eingriff {} bearbeitet"
|
||||
|
||||
#: intervention/views.py:337
|
||||
#: intervention/views.py:329
|
||||
msgid "{} removed"
|
||||
msgstr "{} entfernt"
|
||||
|
||||
#: intervention/views.py:444
|
||||
#: intervention/views.py:436
|
||||
msgid "Check performed"
|
||||
msgstr "Prüfung durchgeführt"
|
||||
|
||||
#: intervention/views.py:567
|
||||
#: intervention/views.py:559
|
||||
msgid "There are errors on this intervention:"
|
||||
msgstr "Es liegen Fehler in diesem Eingriff vor:"
|
||||
|
||||
@ -1557,73 +1556,73 @@ msgstr "Speichern"
|
||||
msgid "Not editable"
|
||||
msgstr "Nicht editierbar"
|
||||
|
||||
#: konova/forms.py:139 konova/forms.py:311
|
||||
#: konova/forms.py:140 konova/forms.py:312
|
||||
msgid "Confirm"
|
||||
msgstr "Bestätige"
|
||||
|
||||
#: konova/forms.py:151 konova/forms.py:320
|
||||
#: konova/forms.py:152 konova/forms.py:321
|
||||
msgid "Remove"
|
||||
msgstr "Löschen"
|
||||
|
||||
#: konova/forms.py:153
|
||||
#: konova/forms.py:154
|
||||
msgid "You are about to remove {} {}"
|
||||
msgstr "Sie sind dabei {} {} zu löschen"
|
||||
|
||||
#: konova/forms.py:240 konova/utils/quality.py:44 konova/utils/quality.py:46
|
||||
#: konova/forms.py:241 konova/utils/quality.py:44 konova/utils/quality.py:46
|
||||
#: templates/form/collapsable/form.html:45
|
||||
msgid "Geometry"
|
||||
msgstr "Geometrie"
|
||||
|
||||
#: konova/forms.py:321
|
||||
#: konova/forms.py:322
|
||||
msgid "Are you sure?"
|
||||
msgstr "Sind Sie sicher?"
|
||||
|
||||
#: konova/forms.py:365
|
||||
#: konova/forms.py:366
|
||||
msgid "Created on"
|
||||
msgstr "Erstellt"
|
||||
|
||||
#: konova/forms.py:367
|
||||
#: konova/forms.py:368
|
||||
msgid "When has this file been created? Important for photos."
|
||||
msgstr "Wann wurde diese Datei erstellt oder das Foto aufgenommen?"
|
||||
|
||||
#: konova/forms.py:378
|
||||
#: konova/forms.py:379
|
||||
#: venv/lib/python3.7/site-packages/django/db/models/fields/files.py:231
|
||||
msgid "File"
|
||||
msgstr "Datei"
|
||||
|
||||
#: konova/forms.py:380
|
||||
#: konova/forms.py:381
|
||||
msgid "Allowed formats: pdf, jpg, png. Max size 15 MB."
|
||||
msgstr "Formate: pdf, jpg, png. Maximal 15 MB."
|
||||
|
||||
#: konova/forms.py:426
|
||||
#: konova/forms.py:427
|
||||
msgid "Unsupported file type"
|
||||
msgstr "Dateiformat nicht unterstützt"
|
||||
|
||||
#: konova/forms.py:433
|
||||
#: konova/forms.py:434
|
||||
msgid "File too large"
|
||||
msgstr "Datei zu groß"
|
||||
|
||||
#: konova/forms.py:442
|
||||
#: konova/forms.py:443
|
||||
msgid "Added document"
|
||||
msgstr "Dokument hinzugefügt"
|
||||
|
||||
#: konova/forms.py:465
|
||||
#: konova/forms.py:466
|
||||
msgid "Confirm record"
|
||||
msgstr "Verzeichnen bestätigen"
|
||||
|
||||
#: konova/forms.py:473
|
||||
#: konova/forms.py:474
|
||||
msgid "Record data"
|
||||
msgstr "Daten verzeichnen"
|
||||
|
||||
#: konova/forms.py:480
|
||||
#: konova/forms.py:481
|
||||
msgid "Confirm unrecord"
|
||||
msgstr "Entzeichnen bestätigen"
|
||||
|
||||
#: konova/forms.py:481
|
||||
#: konova/forms.py:482
|
||||
msgid "Unrecord data"
|
||||
msgstr "Daten entzeichnen"
|
||||
|
||||
#: konova/forms.py:482
|
||||
#: konova/forms.py:483
|
||||
msgid "I, {} {}, confirm that this data must be unrecorded."
|
||||
msgstr ""
|
||||
"Ich, {} {}, bestätige, dass diese Daten wieder entzeichnet werden müssen."
|
||||
@ -1857,37 +1856,45 @@ msgid "Payment added"
|
||||
msgstr "Zahlung hinzugefügt"
|
||||
|
||||
#: konova/utils/message_templates.py:49
|
||||
msgid "Payment edited"
|
||||
msgstr "Zahlung bearbeitet"
|
||||
|
||||
#: konova/utils/message_templates.py:50
|
||||
msgid "Payment removed"
|
||||
msgstr "Zahlung gelöscht"
|
||||
|
||||
#: konova/utils/message_templates.py:52
|
||||
#: konova/utils/message_templates.py:53
|
||||
msgid "Revocation added"
|
||||
msgstr "Widerspruch hinzugefügt"
|
||||
|
||||
#: konova/utils/message_templates.py:53
|
||||
#: konova/utils/message_templates.py:54
|
||||
msgid "Revocation removed"
|
||||
msgstr "Widerspruch entfernt"
|
||||
|
||||
#: konova/utils/message_templates.py:56
|
||||
#: konova/utils/message_templates.py:57
|
||||
msgid "Document '{}' deleted"
|
||||
msgstr "Dokument '{}' gelöscht"
|
||||
|
||||
#: konova/utils/message_templates.py:57
|
||||
#: konova/utils/message_templates.py:58
|
||||
msgid "Document added"
|
||||
msgstr "Dokument hinzugefügt"
|
||||
|
||||
#: konova/utils/message_templates.py:60
|
||||
#: konova/utils/message_templates.py:61
|
||||
msgid "Edited general data"
|
||||
msgstr "Allgemeine Daten bearbeitet"
|
||||
|
||||
#: konova/utils/message_templates.py:61
|
||||
#: konova/utils/message_templates.py:62
|
||||
msgid "Added deadline"
|
||||
msgstr "Frist/Termin hinzugefügt"
|
||||
|
||||
#: konova/utils/message_templates.py:64
|
||||
#: konova/utils/message_templates.py:65
|
||||
msgid "Geometry conflict detected with {}"
|
||||
msgstr "Geometriekonflikt mit folgenden Einträgen erkannt: {}"
|
||||
|
||||
#: konova/utils/message_templates.py:68
|
||||
msgid "This intervention has {} revocations"
|
||||
msgstr "Dem Eingriff liegen {} Widersprüche vor"
|
||||
|
||||
#: konova/utils/messenger.py:70
|
||||
msgid "{} checked"
|
||||
msgstr "{} geprüft"
|
||||
@ -3942,9 +3949,6 @@ msgstr ""
|
||||
#~ msgid "No file given!"
|
||||
#~ msgstr "Keine Datei angegeben!"
|
||||
|
||||
#~ msgid "Added payment"
|
||||
#~ msgstr "Zahlung hinzufügen"
|
||||
|
||||
#~ msgid "Added state"
|
||||
#~ msgstr "Zustand hinzugefügt"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user