#7 New Form
* 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:
parent
a44c014f4b
commit
b7ef6ff006
@ -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...")
|
||||||
|
@ -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
|
||||||
|
@ -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
136
compensation/forms/forms.py
Normal 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
|
||||||
|
|
||||||
|
|
@ -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
|
||||||
|
|
@ -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,
|
||||||
},
|
},
|
||||||
|
16
compensation/templates/compensation/new/view.html
Normal file
16
compensation/templates/compensation/new/view.html
Normal 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 %}
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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:
|
||||||
|
@ -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
|
||||||
|
@ -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"),
|
||||||
|
@ -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.
@ -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"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user