* adds NewCompensationForm content and functionality
* renames CODELIST_COMPENSATION_COMBINATION_ID into CODELIST_COMPENSATION_FUNDING_ID for more clarity
* reorganizes compensation forms into compensation/forms/forms.py and forms/modalForms.py
* adds new compensation html template in compensation/templates/compensation/new
* adds new default message template in message_templates.py: IDENTIFIER_REPLACED
* adds/updates translations
This commit is contained in:
mipel 2021-10-04 09:55:59 +02:00
parent a44c014f4b
commit b7ef6ff006
17 changed files with 441 additions and 174 deletions

View File

@ -13,7 +13,7 @@ from codelist.models import KonovaCode, KonovaCodeList
from codelist.settings import CODELIST_INTERVENTION_HANDLER_ID, CODELIST_CONSERVATION_OFFICE_ID, \ from codelist.settings import CODELIST_INTERVENTION_HANDLER_ID, CODELIST_CONSERVATION_OFFICE_ID, \
CODELIST_REGISTRATION_OFFICE_ID, CODELIST_BIOTOPES_ID, CODELIST_LAW_ID, CODELIST_COMPENSATION_HANDLER_ID, \ CODELIST_REGISTRATION_OFFICE_ID, CODELIST_BIOTOPES_ID, CODELIST_LAW_ID, CODELIST_COMPENSATION_HANDLER_ID, \
CODELIST_COMPENSATION_ACTION_ID, CODELIST_COMPENSATION_ACTION_CLASS_ID, CODELIST_COMPENSATION_ADDITIONAL_TYPE_ID, \ CODELIST_COMPENSATION_ACTION_ID, CODELIST_COMPENSATION_ACTION_CLASS_ID, CODELIST_COMPENSATION_ADDITIONAL_TYPE_ID, \
CODELIST_COMPENSATION_COMBINATION_ID, CODELIST_BASE_URL, CODELIST_PROCESS_TYPE_ID CODELIST_COMPENSATION_FUNDING_ID, CODELIST_BASE_URL, CODELIST_PROCESS_TYPE_ID
bool_map = { bool_map = {
"true": True, "true": True,
@ -35,7 +35,7 @@ class Command(BaseCommand):
CODELIST_COMPENSATION_ACTION_ID, CODELIST_COMPENSATION_ACTION_ID,
CODELIST_COMPENSATION_ACTION_CLASS_ID, CODELIST_COMPENSATION_ACTION_CLASS_ID,
CODELIST_COMPENSATION_ADDITIONAL_TYPE_ID, CODELIST_COMPENSATION_ADDITIONAL_TYPE_ID,
CODELIST_COMPENSATION_COMBINATION_ID, CODELIST_COMPENSATION_FUNDING_ID,
CODELIST_PROCESS_TYPE_ID, CODELIST_PROCESS_TYPE_ID,
] ]
self._write_warning("Fetching codes...") self._write_warning("Fetching codes...")

View File

@ -21,4 +21,4 @@ CODELIST_COMPENSATION_HANDLER_ID = 1052 # CLEingreifer
CODELIST_COMPENSATION_ACTION_ID = 1026 # CLMassnahmedetail CODELIST_COMPENSATION_ACTION_ID = 1026 # CLMassnahmedetail
CODELIST_COMPENSATION_ACTION_CLASS_ID = 1034 # CLMassnahmeklasse CODELIST_COMPENSATION_ACTION_CLASS_ID = 1034 # CLMassnahmeklasse
CODELIST_COMPENSATION_ADDITIONAL_TYPE_ID = 1028 # CLMassnahmetyp, CEF and stuff CODELIST_COMPENSATION_ADDITIONAL_TYPE_ID = 1028 # CLMassnahmetyp, CEF and stuff
CODELIST_COMPENSATION_COMBINATION_ID = 1049 # CLKombimassnahme CODELIST_COMPENSATION_FUNDING_ID = 1049 # CLKombimassnahme

View File

@ -12,6 +12,7 @@ urlpatterns = [
# Main compensation # Main compensation
path("", index_view, name="index"), path("", index_view, name="index"),
path('new', new_view, name='new'), path('new', new_view, name='new'),
path('new/id', new_id_view, name='new-id'),
path('<id>', open_view, name='open'), path('<id>', open_view, name='open'),
path('<id>/log', log_view, name='log'), path('<id>/log', log_view, name='log'),
path('<id>/edit', edit_view, name='edit'), path('<id>/edit', edit_view, name='edit'),

136
compensation/forms/forms.py Normal file
View File

@ -0,0 +1,136 @@
"""
Author: Michel Peltriaux
Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany
Contact: michel.peltriaux@sgdnord.rlp.de
Created on: 04.12.20
"""
from dal import autocomplete
from django.contrib.auth.models import User
from django.db import transaction
from django.urls import reverse_lazy, reverse
from django.utils.translation import gettext_lazy as _
from django import forms
from codelist.models import KonovaCode
from codelist.settings import CODELIST_COMPENSATION_FUNDING_ID
from compensation.models import Compensation
from intervention.inputs import GenerateInput
from intervention.models import Intervention
from konova.forms import BaseForm, SimpleGeomForm
from user.models import UserActionLogEntry, UserAction
class NewCompensationForm(BaseForm):
identifier = forms.CharField(
label=_("Identifier"),
label_suffix="",
max_length=255,
help_text=_("Generated automatically"),
widget=GenerateInput(
attrs={
"class": "form-control",
"url": reverse_lazy("compensation:new-id"),
}
)
)
title = forms.CharField(
label=_("Title"),
label_suffix="",
help_text=_("An explanatory name"),
max_length=255,
widget=forms.TextInput(
attrs={
"placeholder": _("Compensation XY; Location ABC"),
"class": "form-control",
}
)
)
intervention = forms.ModelChoiceField(
label=_("compensates intervention"),
label_suffix="",
help_text=_("Select the intervention for which this compensation compensates"),
queryset=Intervention.objects.filter(
deleted=None,
),
widget=autocomplete.ModelSelect2(
url="interventions-autocomplete",
attrs={
"data-placeholder": _("Intervention"),
"data-minimum-input-length": 3,
}
),
)
fundings = forms.ModelMultipleChoiceField(
label=_("Fundings"),
label_suffix="",
required=False,
help_text=_("Select fundings for this compensation"),
queryset=KonovaCode.objects.filter(
is_archived=False,
is_leaf=True,
code_lists__in=[CODELIST_COMPENSATION_FUNDING_ID],
),
widget=autocomplete.ModelSelect2Multiple(
url="codes-compensation-funding-autocomplete",
attrs={
"data-placeholder": _("Funding by..."),
}
),
)
comment = forms.CharField(
label_suffix="",
label=_("Comment"),
required=False,
help_text=_("Additional comment"),
widget=forms.Textarea(
attrs={
"rows": 5,
"class": "form-control"
}
)
)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.form_title = _("New compensation")
self.action_url = reverse("compensation:new")
self.cancel_redirect = reverse("compensation:index")
tmp = Compensation()
identifier = tmp._generate_new_identifier()
self.initialize_form_field("identifier", identifier)
def save(self, user: User, geom_form: SimpleGeomForm):
with transaction.atomic():
# Fetch data from cleaned POST values
identifier = self.cleaned_data.get("identifier", None)
title = self.cleaned_data.get("title", None)
fundings = self.cleaned_data.get("fundings", None)
intervention = self.cleaned_data.get("intervention", None)
comment = self.cleaned_data.get("comment", None)
# Create log entry
action = UserActionLogEntry.objects.create(
user=user,
action=UserAction.CREATED,
)
# Process the geometry form
geometry = geom_form.save(action)
# Finally create main object
comp = Compensation.objects.create(
identifier=identifier,
title=title,
intervention=intervention,
created=action,
geometry=geometry,
comment=comment,
)
comp.fundings.set(fundings)
# Add the log entry to the main objects log list
comp.log.add(action)
return comp

View File

@ -2,7 +2,7 @@
Author: Michel Peltriaux Author: Michel Peltriaux
Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany
Contact: michel.peltriaux@sgdnord.rlp.de Contact: michel.peltriaux@sgdnord.rlp.de
Created on: 04.12.20 Created on: 04.10.21
""" """
from bootstrap_modal_forms.utils import is_ajax from bootstrap_modal_forms.utils import is_ajax
@ -12,34 +12,22 @@ from django.contrib import messages
from django.db import transaction from django.db import transaction
from django.http import HttpRequest, HttpResponseRedirect from django.http import HttpRequest, HttpResponseRedirect
from django.shortcuts import render from django.shortcuts import render
from django.utils.translation import gettext_lazy as _ from django.utils.translation import pgettext_lazy as _con, gettext_lazy as _
from django.utils.translation import pgettext_lazy as _con
from codelist.models import KonovaCode from codelist.models import KonovaCode
from codelist.settings import CODELIST_BIOTOPES_ID, CODELIST_COMPENSATION_ACTION_ID from codelist.settings import CODELIST_BIOTOPES_ID, CODELIST_COMPENSATION_ACTION_ID
from compensation.models import Payment, CompensationState, CompensationAction, UnitChoices from compensation.models import Payment, CompensationState, UnitChoices, CompensationAction
from konova.contexts import BaseContext from konova.contexts import BaseContext
from konova.forms import BaseForm, BaseModalForm from konova.forms import BaseModalForm
from konova.models import Deadline, DeadlineType from konova.models import DeadlineType, Deadline
from konova.utils.message_templates import FORM_INVALID from konova.utils.message_templates import FORM_INVALID
from user.models import UserActionLogEntry, UserAction from user.models import UserActionLogEntry, UserAction
class NewCompensationForm(BaseForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
def save(self):
with transaction.atomic():
user_action = UserActionLogEntry.objects.create(
user=self.user,
action=UserAction.CREATED
)
# Save action to log
class NewPaymentForm(BaseModalForm): class NewPaymentForm(BaseModalForm):
""" Form handling payment related input
"""
amount = forms.DecimalField( amount = forms.DecimalField(
min_value=0.00, min_value=0.00,
decimal_places=2, decimal_places=2,
@ -135,6 +123,12 @@ class NewPaymentForm(BaseModalForm):
class NewStateModalForm(BaseModalForm): class NewStateModalForm(BaseModalForm):
""" Form handling state related input
Compensation states refer to 'before' and 'after' states of a compensated surface. Basically it means:
What has been on this area before changes/compensations have been applied and what will be the result ('after')?
"""
biotope_type = forms.ModelChoiceField( biotope_type = forms.ModelChoiceField(
label=_("Biotope Type"), label=_("Biotope Type"),
label_suffix="", label_suffix="",
@ -243,6 +237,9 @@ class NewStateModalForm(BaseModalForm):
class NewDeadlineModalForm(BaseModalForm): class NewDeadlineModalForm(BaseModalForm):
""" Form handling deadline related input
"""
type = forms.ChoiceField( type = forms.ChoiceField(
label=_("Deadline Type"), label=_("Deadline Type"),
label_suffix="", label_suffix="",
@ -314,6 +311,13 @@ class NewDeadlineModalForm(BaseModalForm):
class NewActionModalForm(BaseModalForm): class NewActionModalForm(BaseModalForm):
""" Form handling action related input
Compensation actions are the actions performed on the area, which shall be compensated. Actions will change the
surface of the area, the biotopes, and have an environmental impact. With actions the before-after states can change
(not in the process logic in Konova, but in the real world).
"""
action_type = forms.ModelChoiceField( action_type = forms.ModelChoiceField(
label=_("Action Type"), label=_("Action Type"),
label_suffix="", label_suffix="",
@ -399,4 +403,3 @@ class NewActionModalForm(BaseModalForm):
self.instance.log.add(edited_action) self.instance.log.add(edited_action)
self.instance.actions.add(comp_action) self.instance.actions.add(comp_action)
return comp_action return comp_action

View File

@ -16,7 +16,7 @@ from django.utils.translation import gettext_lazy as _
from codelist.models import KonovaCode from codelist.models import KonovaCode
from codelist.settings import CODELIST_COMPENSATION_ACTION_ID, CODELIST_BIOTOPES_ID, \ from codelist.settings import CODELIST_COMPENSATION_ACTION_ID, CODELIST_BIOTOPES_ID, \
CODELIST_COMPENSATION_COMBINATION_ID CODELIST_COMPENSATION_FUNDING_ID
from intervention.models import Intervention, ResponsibilityData from intervention.models import Intervention, ResponsibilityData
from konova.models import BaseObject, BaseResource, Geometry, UuidModel, AbstractDocument, \ from konova.models import BaseObject, BaseResource, Geometry, UuidModel, AbstractDocument, \
generate_document_file_upload_path generate_document_file_upload_path
@ -144,7 +144,7 @@ class AbstractCompensation(BaseObject):
null=True, null=True,
blank=True, blank=True,
limit_choices_to={ limit_choices_to={
"code_lists__in": [CODELIST_COMPENSATION_COMBINATION_ID], "code_lists__in": [CODELIST_COMPENSATION_FUNDING_ID],
"is_selectable": True, "is_selectable": True,
"is_archived": False, "is_archived": False,
}, },

View File

@ -0,0 +1,16 @@
{% extends 'base.html' %}
{% load i18n l10n %}
{% block head %}
{% comment %}
dal documentation (django-autocomplete-light) states using form.media for adding needed scripts.
This does not work properly with modal forms, as the scripts are not loaded properly inside the modal.
Therefore the script linkages from form.media have been extracted and put inside dal/scripts.html to ensure
these scripts are loaded when needed.
{% endcomment %}
{% include 'dal/scripts.html' %}
{% endblock %}
{% block body %}
{% include 'form/main_data_collapse_form.html' %}
{% endblock %}

View File

@ -1,16 +1,18 @@
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.db.models import Sum from django.db.models import Sum
from django.http import HttpRequest from django.http import HttpRequest, JsonResponse
from django.shortcuts import render, get_object_or_404 from django.shortcuts import render, get_object_or_404
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from compensation.forms import NewStateModalForm, NewDeadlineModalForm, NewActionModalForm from compensation.forms.forms import NewCompensationForm
from compensation.forms.modalForms import NewStateModalForm, NewDeadlineModalForm, NewActionModalForm
from compensation.models import Compensation, CompensationState, CompensationAction, CompensationDocument from compensation.models import Compensation, CompensationState, CompensationAction, CompensationDocument
from compensation.tables import CompensationTable from compensation.tables import CompensationTable
from konova.contexts import BaseContext from konova.contexts import BaseContext
from konova.decorators import * from konova.decorators import *
from konova.forms import RemoveModalForm, SimpleGeomForm, NewDocumentForm from konova.forms import RemoveModalForm, SimpleGeomForm, NewDocumentForm
from konova.utils.documents import get_document, remove_document from konova.utils.documents import get_document, remove_document
from konova.utils.message_templates import FORM_INVALID, IDENTIFIER_REPLACED
from konova.utils.user_checks import in_group from konova.utils.user_checks import in_group
@ -45,8 +47,62 @@ def index_view(request: HttpRequest):
@login_required @login_required
@default_group_required @default_group_required
def new_view(request: HttpRequest): def new_view(request: HttpRequest):
# ToDo """
Renders a view for a new compensation creation
Args:
request (HttpRequest): The incoming request
Returns:
"""
template = "compensation/new/view.html"
data_form = NewCompensationForm(request.POST or None)
geom_form = SimpleGeomForm(request.POST or None, read_only=False)
if request.method == "POST":
if data_form.is_valid() and geom_form.is_valid():
generated_identifier = data_form.cleaned_data.get("identifier", None)
comp = data_form.save(request.user, geom_form)
if generated_identifier != comp.identifier:
messages.info(
request,
IDENTIFIER_REPLACED.format(
generated_identifier,
comp.identifier
)
)
messages.success(request, _("Compensation {} added").format(comp.identifier))
return redirect("compensation:open", id=comp.id)
else:
messages.error(request, FORM_INVALID)
else:
# For clarification: nothing in this case
pass pass
context = {
"form": data_form,
"geom_form": geom_form,
"url": reverse("compensation:new-id")
}
context = BaseContext(request, context).context
return render(request, template, context)
@login_required
def new_id_view(request: HttpRequest):
""" JSON endpoint
Provides fetching of free identifiers for e.g. AJAX calls
"""
tmp = Compensation()
identifier = tmp._generate_new_identifier()
while Compensation.objects.filter(identifier=identifier).exists():
identifier = tmp._generate_new_identifier()
return JsonResponse(
data={
"identifier": identifier
}
)
@login_required @login_required

View File

@ -13,7 +13,7 @@ from django.core.exceptions import ObjectDoesNotExist
from django.http import HttpRequest, Http404 from django.http import HttpRequest, Http404
from django.shortcuts import render, get_object_or_404 from django.shortcuts import render, get_object_or_404
from compensation.forms import NewStateModalForm, NewActionModalForm, NewDeadlineModalForm from compensation.forms.modalForms import NewStateModalForm, NewActionModalForm, NewDeadlineModalForm
from compensation.models import EcoAccount, EcoAccountDocument from compensation.models import EcoAccount, EcoAccountDocument
from compensation.tables import EcoAccountTable from compensation.tables import EcoAccountTable
from intervention.forms.modalForms import NewDeductionModalForm from intervention.forms.modalForms import NewDeductionModalForm

View File

@ -10,7 +10,7 @@ from django.contrib.auth.decorators import login_required
from django.http import HttpRequest from django.http import HttpRequest
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404
from compensation.forms import NewPaymentForm from compensation.forms.modalForms import NewPaymentForm
from compensation.models import Payment from compensation.models import Payment
from intervention.models import Intervention from intervention.models import Intervention
from konova.decorators import default_group_required from konova.decorators import default_group_required

View File

@ -6,7 +6,7 @@ from django.urls import reverse
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
import compensation import compensation
from compensation.forms import NewStateModalForm, NewActionModalForm, NewDeadlineModalForm from compensation.forms.modalForms import NewStateModalForm, NewActionModalForm, NewDeadlineModalForm
from ema.tables import EmaTable from ema.tables import EmaTable
from konova.contexts import BaseContext from konova.contexts import BaseContext
from konova.decorators import conservation_office_group_required from konova.decorators import conservation_office_group_required

View File

@ -13,7 +13,7 @@ from konova.decorators import *
from konova.forms import SimpleGeomForm, NewDocumentForm, RemoveModalForm, RecordModalForm from konova.forms import SimpleGeomForm, NewDocumentForm, RemoveModalForm, RecordModalForm
from konova.sub_settings.django_settings import DEFAULT_DATE_FORMAT from konova.sub_settings.django_settings import DEFAULT_DATE_FORMAT
from konova.utils.documents import remove_document, get_document from konova.utils.documents import remove_document, get_document
from konova.utils.message_templates import INTERVENTION_INVALID, FORM_INVALID from konova.utils.message_templates import INTERVENTION_INVALID, FORM_INVALID, IDENTIFIER_REPLACED
from konova.utils.user_checks import in_group from konova.utils.user_checks import in_group
@ -68,13 +68,13 @@ def new_view(request: HttpRequest):
if generated_identifier != intervention.identifier: if generated_identifier != intervention.identifier:
messages.info( messages.info(
request, request,
_("The identifier '{}' had to be changed to '{}' since another entry has been added in the meanwhile, which uses this identifier").format( IDENTIFIER_REPLACED.format(
generated_identifier, generated_identifier,
intervention.identifier intervention.identifier
) )
) )
messages.success(request, _("Intervention {} added").format(intervention.identifier)) messages.success(request, _("Intervention {} added").format(intervention.identifier))
return redirect("intervention:index") return redirect("intervention:open", id=intervention.id)
else: else:
messages.error(request, FORM_INVALID) messages.error(request, FORM_INVALID)
else: else:

View File

@ -10,7 +10,8 @@ from django.db.models import Q
from codelist.models import KonovaCode from codelist.models import KonovaCode
from codelist.settings import CODELIST_COMPENSATION_ACTION_ID, CODELIST_BIOTOPES_ID, CODELIST_LAW_ID, \ from codelist.settings import CODELIST_COMPENSATION_ACTION_ID, CODELIST_BIOTOPES_ID, CODELIST_LAW_ID, \
CODELIST_REGISTRATION_OFFICE_ID, CODELIST_CONSERVATION_OFFICE_ID, CODELIST_PROCESS_TYPE_ID CODELIST_REGISTRATION_OFFICE_ID, CODELIST_CONSERVATION_OFFICE_ID, CODELIST_PROCESS_TYPE_ID, \
CODELIST_COMPENSATION_FUNDING_ID
from compensation.models import EcoAccount from compensation.models import EcoAccount
from intervention.models import Intervention from intervention.models import Intervention
from organisation.models import Organisation from organisation.models import Organisation
@ -45,12 +46,18 @@ class NonOfficialOrganisationAutocomplete(Select2QuerySetView):
class EcoAccountAutocomplete(Select2QuerySetView): class EcoAccountAutocomplete(Select2QuerySetView):
""" Autocomplete for ecoAccount entries
Only returns entries that are accessible for the requesting user and already are recorded
"""
def get_queryset(self): def get_queryset(self):
if self.request.user.is_anonymous: if self.request.user.is_anonymous:
return EcoAccount.objects.none() return EcoAccount.objects.none()
qs = EcoAccount.objects.filter( qs = EcoAccount.objects.filter(
deleted=None, deleted=None,
recorded__isnull=False, recorded__isnull=False,
users__in=[self.request.user],
) )
if self.q: if self.q:
qs = qs.filter( qs = qs.filter(
@ -63,6 +70,11 @@ class EcoAccountAutocomplete(Select2QuerySetView):
class InterventionAutocomplete(Select2QuerySetView): class InterventionAutocomplete(Select2QuerySetView):
""" Autocomplete for intervention entries
Only returns entries that are accessible for the requesting user
"""
def get_queryset(self): def get_queryset(self):
if self.request.user.is_anonymous: if self.request.user.is_anonymous:
return Intervention.objects.none() return Intervention.objects.none()
@ -128,6 +140,15 @@ class CompensationActionCodeAutocomplete(KonovaCodeAutocomplete):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
class CompensationFundingCodeAutocomplete(KonovaCodeAutocomplete):
"""
Due to limitations of the django dal package, we need to subclass for each code list
"""
def __init__(self, *args, **kwargs):
self.c = CODELIST_COMPENSATION_FUNDING_ID
super().__init__(*args, **kwargs)
class BiotopeCodeAutocomplete(KonovaCodeAutocomplete): class BiotopeCodeAutocomplete(KonovaCodeAutocomplete):
""" """
Due to limitations of the django dal package, we need to subclass for each code list Due to limitations of the django dal package, we need to subclass for each code list

View File

@ -19,7 +19,8 @@ from django.urls import path, include
from konova.autocompletes import OrganisationAutocomplete, NonOfficialOrganisationAutocomplete, EcoAccountAutocomplete, \ from konova.autocompletes import OrganisationAutocomplete, NonOfficialOrganisationAutocomplete, EcoAccountAutocomplete, \
InterventionAutocomplete, CompensationActionCodeAutocomplete, BiotopeCodeAutocomplete, LawCodeAutocomplete, \ InterventionAutocomplete, CompensationActionCodeAutocomplete, BiotopeCodeAutocomplete, LawCodeAutocomplete, \
RegistrationOfficeCodeAutocomplete, ConservationOfficeCodeAutocomplete, ProcessTypeCodeAutocomplete RegistrationOfficeCodeAutocomplete, ConservationOfficeCodeAutocomplete, ProcessTypeCodeAutocomplete, \
CompensationFundingCodeAutocomplete
from konova.settings import SSO_SERVER, SSO_PUBLIC_KEY, SSO_PRIVATE_KEY, DEBUG from konova.settings import SSO_SERVER, SSO_PUBLIC_KEY, SSO_PRIVATE_KEY, DEBUG
from konova.sso.sso import KonovaSSOClient from konova.sso.sso import KonovaSSOClient
from konova.views import logout_view, home_view, remove_deadline_view from konova.views import logout_view, home_view, remove_deadline_view
@ -46,7 +47,8 @@ urlpatterns = [
path("atcmplt/orgs/other", NonOfficialOrganisationAutocomplete.as_view(), name="other-orgs-autocomplete"), path("atcmplt/orgs/other", NonOfficialOrganisationAutocomplete.as_view(), name="other-orgs-autocomplete"),
path("atcmplt/eco-accounts", EcoAccountAutocomplete.as_view(), name="accounts-autocomplete"), path("atcmplt/eco-accounts", EcoAccountAutocomplete.as_view(), name="accounts-autocomplete"),
path("atcmplt/interventions", InterventionAutocomplete.as_view(), name="interventions-autocomplete"), path("atcmplt/interventions", InterventionAutocomplete.as_view(), name="interventions-autocomplete"),
path("atcmplt/codes/compensation-action", CompensationActionCodeAutocomplete.as_view(), name="codes-compensation-action-autocomplete"), path("atcmplt/codes/comp/action", CompensationActionCodeAutocomplete.as_view(), name="codes-compensation-action-autocomplete"),
path("atcmplt/codes/comp/funding", CompensationFundingCodeAutocomplete.as_view(), name="codes-compensation-funding-autocomplete"),
path("atcmplt/codes/biotope", BiotopeCodeAutocomplete.as_view(), name="codes-biotope-autocomplete"), path("atcmplt/codes/biotope", BiotopeCodeAutocomplete.as_view(), name="codes-biotope-autocomplete"),
path("atcmplt/codes/law", LawCodeAutocomplete.as_view(), name="codes-law-autocomplete"), path("atcmplt/codes/law", LawCodeAutocomplete.as_view(), name="codes-law-autocomplete"),
path("atcmplt/codes/prc-type", ProcessTypeCodeAutocomplete.as_view(), name="codes-process-type-autocomplete"), path("atcmplt/codes/prc-type", ProcessTypeCodeAutocomplete.as_view(), name="codes-process-type-autocomplete"),

View File

@ -10,3 +10,4 @@ from django.utils.translation import gettext_lazy as _
FORM_INVALID = _("There was an error on this form.") FORM_INVALID = _("There was an error on this form.")
INTERVENTION_INVALID = _("There are errors in this intervention.") INTERVENTION_INVALID = _("There are errors in this intervention.")
IDENTIFIER_REPLACED = _("The identifier '{}' had to be changed to '{}' since another entry has been added in the meanwhile, which uses this identifier")

Binary file not shown.

View File

@ -3,22 +3,23 @@
# This file is distributed under the same license as the PACKAGE package. # This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# #
#: compensation/filters.py:71 compensation/forms.py:47 compensation/forms.py:57 #: compensation/filters.py:71 compensation/forms/modalForms.py:35
#: compensation/forms.py:73 compensation/forms.py:276 compensation/forms.py:363 #: compensation/forms/modalForms.py:45 compensation/forms/modalForms.py:61
#: compensation/forms/modalForms.py:273 compensation/forms/modalForms.py:367
#: intervention/filters.py:26 intervention/filters.py:40 #: intervention/filters.py:26 intervention/filters.py:40
#: intervention/filters.py:47 intervention/filters.py:48 #: intervention/filters.py:47 intervention/filters.py:48
#: intervention/forms/forms.py:53 intervention/forms/forms.py:151 #: intervention/forms/forms.py:53 intervention/forms/forms.py:151
#: intervention/forms/forms.py:163 intervention/forms/modalForms.py:107 #: intervention/forms/forms.py:163 intervention/forms/modalForms.py:107
#: intervention/forms/modalForms.py:120 intervention/forms/modalForms.py:133 #: intervention/forms/modalForms.py:120 intervention/forms/modalForms.py:133
#: konova/forms.py:140 konova/forms.py:244 konova/forms.py:294 #: konova/forms.py:140 konova/forms.py:244 konova/forms.py:293
#: konova/forms.py:321 konova/forms.py:331 konova/forms.py:344 #: konova/forms.py:320 konova/forms.py:330 konova/forms.py:343
#: konova/forms.py:356 konova/forms.py:377 user/forms.py:38 #: konova/forms.py:355 konova/forms.py:376 user/forms.py:38
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-27 13:56+0200\n" "POT-Creation-Date: 2021-10-04 09:54+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -32,20 +33,70 @@ msgstr ""
msgid "Show only unrecorded" msgid "Show only unrecorded"
msgstr "Nur unverzeichnete anzeigen" msgstr "Nur unverzeichnete anzeigen"
#: compensation/forms.py:48 #: compensation/forms/forms.py:26 compensation/tables.py:25
msgid "in Euro" #: compensation/tables.py:167 ema/tables.py:28 intervention/forms/forms.py:27
msgstr "in Euro" #: intervention/tables.py:23
#: intervention/templates/intervention/detail/includes/compensations.html:30
msgid "Identifier"
msgstr "Kennung"
#: compensation/forms.py:56 #: compensation/forms/forms.py:29 intervention/forms/forms.py:30
#: intervention/templates/intervention/detail/includes/payments.html:31 msgid "Generated automatically"
msgid "Due on" msgstr "Automatisch generiert"
msgstr "Fällig am"
#: compensation/forms.py:59 #: compensation/forms/forms.py:38 compensation/tables.py:30
msgid "Due on which date" #: compensation/tables.py:172
msgstr "Zahlung wird an diesem Datum erwartet" #: 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
#: compensation/templates/compensation/detail/eco_account/view.html:31
#: ema/tables.py:33 ema/templates/ema/detail/includes/documents.html:28
#: ema/templates/ema/detail/view.html:24 intervention/forms/forms.py:39
#: intervention/tables.py:28
#: intervention/templates/intervention/detail/includes/compensations.html:33
#: intervention/templates/intervention/detail/includes/documents.html:28
#: intervention/templates/intervention/detail/view.html:31 konova/forms.py:319
msgid "Title"
msgstr "Bezeichnung"
#: compensation/forms.py:72 compensation/forms.py:275 compensation/forms.py:362 #: compensation/forms/forms.py:40 intervention/forms/forms.py:41
msgid "An explanatory name"
msgstr "Aussagekräftiger Titel"
#: compensation/forms/forms.py:44
msgid "Compensation XY; Location ABC"
msgstr "Kompensation XY; Flur ABC"
#: compensation/forms/forms.py:50
#: compensation/templates/compensation/detail/compensation/view.html:35
msgid "compensates intervention"
msgstr "kompensiert Eingriff"
#: compensation/forms/forms.py:52
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:59 intervention/forms/modalForms.py:284
#: intervention/forms/modalForms.py:291 intervention/tables.py:88
#: intervention/templates/intervention/detail/view.html:19
#: konova/templates/konova/home.html:11 templates/navbar.html:22
msgid "Intervention"
msgstr "Eingriff"
#: compensation/forms/forms.py:65
msgid "Fundings"
msgstr ""
#: compensation/forms/forms.py:68
msgid "Select fundings for this compensation"
msgstr "Wählen Sie ggf. Fördermittelprojekte"
#: compensation/forms/forms.py:77
msgid "Funding by..."
msgstr "Gefördert mit..."
#: compensation/forms/forms.py:83 compensation/forms/modalForms.py:60
#: compensation/forms/modalForms.py:272 compensation/forms/modalForms.py:366
#: compensation/templates/compensation/detail/compensation/includes/actions.html:34 #: compensation/templates/compensation/detail/compensation/includes/actions.html:34
#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:34 #: compensation/templates/compensation/detail/compensation/includes/deadlines.html:34
#: compensation/templates/compensation/detail/compensation/includes/documents.html:31 #: compensation/templates/compensation/detail/compensation/includes/documents.html:31
@ -56,43 +107,66 @@ msgstr "Zahlung wird an diesem Datum erwartet"
#: ema/templates/ema/detail/includes/deadlines.html:34 #: ema/templates/ema/detail/includes/deadlines.html:34
#: ema/templates/ema/detail/includes/documents.html:31 #: ema/templates/ema/detail/includes/documents.html:31
#: intervention/forms/forms.py:175 intervention/forms/modalForms.py:132 #: intervention/forms/forms.py:175 intervention/forms/modalForms.py:132
#: intervention/templates/intervention/detail/includes/comment.html:10
#: intervention/templates/intervention/detail/includes/documents.html:31 #: intervention/templates/intervention/detail/includes/documents.html:31
#: intervention/templates/intervention/detail/includes/payments.html:34 #: intervention/templates/intervention/detail/includes/payments.html:34
#: intervention/templates/intervention/detail/includes/revocation.html:38 #: intervention/templates/intervention/detail/includes/revocation.html:38
#: konova/forms.py:355 #: konova/forms.py:354
msgid "Comment" msgid "Comment"
msgstr "Kommentar" msgstr "Kommentar"
#: compensation/forms.py:74 compensation/forms.py:277 compensation/forms.py:364 #: compensation/forms/forms.py:85 intervention/forms/forms.py:177
#: intervention/forms/modalForms.py:134 konova/forms.py:357 msgid "Additional comment"
msgstr "Zusätzlicher Kommentar"
#: compensation/forms/forms.py:96
msgid "New compensation"
msgstr "Neue Kompensation"
#: compensation/forms/modalForms.py:36
msgid "in Euro"
msgstr "in Euro"
#: compensation/forms/modalForms.py:44
#: intervention/templates/intervention/detail/includes/payments.html:31
msgid "Due on"
msgstr "Fällig am"
#: compensation/forms/modalForms.py:47
msgid "Due on which date"
msgstr "Zahlung wird an diesem Datum erwartet"
#: compensation/forms/modalForms.py:62 compensation/forms/modalForms.py:274
#: compensation/forms/modalForms.py:368 intervention/forms/modalForms.py:134
#: konova/forms.py:356
msgid "Additional comment, maximum {} letters" msgid "Additional comment, maximum {} letters"
msgstr "Zusätzlicher Kommentar, maximal {} Zeichen" msgstr "Zusätzlicher Kommentar, maximal {} Zeichen"
#: compensation/forms.py:86 #: compensation/forms/modalForms.py:74
msgid "Payment" msgid "Payment"
msgstr "Zahlung" msgstr "Zahlung"
#: compensation/forms.py:87 #: compensation/forms/modalForms.py:75
msgid "Add a payment for intervention '{}'" msgid "Add a payment for intervention '{}'"
msgstr "Neue Ersatzzahlung zu Eingriff '{}' hinzufügen" msgstr "Neue Ersatzzahlung zu Eingriff '{}' hinzufügen"
#: compensation/forms.py:108 #: compensation/forms/modalForms.py:96
msgid "If there is no date you can enter, please explain why." msgid "If there is no date you can enter, please explain why."
msgstr "Falls Sie kein Datum angeben können, erklären Sie bitte weshalb." msgstr "Falls Sie kein Datum angeben können, erklären Sie bitte weshalb."
#: compensation/forms.py:122 #: compensation/forms/modalForms.py:110
msgid "Added payment" msgid "Added payment"
msgstr "Zahlung hinzufügen" msgstr "Zahlung hinzufügen"
#: compensation/forms.py:139 compensation/forms.py:151 #: compensation/forms/modalForms.py:133 compensation/forms/modalForms.py:145
msgid "Biotope Type" msgid "Biotope Type"
msgstr "Biotoptyp" msgstr "Biotoptyp"
#: compensation/forms.py:142 #: compensation/forms/modalForms.py:136
msgid "Select the biotope type" msgid "Select the biotope type"
msgstr "Biotoptyp wählen" msgstr "Biotoptyp wählen"
#: compensation/forms.py:158 #: compensation/forms/modalForms.py:152
#: compensation/templates/compensation/detail/compensation/includes/states-after.html:36 #: compensation/templates/compensation/detail/compensation/includes/states-after.html:36
#: compensation/templates/compensation/detail/compensation/includes/states-before.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-after.html:36
@ -103,35 +177,35 @@ msgstr "Biotoptyp wählen"
msgid "Surface" msgid "Surface"
msgstr "Fläche" msgstr "Fläche"
#: compensation/forms.py:161 intervention/forms/modalForms.py:276 #: compensation/forms/modalForms.py:155 intervention/forms/modalForms.py:276
msgid "in m²" msgid "in m²"
msgstr "" msgstr ""
#: compensation/forms.py:171 #: compensation/forms/modalForms.py:165
msgid "New state" msgid "New state"
msgstr "Neuer Zustand" msgstr "Neuer Zustand"
#: compensation/forms.py:172 #: compensation/forms/modalForms.py:166
msgid "Insert data for the new state" msgid "Insert data for the new state"
msgstr "Geben Sie die Daten des neuen Zustandes ein" msgstr "Geben Sie die Daten des neuen Zustandes ein"
#: compensation/forms.py:180 #: compensation/forms/modalForms.py:174
msgid "Added state" msgid "Added state"
msgstr "Zustand hinzugefügt" msgstr "Zustand hinzugefügt"
#: compensation/forms.py:196 konova/forms.py:193 #: compensation/forms/modalForms.py:190 konova/forms.py:193
msgid "Object removed" msgid "Object removed"
msgstr "Objekt entfernt" msgstr "Objekt entfernt"
#: compensation/forms.py:247 #: compensation/forms/modalForms.py:244
msgid "Deadline Type" msgid "Deadline Type"
msgstr "Fristart" msgstr "Fristart"
#: compensation/forms.py:250 #: compensation/forms/modalForms.py:247
msgid "Select the deadline type" msgid "Select the deadline type"
msgstr "Fristart wählen" msgstr "Fristart wählen"
#: compensation/forms.py:259 #: compensation/forms/modalForms.py:256
#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:31 #: compensation/templates/compensation/detail/compensation/includes/deadlines.html:31
#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:31 #: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:31
#: ema/templates/ema/detail/includes/deadlines.html:31 #: ema/templates/ema/detail/includes/deadlines.html:31
@ -139,31 +213,31 @@ msgstr "Fristart wählen"
msgid "Date" msgid "Date"
msgstr "Datum" msgstr "Datum"
#: compensation/forms.py:262 #: compensation/forms/modalForms.py:259
msgid "Select date" msgid "Select date"
msgstr "Datum wählen" msgstr "Datum wählen"
#: compensation/forms.py:289 #: compensation/forms/modalForms.py:286
msgid "New deadline" msgid "New deadline"
msgstr "Neue Frist" msgstr "Neue Frist"
#: compensation/forms.py:290 #: compensation/forms/modalForms.py:287
msgid "Insert data for the new deadline" msgid "Insert data for the new deadline"
msgstr "Geben Sie die Daten der neuen Frist ein" msgstr "Geben Sie die Daten der neuen Frist ein"
#: compensation/forms.py:307 #: compensation/forms/modalForms.py:304
msgid "Added deadline" msgid "Added deadline"
msgstr "Frist/Termin hinzugefügt" msgstr "Frist/Termin hinzugefügt"
#: compensation/forms.py:318 #: compensation/forms/modalForms.py:322
msgid "Action Type" msgid "Action Type"
msgstr "Maßnahmentyp" msgstr "Maßnahmentyp"
#: compensation/forms.py:321 #: compensation/forms/modalForms.py:325
msgid "Select the action type" msgid "Select the action type"
msgstr "Maßnahmentyp wählen" msgstr "Maßnahmentyp wählen"
#: compensation/forms.py:330 #: compensation/forms/modalForms.py:334
#: compensation/templates/compensation/detail/compensation/includes/actions.html:37 #: compensation/templates/compensation/detail/compensation/includes/actions.html:37
#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:37 #: compensation/templates/compensation/detail/compensation/includes/deadlines.html:37
#: compensation/templates/compensation/detail/compensation/includes/documents.html:34 #: compensation/templates/compensation/detail/compensation/includes/documents.html:34
@ -189,33 +263,33 @@ msgstr "Maßnahmentyp wählen"
msgid "Action" msgid "Action"
msgstr "Aktionen" msgstr "Aktionen"
#: compensation/forms.py:335 #: compensation/forms/modalForms.py:339
msgid "Unit" msgid "Unit"
msgstr "Einheit" msgstr "Einheit"
#: compensation/forms.py:338 #: compensation/forms/modalForms.py:342
msgid "Select the unit" msgid "Select the unit"
msgstr "Einheit wählen" msgstr "Einheit wählen"
#: compensation/forms.py:347 #: compensation/forms/modalForms.py:351
#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:34 #: compensation/templates/compensation/detail/eco_account/includes/deductions.html:34
#: intervention/templates/intervention/detail/includes/deductions.html:31 #: intervention/templates/intervention/detail/includes/deductions.html:31
msgid "Amount" msgid "Amount"
msgstr "Menge" msgstr "Menge"
#: compensation/forms.py:350 #: compensation/forms/modalForms.py:354
msgid "Insert the amount" msgid "Insert the amount"
msgstr "Menge eingeben" msgstr "Menge eingeben"
#: compensation/forms.py:375 #: compensation/forms/modalForms.py:379
msgid "New action" msgid "New action"
msgstr "Neue Maßnahme" msgstr "Neue Maßnahme"
#: compensation/forms.py:376 #: compensation/forms/modalForms.py:380
msgid "Insert data for the new action" msgid "Insert data for the new action"
msgstr "Geben Sie die Daten der neuen Maßnahme ein" msgstr "Geben Sie die Daten der neuen Maßnahme ein"
#: compensation/forms.py:395 #: compensation/forms/modalForms.py:399
msgid "Added action" msgid "Added action"
msgstr "Maßnahme hinzugefügt" msgstr "Maßnahme hinzugefügt"
@ -258,26 +332,6 @@ msgstr ""
"Es wurde bereits mehr Fläche abgebucht, als Sie nun als abbuchbar einstellen " "Es wurde bereits mehr Fläche abgebucht, als Sie nun als abbuchbar einstellen "
"wollen. Kontaktieren Sie die für die Abbuchungen verantwortlichen Nutzer!" "wollen. Kontaktieren Sie die für die Abbuchungen verantwortlichen Nutzer!"
#: compensation/tables.py:25 compensation/tables.py:167 ema/tables.py:28
#: intervention/forms/forms.py:27 intervention/tables.py:23
#: intervention/templates/intervention/detail/includes/compensations.html:30
msgid "Identifier"
msgstr "Kennung"
#: compensation/tables.py:30 compensation/tables.py:172
#: 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
#: compensation/templates/compensation/detail/eco_account/view.html:31
#: ema/tables.py:33 ema/templates/ema/detail/includes/documents.html:28
#: ema/templates/ema/detail/view.html:24 intervention/forms/forms.py:39
#: intervention/tables.py:28
#: intervention/templates/intervention/detail/includes/compensations.html:33
#: intervention/templates/intervention/detail/includes/documents.html:28
#: intervention/templates/intervention/detail/view.html:31 konova/forms.py:320
msgid "Title"
msgstr "Bezeichnung"
#: compensation/tables.py:35 #: compensation/tables.py:35
#: compensation/templates/compensation/detail/compensation/view.html:43 #: compensation/templates/compensation/detail/compensation/view.html:43
#: intervention/tables.py:33 #: intervention/tables.py:33
@ -478,7 +532,7 @@ msgstr "Dokumente"
#: compensation/templates/compensation/detail/eco_account/includes/documents.html:14 #: compensation/templates/compensation/detail/eco_account/includes/documents.html:14
#: ema/templates/ema/detail/includes/documents.html:14 #: ema/templates/ema/detail/includes/documents.html:14
#: intervention/templates/intervention/detail/includes/documents.html:14 #: intervention/templates/intervention/detail/includes/documents.html:14
#: konova/forms.py:376 #: konova/forms.py:375
msgid "Add new document" msgid "Add new document"
msgstr "Neues Dokument hinzufügen" msgstr "Neues Dokument hinzufügen"
@ -543,10 +597,6 @@ msgstr "Neuen Ausgangszustand hinzufügen"
msgid "Missing surfaces according to states after: " msgid "Missing surfaces according to states after: "
msgstr "Fehlende Flächenmengen laut Zielzustand: " msgstr "Fehlende Flächenmengen laut Zielzustand: "
#: compensation/templates/compensation/detail/compensation/view.html:35
msgid "compensates intervention"
msgstr "kompensiert Eingriff"
#: compensation/templates/compensation/detail/compensation/view.html:50 #: compensation/templates/compensation/detail/compensation/view.html:50
#: intervention/templates/intervention/detail/view.html:75 #: intervention/templates/intervention/detail/view.html:75
msgid "Checked on " msgid "Checked on "
@ -666,42 +716,46 @@ msgstr "Eingriffsverursacher"
msgid "None" msgid "None"
msgstr "" msgstr ""
#: compensation/views/compensation_views.py:123 #: compensation/views/compensation_views.py:74
msgid "Compensation {} added"
msgstr "Kompensation {} hinzugefügt"
#: compensation/views/compensation_views.py:179
#: compensation/views/eco_account_views.py:190 ema/views.py:128 #: compensation/views/eco_account_views.py:190 ema/views.py:128
#: intervention/views.py:428 #: intervention/views.py:428
msgid "Log" msgid "Log"
msgstr "Log" msgstr "Log"
#: compensation/views/compensation_views.py:144 #: compensation/views/compensation_views.py:200
msgid "Compensation removed" msgid "Compensation removed"
msgstr "Kompensation entfernt" msgstr "Kompensation entfernt"
#: compensation/views/compensation_views.py:163 #: compensation/views/compensation_views.py:219
#: compensation/views/eco_account_views.py:289 ema/views.py:250 #: compensation/views/eco_account_views.py:289 ema/views.py:250
#: intervention/views.py:124 #: intervention/views.py:124
msgid "Document added" msgid "Document added"
msgstr "Dokument hinzugefügt" msgstr "Dokument hinzugefügt"
#: compensation/views/compensation_views.py:219 #: compensation/views/compensation_views.py:275
#: compensation/views/eco_account_views.py:233 ema/views.py:194 #: compensation/views/eco_account_views.py:233 ema/views.py:194
msgid "State added" msgid "State added"
msgstr "Zustand hinzugefügt" msgstr "Zustand hinzugefügt"
#: compensation/views/compensation_views.py:238 #: compensation/views/compensation_views.py:294
#: compensation/views/eco_account_views.py:252 ema/views.py:213 #: compensation/views/eco_account_views.py:252 ema/views.py:213
msgid "Action added" msgid "Action added"
msgstr "Maßnahme hinzugefügt" msgstr "Maßnahme hinzugefügt"
#: compensation/views/compensation_views.py:257 #: compensation/views/compensation_views.py:313
#: compensation/views/eco_account_views.py:271 ema/views.py:232 #: compensation/views/eco_account_views.py:271 ema/views.py:232
msgid "Deadline added" msgid "Deadline added"
msgstr "Frist/Termin hinzugefügt" msgstr "Frist/Termin hinzugefügt"
#: compensation/views/compensation_views.py:276 #: compensation/views/compensation_views.py:332
msgid "State removed" msgid "State removed"
msgstr "Zustand gelöscht" msgstr "Zustand gelöscht"
#: compensation/views/compensation_views.py:295 #: compensation/views/compensation_views.py:351
msgid "Action removed" msgid "Action removed"
msgstr "Maßnahme entfernt" msgstr "Maßnahme entfernt"
@ -775,14 +829,6 @@ msgstr "Gemarkung"
msgid "Search for district" msgid "Search for district"
msgstr "Nach Gemarkung suchen" msgstr "Nach Gemarkung suchen"
#: intervention/forms/forms.py:30
msgid "Generated automatically"
msgstr "Automatisch generiert"
#: intervention/forms/forms.py:41
msgid "An explanatory name"
msgstr "Aussagekräftiger Titel"
#: intervention/forms/forms.py:45 #: intervention/forms/forms.py:45
msgid "Construction XY; Location ABC" msgid "Construction XY; Location ABC"
msgstr "Bauvorhaben XY; Flur ABC" msgstr "Bauvorhaben XY; Flur ABC"
@ -837,10 +883,6 @@ msgstr "Datum Zulassung bzw. Satzungsbeschluss"
msgid "Binding on" msgid "Binding on"
msgstr "Datum Bestandskraft" msgstr "Datum Bestandskraft"
#: intervention/forms/forms.py:177
msgid "Additional comment"
msgstr "Zusätzlicher Kommentar"
#: intervention/forms/forms.py:188 #: intervention/forms/forms.py:188
msgid "New intervention" msgid "New intervention"
msgstr "Neuer Eingriff" msgstr "Neuer Eingriff"
@ -879,7 +921,7 @@ msgstr "Datum des Widerspruchs"
msgid "Document" msgid "Document"
msgstr "Dokument" msgstr "Dokument"
#: intervention/forms/modalForms.py:122 konova/forms.py:345 #: intervention/forms/modalForms.py:122 konova/forms.py:344
msgid "Must be smaller than 15 Mb" msgid "Must be smaller than 15 Mb"
msgstr "Muss kleiner als 15 Mb sein" msgstr "Muss kleiner als 15 Mb sein"
@ -901,7 +943,7 @@ msgstr "Kompensationen und Zahlungen geprüft"
msgid "Run check" msgid "Run check"
msgstr "Prüfung vornehmen" msgstr "Prüfung vornehmen"
#: intervention/forms/modalForms.py:201 konova/forms.py:430 #: intervention/forms/modalForms.py:201 konova/forms.py:429
msgid "" msgid ""
"I, {} {}, confirm that all necessary control steps have been performed by " "I, {} {}, confirm that all necessary control steps have been performed by "
"myself." "myself."
@ -913,13 +955,6 @@ msgstr ""
msgid "Only recorded accounts can be selected for deductions" msgid "Only recorded accounts can be selected for deductions"
msgstr "Nur verzeichnete Ökokonten können für Abbuchungen verwendet werden." msgstr "Nur verzeichnete Ökokonten können für Abbuchungen verwendet werden."
#: intervention/forms/modalForms.py:284 intervention/forms/modalForms.py:291
#: intervention/tables.py:88
#: intervention/templates/intervention/detail/view.html:19
#: konova/templates/konova/home.html:11 templates/navbar.html:22
msgid "Intervention"
msgstr "Eingriff"
#: intervention/forms/modalForms.py:286 #: intervention/forms/modalForms.py:286
msgid "Only shared interventions can be selected" msgid "Only shared interventions can be selected"
msgstr "Nur freigegebene Eingriffe können gewählt werden" msgstr "Nur freigegebene Eingriffe können gewählt werden"
@ -1045,22 +1080,10 @@ msgstr "Widerspruch entfernen"
msgid "Exists" msgid "Exists"
msgstr "vorhanden" msgstr "vorhanden"
#: intervention/views.py:71
msgid ""
"The identifier '{}' had to be changed to '{}' since another entry has been "
"added in the meanwhile, which uses this identifier"
msgstr ""
"Die Kennung '{}' musste zu '{}' geändert werden, da ein anderer Eintrag in "
"der Zwischenzeit angelegt wurde, welcher diese Kennung nun bereits verwendet"
#: intervention/views.py:76 #: intervention/views.py:76
msgid "Intervention {} added" msgid "Intervention {} added"
msgstr "Eingriff {} hinzugefügt" msgstr "Eingriff {} hinzugefügt"
#: intervention/views.py:79 intervention/views.py:258
msgid "Invalid input"
msgstr "Eingabe fehlerhaft"
#: intervention/views.py:212 #: intervention/views.py:212
msgid "This intervention has a revocation from {}" msgid "This intervention has a revocation from {}"
msgstr "Es existiert ein Widerspruch vom {}" msgstr "Es existiert ein Widerspruch vom {}"
@ -1140,11 +1163,11 @@ msgstr "Hierfür müssen Sie einer anderen Nutzergruppe angehören!"
msgid "Not editable" msgid "Not editable"
msgstr "Nicht editierbar" msgstr "Nicht editierbar"
#: konova/forms.py:139 konova/forms.py:293 #: konova/forms.py:139 konova/forms.py:292
msgid "Confirm" msgid "Confirm"
msgstr "Bestätige" msgstr "Bestätige"
#: konova/forms.py:151 konova/forms.py:302 #: konova/forms.py:151 konova/forms.py:301
msgid "Remove" msgid "Remove"
msgstr "Löschen" msgstr "Löschen"
@ -1152,48 +1175,48 @@ msgstr "Löschen"
msgid "You are about to remove {} {}" msgid "You are about to remove {} {}"
msgstr "Sie sind dabei {} {} zu löschen" msgstr "Sie sind dabei {} {} zu löschen"
#: konova/forms.py:243 templates/form/main_data_collapse_form.html:47 #: konova/forms.py:243 templates/form/main_data_collapse_form.html:45
msgid "Geometry" msgid "Geometry"
msgstr "Geometrie" msgstr "Geometrie"
#: konova/forms.py:303 #: konova/forms.py:302
msgid "Are you sure?" msgid "Are you sure?"
msgstr "Sind Sie sicher?" msgstr "Sind Sie sicher?"
#: konova/forms.py:330 #: konova/forms.py:329
msgid "Created on" msgid "Created on"
msgstr "Erstellt" msgstr "Erstellt"
#: konova/forms.py:332 #: konova/forms.py:331
msgid "When has this file been created? Important for photos." msgid "When has this file been created? Important for photos."
msgstr "Wann wurde diese Datei erstellt oder das Foto aufgenommen?" msgstr "Wann wurde diese Datei erstellt oder das Foto aufgenommen?"
#: konova/forms.py:343 #: konova/forms.py:342
#: venv/lib/python3.7/site-packages/django/db/models/fields/files.py:231 #: venv/lib/python3.7/site-packages/django/db/models/fields/files.py:231
msgid "File" msgid "File"
msgstr "Datei" msgstr "Datei"
#: konova/forms.py:407 #: konova/forms.py:406
msgid "Added document" msgid "Added document"
msgstr "Dokument hinzugefügt" msgstr "Dokument hinzugefügt"
#: konova/forms.py:421 #: konova/forms.py:420
msgid "Confirm record" msgid "Confirm record"
msgstr "Verzeichnen bestätigen" msgstr "Verzeichnen bestätigen"
#: konova/forms.py:429 #: konova/forms.py:428
msgid "Record data" msgid "Record data"
msgstr "Daten verzeichnen" msgstr "Daten verzeichnen"
#: konova/forms.py:436 #: konova/forms.py:435
msgid "Confirm unrecord" msgid "Confirm unrecord"
msgstr "Entzeichnen bestätigen" msgstr "Entzeichnen bestätigen"
#: konova/forms.py:437 #: konova/forms.py:436
msgid "Unrecord data" msgid "Unrecord data"
msgstr "Daten entzeichnen" msgstr "Daten entzeichnen"
#: konova/forms.py:438 #: konova/forms.py:437
msgid "I, {} {}, confirm that this data must be unrecorded." msgid "I, {} {}, confirm that this data must be unrecorded."
msgstr "" msgstr ""
"Ich, {} {}, bestätige, dass diese Daten wieder entzeichnet werden müssen." "Ich, {} {}, bestätige, dass diese Daten wieder entzeichnet werden müssen."
@ -1286,6 +1309,14 @@ msgstr "Es gab einen Fehler im Formular."
msgid "There are errors in this intervention." msgid "There are errors in this intervention."
msgstr "Es liegen Fehler in diesem Eingriff vor:" msgstr "Es liegen Fehler in diesem Eingriff vor:"
#: konova/utils/message_templates.py:13
msgid ""
"The identifier '{}' had to be changed to '{}' since another entry has been "
"added in the meanwhile, which uses this identifier"
msgstr ""
"Die Kennung '{}' musste zu '{}' geändert werden, da ein anderer Eintrag in "
"der Zwischenzeit angelegt wurde, welcher diese Kennung nun bereits verwendet"
#: konova/utils/messenger.py:69 #: konova/utils/messenger.py:69
msgid "{} checked" msgid "{} checked"
msgstr "{} geprüft" msgstr "{} geprüft"
@ -1343,12 +1374,12 @@ msgid "Contact"
msgstr "Kontakt" msgstr "Kontakt"
#: templates/form/generic_table_form.html:23 #: templates/form/generic_table_form.html:23
#: templates/form/main_data_collapse_form.html:61 #: templates/form/main_data_collapse_form.html:58
msgid "Cancel" msgid "Cancel"
msgstr "Abbrechen" msgstr "Abbrechen"
#: templates/form/generic_table_form.html:27 #: templates/form/generic_table_form.html:27
#: templates/form/main_data_collapse_form.html:65 #: templates/form/main_data_collapse_form.html:62
msgid "Save" msgid "Save"
msgstr "Speichern" msgstr "Speichern"
@ -1421,7 +1452,7 @@ msgstr "Zeitpunkt"
msgid "User" msgid "User"
msgstr "Nutzer" msgstr "Nutzer"
#: templates/map/geom_form.html:9 #: templates/map/geom_form.html:8
msgid "No geometry added, yet." msgid "No geometry added, yet."
msgstr "Keine Geometrie vorhanden" msgstr "Keine Geometrie vorhanden"
@ -2737,6 +2768,9 @@ msgstr ""
msgid "A fontawesome icon field" msgid "A fontawesome icon field"
msgstr "" msgstr ""
#~ msgid "Invalid input"
#~ msgstr "Eingabe fehlerhaft"
#~ msgid "{} edited" #~ msgid "{} edited"
#~ msgstr "{} bearbeitet" #~ msgstr "{} bearbeitet"
@ -2845,9 +2879,6 @@ msgstr ""
#~ msgid "Show intervention" #~ msgid "Show intervention"
#~ msgstr "Zeige Eingriffe" #~ msgstr "Zeige Eingriffe"
#~ msgid "Show compensation"
#~ msgstr "Zeige Kompensationen"
#~ msgid "Eco-account management" #~ msgid "Eco-account management"
#~ msgstr "Ökokontoverwaltung" #~ msgstr "Ökokontoverwaltung"