diff --git a/compensation/forms/forms.py b/compensation/forms/forms.py
index 52575d32..212efa63 100644
--- a/compensation/forms/forms.py
+++ b/compensation/forms/forms.py
@@ -115,7 +115,33 @@ class CompensationResponsibleFormMixin(forms.Form):
)
-class NewCompensationForm(AbstractCompensationForm):
+class CEFCompensationFormMixin(forms.Form):
+ """ A form mixin, providing CEF compensation field
+
+ """
+ is_cef = forms.BooleanField(
+ label_suffix="",
+ label=_("Is CEF"),
+ help_text=_("Optionally: Whether this compensation is a CEF compensation?"),
+ required=False,
+ widget=forms.CheckboxInput()
+ )
+
+
+class CoherenceCompensationFormMixin(forms.Form):
+ """ A form mixin, providing coherence compensation field
+
+ """
+ is_coherence_keeping = forms.BooleanField(
+ label_suffix="",
+ label=_("Is coherence keeping"),
+ help_text=_("Optionally: Whether this compensation is a coherence keeping compensation?"),
+ required=False,
+ widget=forms.CheckboxInput()
+ )
+
+
+class NewCompensationForm(AbstractCompensationForm, CEFCompensationFormMixin, CoherenceCompensationFormMixin):
""" Form for creating new compensations.
Can be initialized with an intervention id for preselecting the related intervention.
@@ -146,6 +172,8 @@ class NewCompensationForm(AbstractCompensationForm):
"identifier",
"title",
"intervention",
+ "is_cef",
+ "is_coherence_keeping",
"comment",
]
@@ -177,6 +205,8 @@ class NewCompensationForm(AbstractCompensationForm):
identifier = self.cleaned_data.get("identifier", None)
title = self.cleaned_data.get("title", None)
intervention = self.cleaned_data.get("intervention", None)
+ is_cef = self.cleaned_data.get("is_cef", None)
+ is_coherence_keeping = self.cleaned_data.get("is_coherence_keeping", None)
comment = self.cleaned_data.get("comment", None)
# Create log entry
@@ -193,6 +223,8 @@ class NewCompensationForm(AbstractCompensationForm):
title=title,
intervention=intervention,
created=action,
+ is_cef=is_cef,
+ is_coherence_keeping=is_coherence_keeping,
geometry=geometry,
comment=comment,
)
@@ -217,6 +249,8 @@ class EditCompensationForm(NewCompensationForm):
"identifier": self.instance.identifier,
"title": self.instance.title,
"intervention": self.instance.intervention,
+ "is_cef": self.instance.is_cef,
+ "is_coherence_keeping": self.instance.is_coherence_keeping,
"comment": self.instance.comment,
}
disabled_fields = []
@@ -231,6 +265,8 @@ class EditCompensationForm(NewCompensationForm):
identifier = self.cleaned_data.get("identifier", None)
title = self.cleaned_data.get("title", None)
intervention = self.cleaned_data.get("intervention", None)
+ is_cef = self.cleaned_data.get("is_cef", None)
+ is_coherence_keeping = self.cleaned_data.get("is_coherence_keeping", None)
comment = self.cleaned_data.get("comment", None)
# Create log entry
@@ -247,6 +283,8 @@ class EditCompensationForm(NewCompensationForm):
self.instance.title = title
self.instance.intervention = intervention
self.instance.geometry = geometry
+ self.instance.is_cef = is_cef
+ self.instance.is_coherence_keeping = is_coherence_keeping
self.instance.comment = comment
self.instance.modified = action
self.instance.save()
diff --git a/compensation/models.py b/compensation/models.py
index 15aa30e6..a0cf80de 100644
--- a/compensation/models.py
+++ b/compensation/models.py
@@ -32,8 +32,7 @@ class Payment(BaseResource):
"""
amount = models.FloatField(validators=[MinValueValidator(limit_value=0.00)])
due_on = models.DateField(null=True, blank=True)
- comment = models.CharField(
- max_length=1000,
+ comment = models.TextField(
null=True,
blank=True,
help_text="Refers to german money transfer 'Verwendungszweck'",
@@ -190,7 +189,37 @@ class AbstractCompensation(BaseObject):
return checker
-class Compensation(AbstractCompensation):
+class CEFMixin(models.Model):
+ """ Provides CEF flag as Mixin
+
+ """
+ is_cef = models.BooleanField(
+ blank=True,
+ null=True,
+ default=False,
+ help_text="Flag if compensation is a 'CEF-Maßnahme'"
+ )
+
+ class Meta:
+ abstract = True
+
+
+class CoherenceMixin(models.Model):
+ """ Provides coherence keeping flag as Mixin
+
+ """
+ is_coherence_keeping = models.BooleanField(
+ blank=True,
+ null=True,
+ default=False,
+ help_text="Flag if compensation is a 'Kohärenzsicherung'"
+ )
+
+ class Meta:
+ abstract = True
+
+
+class Compensation(AbstractCompensation, CEFMixin, CoherenceMixin):
"""
Regular compensation, linked to an intervention
"""
diff --git a/compensation/templates/compensation/detail/compensation/view.html b/compensation/templates/compensation/detail/compensation/view.html
index 2adcd02e..581bf799 100644
--- a/compensation/templates/compensation/detail/compensation/view.html
+++ b/compensation/templates/compensation/detail/compensation/view.html
@@ -1,5 +1,5 @@
{% extends 'base.html' %}
-{% load i18n l10n static fontawesome_5 humanize %}
+{% load i18n l10n static fontawesome_5 humanize ksp_filters %}
{% block head %}
{% comment %}
@@ -38,6 +38,26 @@
+
+ {% trans 'Is CEF compensation' %} |
+
+ {% if obj.is_cef %}
+ {% trans 'Yes' %}
+ {% else %}
+ {% trans 'No' %}
+ {% endif %}
+ |
+
+
+ {% trans 'Is Coherence keeping compensation' %} |
+
+ {% if obj.is_coherence_keeping %}
+ {% trans 'Yes' %}
+ {% else %}
+ {% trans 'No' %}
+ {% endif %}
+ |
+
{% trans 'Checked' %} |
diff --git a/compensation/templates/compensation/report/compensation/report.html b/compensation/templates/compensation/report/compensation/report.html
index 74d67a58..711ce16d 100644
--- a/compensation/templates/compensation/report/compensation/report.html
+++ b/compensation/templates/compensation/report/compensation/report.html
@@ -16,7 +16,7 @@
| {% trans 'compensates intervention' %} |
- {{obj.intervention.identifier}}
+ {{obj.intervention.identifier}} - {{obj.intervention.title}}
|
diff --git a/compensation/templates/compensation/report/eco_account/report.html b/compensation/templates/compensation/report/eco_account/report.html
index ff47772d..e71670a1 100644
--- a/compensation/templates/compensation/report/eco_account/report.html
+++ b/compensation/templates/compensation/report/eco_account/report.html
@@ -29,7 +29,7 @@
{% for deduction in deductions %}
- {{deduction.intervention__identifier}}
+ {{deduction.intervention__identifier}} - {{deduction.intervention__title}}
{% empty %}
diff --git a/compensation/views/eco_account_views.py b/compensation/views/eco_account_views.py
index e9934d44..521963fc 100644
--- a/compensation/views/eco_account_views.py
+++ b/compensation/views/eco_account_views.py
@@ -570,7 +570,7 @@ def report_view(request:HttpRequest, id: str):
deductions = acc.deductions.all()\
.distinct("intervention")\
.select_related("intervention")\
- .values_list("intervention__id", "intervention__identifier", named=True)
+ .values_list("intervention__id", "intervention__identifier", "intervention__title", named=True)
context = {
"obj": acc,
diff --git a/intervention/forms/modalForms.py b/intervention/forms/modalForms.py
index fe24efa9..fb6ee083 100644
--- a/intervention/forms/modalForms.py
+++ b/intervention/forms/modalForms.py
@@ -16,10 +16,9 @@ from compensation.models import EcoAccount, EcoAccountDeduction
from intervention.inputs import TextToClipboardInput
from intervention.models import Revocation, RevocationDocument, Intervention
from konova.forms import BaseModalForm
-from konova.settings import ZB_GROUP, ETS_GROUP
from konova.utils.general import format_german_float
from konova.utils.messenger import Messenger
-from konova.utils.user_checks import in_group
+from konova.utils.user_checks import is_default_group_only
from user.models import UserActionLogEntry, UserAction
@@ -36,6 +35,21 @@ class ShareInterventionModalForm(BaseModalForm):
}
)
)
+ user_select = forms.ModelMultipleChoiceField(
+ label=_("Add user to share with"),
+ label_suffix="",
+ help_text=_("Multiple selection possible - You can only select users which do not already have access"),
+ required=False,
+ queryset=User.objects.all(),
+ widget=autocomplete.ModelSelect2Multiple(
+ url="share-user-autocomplete",
+ attrs={
+ "data-placeholder": _("Click for selection"),
+ "data-minimum-input-length": 3,
+ },
+ forward=["users"]
+ ),
+ )
users = forms.MultipleChoiceField(
label=_("Shared with"),
label_suffix="",
@@ -78,28 +92,39 @@ class ShareInterventionModalForm(BaseModalForm):
)
# Initialize users field
- # Remove field if user is not in registration or conservation group
- if not in_group(self.request.user, ZB_GROUP) and not in_group(self.request.user, ETS_GROUP):
- del self.fields["users"]
- else:
- users = self.instance.users.all()
- choices = []
- for n in users:
- choices.append(
- (n.id, n.username)
- )
- self.fields["users"].choices = choices
- u_ids = list(users.values_list("id", flat=True))
- self.initialize_form_field(
- "users",
- u_ids
+ # Disable field if user is not in registration or conservation group
+ if is_default_group_only(self.request.user):
+ self.disable_form_field("users")
+
+ self._add_user_choices_to_field()
+
+ def _add_user_choices_to_field(self):
+ """ Transforms the instance's sharing users into a list for the form field
+
+ Returns:
+
+ """
+ users = self.instance.users.all()
+ choices = []
+ for n in users:
+ choices.append(
+ (n.id, n.username)
)
+ self.fields["users"].choices = choices
+ u_ids = list(users.values_list("id", flat=True))
+ self.initialize_form_field(
+ "users",
+ u_ids
+ )
def save(self):
- accessing_users = User.objects.filter(
- id__in=self.cleaned_data["users"]
+ still_accessing_users = self.cleaned_data["users"]
+ new_accessing_users = list(self.cleaned_data["user_select"].values_list("id", flat=True))
+ accessing_users = still_accessing_users + new_accessing_users
+ users = User.objects.filter(
+ id__in=accessing_users
)
- self.instance.share_with_list(accessing_users)
+ self.instance.share_with_list(users)
class NewRevocationModalForm(BaseModalForm):
@@ -162,14 +187,13 @@ class NewRevocationModalForm(BaseModalForm):
)
revocation = Revocation.objects.create(
date=self.cleaned_data["date"],
+ legal=self.instance.legal,
comment=self.cleaned_data["comment"],
created=created_action,
)
self.instance.modified = edited_action
self.instance.save()
self.instance.log.add(edited_action)
- self.instance.legal.revocation = revocation
- self.instance.legal.save()
if self.cleaned_data["file"]:
RevocationDocument.objects.create(
diff --git a/intervention/models.py b/intervention/models.py
index 47d3a585..6043e422 100644
--- a/intervention/models.py
+++ b/intervention/models.py
@@ -68,6 +68,7 @@ class Revocation(BaseResource):
Holds revocation data e.g. for intervention objects
"""
date = models.DateField(null=True, blank=True, help_text="Revocation from")
+ legal = models.ForeignKey("LegalData", null=False, blank=False, on_delete=models.CASCADE, help_text="Refers to 'Widerspruch am'", related_name="revocations")
comment = models.TextField(null=True, blank=True)
def delete(self, *args, **kwargs):
@@ -99,7 +100,7 @@ class RevocationDocument(AbstractDocument):
Returns:
intervention (Intervention)
"""
- return self.instance.legaldata.intervention
+ return self.instance.legal.intervention
def delete(self, *args, **kwargs):
"""
@@ -118,13 +119,14 @@ class RevocationDocument(AbstractDocument):
# Remove the file itself
super().delete(*args, **kwargs)
- # Always remove 'revocation' folder
+ # Always remove 'revocation' folder if the one revocation we just processed is the only one left
folder_path = self.file.path.split("/")
- try:
- shutil.rmtree("/".join(folder_path[:-1]))
- except FileNotFoundError:
- # Revocation subfolder seems to be missing already
- pass
+ if revoc_docs.count() == 0:
+ try:
+ shutil.rmtree("/".join(folder_path[:-1]))
+ except FileNotFoundError:
+ # Revocation subfolder seems to be missing already
+ pass
if other_intervention_docs.count() == 0:
# If there are no further documents for the intervention, we can simply remove the whole folder as well!
@@ -167,8 +169,6 @@ class LegalData(UuidModel):
}
)
- revocation = models.OneToOneField(Revocation, null=True, blank=True, help_text="Refers to 'Widerspruch am'", on_delete=models.SET_NULL)
-
class Intervention(BaseObject, ShareableObject, RecordableObject, CheckableObject):
"""
@@ -277,7 +277,7 @@ class Intervention(BaseObject, ShareableObject, RecordableObject, CheckableObjec
regular_docs (QuerySet): The queryset of regular other documents
"""
revoc_docs = RevocationDocument.objects.filter(
- instance=self.legal.revocation
+ instance__in=self.legal.revocations.all()
)
regular_docs = InterventionDocument.objects.filter(
instance=self
@@ -366,6 +366,7 @@ class InterventionDocument(AbstractDocument):
if folder_path is not None:
try:
shutil.rmtree(folder_path)
+ pass
except FileNotFoundError:
# Folder seems to be missing already...
pass
diff --git a/intervention/templates/intervention/detail/includes/revocation.html b/intervention/templates/intervention/detail/includes/revocation.html
index c9d821ff..cc3e7b3e 100644
--- a/intervention/templates/intervention/detail/includes/revocation.html
+++ b/intervention/templates/intervention/detail/includes/revocation.html
@@ -4,8 +4,8 @@
- {% if obj.legal.revocation %}1{% else %}0{% endif %}
- {% trans 'Revocation' %}
+ {{obj.legal.revocations.count}}
+ {% trans 'Revocations' %}
@@ -44,30 +44,28 @@
- {% if obj.legal.revocation %}
- {% with obj.legal.revocation as rev %}
-
-
- {{ rev.date }}
- |
-
- {% if rev.document %}
-
- {% trans 'Revocation' %}
-
- {% endif %}
- |
- {{ rev.comment }} |
-
- {% if is_default_member and has_access %}
-
- {% endif %}
- |
-
- {% endwith %}
- {% endif %}
+ {% for rev in obj.legal.revocations.all %}
+
+
+ {{ rev.date }}
+ |
+
+ {% if rev.document %}
+
+ {% trans 'Revocation' %}
+
+ {% endif %}
+ |
+ {{ rev.comment }} |
+
+ {% if is_default_member and has_access %}
+
+ {% endif %}
+ |
+
+ {% endfor %}
diff --git a/intervention/templates/intervention/detail/view.html b/intervention/templates/intervention/detail/view.html
index e3d919f3..408b3939 100644
--- a/intervention/templates/intervention/detail/view.html
+++ b/intervention/templates/intervention/detail/view.html
@@ -99,9 +99,9 @@
{% trans 'Binding on' %} |
{{obj.legal.binding_date|default_if_none:""}} |
-
- {% trans 'Revocation' %} |
- {{obj.legal.revocation.date|naturalday|default_if_none:""}} |
+
+ {% trans 'Revocations' %} |
+ {{obj.legal.revocations.count}} |
{% trans 'Last modified' %} |
diff --git a/intervention/templates/intervention/report/report.html b/intervention/templates/intervention/report/report.html
index cf422042..25e6aac6 100644
--- a/intervention/templates/intervention/report/report.html
+++ b/intervention/templates/intervention/report/report.html
@@ -50,7 +50,7 @@
{% for comp in obj.compensations.all %}
- {{comp.identifier}}
+ {{comp.identifier}} - {{comp.title}}
{% empty %}
@@ -63,7 +63,7 @@
|
{% for deduction in deductions %}
- {{deduction.account.identifier}}
+ {{deduction.account.identifier}} - {{deduction.account.title}}
{% endfor %}
diff --git a/intervention/utils/quality.py b/intervention/utils/quality.py
index 7896000d..b4717b18 100644
--- a/intervention/utils/quality.py
+++ b/intervention/utils/quality.py
@@ -66,8 +66,8 @@ class InterventionQualityChecker(AbstractQualityChecker):
try:
legal = self.obj.legal
# Check for a revocation
- if legal.revocation:
- self.messages.append(_("Revocation exists"))
+ if legal.revocations.exists():
+ self.messages.append(_("Revocations exists"))
if legal.registration_date is None:
self._add_missing_attr_name(_("Registration date"))
diff --git a/intervention/views.py b/intervention/views.py
index a535d753..c2a87d6e 100644
--- a/intervention/views.py
+++ b/intervention/views.py
@@ -11,7 +11,6 @@ from intervention.tables import InterventionTable
from konova.contexts import BaseContext
from konova.decorators import *
from konova.forms import SimpleGeomForm, NewDocumentForm, RemoveModalForm, RecordModalForm
-from konova.sub_settings.django_settings import DEFAULT_DATE_FORMAT
from konova.utils.documents import remove_document, get_document
from konova.utils.generators import generate_qr_code
from konova.utils.message_templates import INTERVENTION_INVALID, FORM_INVALID, IDENTIFIER_REPLACED, \
@@ -147,7 +146,7 @@ def get_revocation_view(request: HttpRequest, doc_id: str):
"""
doc = get_object_or_404(RevocationDocument, id=doc_id)
# File download only possible if related instance is shared with user
- if not doc.instance.users.filter(id=request.user.id):
+ if not doc.instance.legal.intervention.users.filter(id=request.user.id):
messages.info(
request,
DATA_UNSHARED
@@ -238,10 +237,10 @@ def detail_view(request: HttpRequest, id: str):
)
# Inform user about revocation
- if intervention.legal.revocation:
+ if intervention.legal.revocations.exists():
messages.error(
request,
- _("This intervention has a revocation from {}").format(intervention.legal.revocation.date.strftime(DEFAULT_DATE_FORMAT)),
+ _("This intervention has {} revocations").format(intervention.legal.revocations.count()),
extra_tags="danger",
)
@@ -403,7 +402,7 @@ def create_share_view(request: HttpRequest, id: str):
"""
intervention = get_object_or_404(Intervention, id=id)
- form = ShareInterventionModalForm(request.POST or None, instance=intervention, request=request)
+ form = ShareInterventionModalForm(request.POST or None, instance=intervention, request=request, user=request.user)
return form.process_request(
request,
msg_success=_("Share settings updated")
diff --git a/konova/autocompletes.py b/konova/autocompletes.py
index 36e585bd..f0fb0fe0 100644
--- a/konova/autocompletes.py
+++ b/konova/autocompletes.py
@@ -6,6 +6,7 @@ Created on: 07.12.20
"""
from dal_select2.views import Select2QuerySetView
+from django.contrib.auth.models import User
from django.db.models import Q
from codelist.models import KonovaCode
@@ -60,6 +61,29 @@ class InterventionAutocomplete(Select2QuerySetView):
return qs
+class ShareUserAutocomplete(Select2QuerySetView):
+ """ Autocomplete for intervention entries
+
+ Only returns entries that are accessible for the requesting user
+
+ """
+ def get_queryset(self):
+ if self.request.user.is_anonymous:
+ return User.objects.none()
+ exclude_user_ids = self.forwarded.get("users", [None])
+ _exclude = {"id__in": exclude_user_ids}
+ qs = User.objects.all().exclude(
+ **_exclude
+ ).order_by(
+ "username"
+ )
+ if self.q:
+ qs = qs.filter(
+ username__istartswith=self.q
+ )
+ return qs
+
+
class KonovaCodeAutocomplete(Select2QuerySetView):
"""
Provides simple autocomplete functionality for codes
diff --git a/konova/models.py b/konova/models.py
index cc836a20..7dbe4f73 100644
--- a/konova/models.py
+++ b/konova/models.py
@@ -241,7 +241,7 @@ class Deadline(BaseResource):
type = models.CharField(max_length=255, null=True, blank=True, choices=DeadlineType.choices)
date = models.DateField(null=True, blank=True)
- comment = models.CharField(max_length=1000, null=True, blank=True)
+ comment = models.TextField(null=True, blank=True)
def __str__(self):
return self.type
diff --git a/konova/static/css/konova.css b/konova/static/css/konova.css
index 6de1f8f8..294287ea 100644
--- a/konova/static/css/konova.css
+++ b/konova/static/css/konova.css
@@ -186,12 +186,15 @@ Overwrites bootstrap .btn:focus box shadow color
background-color: var(--rlp-gray-light);
}
-.check-star{
+.check-star, .c-goldenrod{
color: goldenrod;
}
-.registered-bookmark{
+.registered-bookmark, .c-green{
color: green;
}
+.c-red{
+ color: red;
+}
/* PAGINATION */
.page-item > .page-link{
diff --git a/konova/templatetags/ksp_filters.py b/konova/templatetags/ksp_filters.py
index 1472d503..f311a538 100644
--- a/konova/templatetags/ksp_filters.py
+++ b/konova/templatetags/ksp_filters.py
@@ -8,6 +8,8 @@ Created on: 05.07.21
from django import template
# Create custom library
+from django.utils.html import format_html
+
from news.models import ServerMessageImportance
register = template.Library()
diff --git a/konova/urls.py b/konova/urls.py
index 820de41b..1954d298 100644
--- a/konova/urls.py
+++ b/konova/urls.py
@@ -19,7 +19,8 @@ from django.urls import path, include
from konova.autocompletes import EcoAccountAutocomplete, \
InterventionAutocomplete, CompensationActionCodeAutocomplete, BiotopeCodeAutocomplete, LawCodeAutocomplete, \
- RegistrationOfficeCodeAutocomplete, ConservationOfficeCodeAutocomplete, ProcessTypeCodeAutocomplete
+ RegistrationOfficeCodeAutocomplete, ConservationOfficeCodeAutocomplete, ProcessTypeCodeAutocomplete, \
+ ShareUserAutocomplete
from konova.settings import SSO_SERVER, SSO_PUBLIC_KEY, SSO_PRIVATE_KEY, DEBUG
from konova.sso.sso import KonovaSSOClient
from konova.views import logout_view, home_view, remove_deadline_view
@@ -50,6 +51,7 @@ urlpatterns = [
path("atcmplt/codes/prc-type", ProcessTypeCodeAutocomplete.as_view(), name="codes-process-type-autocomplete"),
path("atcmplt/codes/reg-off", RegistrationOfficeCodeAutocomplete.as_view(), name="codes-registration-office-autocomplete"),
path("atcmplt/codes/cons-off", ConservationOfficeCodeAutocomplete.as_view(), name="codes-conservation-office-autocomplete"),
+ path("atcmplt/share/u", ShareUserAutocomplete.as_view(), name="share-user-autocomplete"),
]
if DEBUG:
diff --git a/konova/utils/user_checks.py b/konova/utils/user_checks.py
index d6b688b4..a01dadbe 100644
--- a/konova/utils/user_checks.py
+++ b/konova/utils/user_checks.py
@@ -7,6 +7,8 @@ Created on: 02.07.21
"""
from django.contrib.auth.models import User
+from konova.settings import ETS_GROUP, ZB_GROUP
+
def in_group(user: User, group: str) -> bool:
""" Checks if the user is part of a group
@@ -21,3 +23,15 @@ def in_group(user: User, group: str) -> bool:
return user.groups.filter(
name=group
)
+
+
+def is_default_group_only(user: User) -> bool:
+ """ Checks if the user is only part of the default group
+
+ Args:
+ user (User): The user object
+
+ Returns:
+ bool
+ """
+ return not in_group(user, ZB_GROUP) and not in_group(user, ETS_GROUP)
\ No newline at end of file
diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo
index e4d126ba..19aafdf1 100644
Binary files a/locale/de/LC_MESSAGES/django.mo and b/locale/de/LC_MESSAGES/django.mo differ
diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po
index f850b346..388a9b86 100644
--- a/locale/de/LC_MESSAGES/django.po
+++ b/locale/de/LC_MESSAGES/django.po
@@ -9,8 +9,8 @@
#: intervention/filters.py:26 intervention/filters.py:40
#: intervention/filters.py:47 intervention/filters.py:48
#: intervention/forms/forms.py:53 intervention/forms/forms.py:155
-#: intervention/forms/forms.py:167 intervention/forms/modalForms.py:107
-#: intervention/forms/modalForms.py:120 intervention/forms/modalForms.py:133
+#: intervention/forms/forms.py:167 intervention/forms/modalForms.py:133
+#: intervention/forms/modalForms.py:146 intervention/forms/modalForms.py:159
#: konova/forms.py:142 konova/forms.py:247 konova/forms.py:313
#: konova/forms.py:340 konova/forms.py:350 konova/forms.py:363
#: konova/forms.py:375 konova/forms.py:396 user/forms.py:38
@@ -19,7 +19,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-25 17:10+0200\n"
+"POT-Creation-Date: 2021-11-15 15:48+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -37,7 +37,7 @@ msgstr "Vom"
msgid "To"
msgstr "Bis"
-#: analysis/forms.py:47 compensation/forms/forms.py:93
+#: analysis/forms.py:47 compensation/forms/forms.py:76
#: compensation/templates/compensation/detail/eco_account/view.html:58
#: compensation/templates/compensation/report/eco_account/report.html:16
#: compensation/utils/quality.py:100 ema/templates/ema/detail/view.html:42
@@ -49,14 +49,14 @@ msgstr "Bis"
msgid "Conservation office"
msgstr "Eintragungsstelle"
-#: analysis/forms.py:49 compensation/forms/forms.py:95
+#: analysis/forms.py:49 compensation/forms/forms.py:78
msgid "Select the responsible office"
msgstr "Verantwortliche Stelle"
-#: analysis/forms.py:58 compensation/forms/forms.py:67
-#: compensation/forms/forms.py:104 compensation/forms/forms.py:155
-#: intervention/forms/forms.py:63 intervention/forms/forms.py:80
-#: intervention/forms/forms.py:96 intervention/forms/forms.py:112
+#: analysis/forms.py:58 compensation/forms/forms.py:87
+#: compensation/forms/forms.py:164 intervention/forms/forms.py:63
+#: intervention/forms/forms.py:80 intervention/forms/forms.py:96
+#: intervention/forms/forms.py:112 intervention/forms/modalForms.py:47
msgid "Click for selection"
msgstr "Auswählen..."
@@ -130,7 +130,7 @@ msgstr "Zuständigkeitsbereich"
#: analysis/templates/analysis/reports/includes/intervention/compensated_by.html:8
#: analysis/templates/analysis/reports/includes/intervention/laws.html:17
#: compensation/tables.py:35
-#: compensation/templates/compensation/detail/compensation/view.html:43
+#: compensation/templates/compensation/detail/compensation/view.html:63
#: intervention/tables.py:33
#: intervention/templates/intervention/detail/view.html:68 user/models.py:48
msgid "Checked"
@@ -145,7 +145,7 @@ msgstr "Geprüft"
#: analysis/templates/analysis/reports/includes/intervention/laws.html:20
#: analysis/templates/analysis/reports/includes/old_data/amount.html:18
#: compensation/tables.py:41 compensation/tables.py:181
-#: compensation/templates/compensation/detail/compensation/view.html:57
+#: compensation/templates/compensation/detail/compensation/view.html:77
#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:31
#: compensation/templates/compensation/detail/eco_account/view.html:44
#: ema/tables.py:38 ema/templates/ema/detail/view.html:28
@@ -210,7 +210,7 @@ msgstr "Abbuchungen"
#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:36
#: ema/templates/ema/detail/includes/states-after.html:36
#: ema/templates/ema/detail/includes/states-before.html:36
-#: intervention/forms/modalForms.py:282
+#: intervention/forms/modalForms.py:301
msgid "Surface"
msgstr "Fläche"
@@ -273,7 +273,7 @@ msgid "Type"
msgstr "Typ"
#: analysis/templates/analysis/reports/includes/old_data/amount.html:24
-#: intervention/forms/modalForms.py:293 intervention/forms/modalForms.py:300
+#: intervention/forms/modalForms.py:312 intervention/forms/modalForms.py:319
#: intervention/tables.py:88
#: intervention/templates/intervention/detail/view.html:19
#: konova/templates/konova/home.html:11 templates/navbars/navbar.html:22
@@ -283,7 +283,7 @@ msgstr "Eingriff"
#: analysis/templates/analysis/reports/includes/old_data/amount.html:34
#: compensation/tables.py:224
#: compensation/templates/compensation/detail/eco_account/view.html:19
-#: intervention/forms/modalForms.py:266 intervention/forms/modalForms.py:273
+#: intervention/forms/modalForms.py:285 intervention/forms/modalForms.py:292
#: konova/templates/konova/home.html:88 templates/navbars/navbar.html:34
msgid "Eco-account"
msgstr "Ökokonto"
@@ -335,19 +335,11 @@ msgstr "Bezeichnung"
msgid "An explanatory name"
msgstr "Aussagekräftiger Titel"
-#: compensation/forms/forms.py:49 ema/forms.py:47 ema/forms.py:105
+#: compensation/forms/forms.py:49 ema/forms.py:49 ema/forms.py:105
msgid "Compensation XY; Location ABC"
msgstr "Kompensation XY; Flur ABC"
-#: compensation/forms/forms.py:55
-msgid "Fundings"
-msgstr "Förderungen"
-
-#: compensation/forms/forms.py:58
-msgid "Select fundings for this compensation"
-msgstr "Wählen Sie ggf. Fördermittelprojekte"
-
-#: compensation/forms/forms.py:73 compensation/forms/modalForms.py:61
+#: compensation/forms/forms.py:56 compensation/forms/modalForms.py:61
#: compensation/forms/modalForms.py:272 compensation/forms/modalForms.py:367
#: compensation/templates/compensation/detail/compensation/includes/actions.html:34
#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:34
@@ -358,7 +350,7 @@ msgstr "Wählen Sie ggf. Fördermittelprojekte"
#: ema/templates/ema/detail/includes/actions.html:34
#: ema/templates/ema/detail/includes/deadlines.html:34
#: ema/templates/ema/detail/includes/documents.html:31
-#: intervention/forms/forms.py:179 intervention/forms/modalForms.py:132
+#: intervention/forms/forms.py:179 intervention/forms/modalForms.py:158
#: intervention/templates/intervention/detail/includes/documents.html:31
#: intervention/templates/intervention/detail/includes/payments.html:34
#: intervention/templates/intervention/detail/includes/revocation.html:38
@@ -366,11 +358,11 @@ msgstr "Wählen Sie ggf. Fördermittelprojekte"
msgid "Comment"
msgstr "Kommentar"
-#: compensation/forms/forms.py:75 intervention/forms/forms.py:181
+#: compensation/forms/forms.py:58 intervention/forms/forms.py:181
msgid "Additional comment"
msgstr "Zusätzlicher Kommentar"
-#: compensation/forms/forms.py:109
+#: compensation/forms/forms.py:92
#: compensation/templates/compensation/detail/eco_account/view.html:62
#: compensation/templates/compensation/report/eco_account/report.html:20
#: compensation/utils/quality.py:102 ema/templates/ema/detail/view.html:46
@@ -382,67 +374,85 @@ msgstr "Zusätzlicher Kommentar"
msgid "Conservation office file number"
msgstr "Aktenzeichen Eintragungsstelle"
-#: compensation/forms/forms.py:115 intervention/forms/forms.py:135
+#: compensation/forms/forms.py:98 intervention/forms/forms.py:135
msgid "ETS-123/ABC.456"
msgstr ""
-#: compensation/forms/forms.py:121
+#: compensation/forms/forms.py:104
msgid "Eco-account handler"
msgstr "Maßnahmenträger"
-#: compensation/forms/forms.py:125
+#: compensation/forms/forms.py:108
msgid "Who handles the eco-account"
msgstr "Wer für die Herrichtung des Ökokontos verantwortlich ist"
-#: compensation/forms/forms.py:128 intervention/forms/forms.py:148
+#: compensation/forms/forms.py:111 intervention/forms/forms.py:148
msgid "Company Mustermann"
msgstr "Firma Mustermann"
-#: compensation/forms/forms.py:146
+#: compensation/forms/forms.py:124
+msgid "Is CEF"
+msgstr "Ist CEF-Maßnahme"
+
+#: compensation/forms/forms.py:125
+msgid "Optionally: Whether this compensation is a CEF compensation?"
+msgstr "Optional: Handelt es sich um eine CEF-Maßnahme?"
+
+#: compensation/forms/forms.py:137
+msgid "Is coherence keeping"
+msgstr "Ist Kohärenzsicherungsmaßnahme"
+
+#: compensation/forms/forms.py:138
+msgid ""
+"Optionally: Whether this compensation is a coherence keeping compensation?"
+msgstr ""
+"Optional: Handelt es sich um eine Kohärenzsicherungsmaßnahme?"
+
+#: compensation/forms/forms.py:155
#: compensation/templates/compensation/detail/compensation/view.html:35
#: compensation/templates/compensation/report/compensation/report.html:16
msgid "compensates intervention"
msgstr "kompensiert Eingriff"
-#: compensation/forms/forms.py:148
+#: compensation/forms/forms.py:157
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:173
+#: compensation/forms/forms.py:183
msgid "New compensation"
msgstr "Neue Kompensation"
-#: compensation/forms/forms.py:231
+#: compensation/forms/forms.py:243
msgid "Edit compensation"
msgstr "Bearbeite Kompensation"
-#: compensation/forms/forms.py:290 compensation/utils/quality.py:84
+#: compensation/forms/forms.py:305 compensation/utils/quality.py:84
msgid "Available Surface"
msgstr "Verfügbare Fläche"
-#: compensation/forms/forms.py:293
+#: compensation/forms/forms.py:308
msgid "The amount that can be used for deductions"
msgstr "Die für Abbuchungen zur Verfügung stehende Menge"
-#: compensation/forms/forms.py:302
+#: compensation/forms/forms.py:317
#: compensation/templates/compensation/detail/eco_account/view.html:66
#: compensation/utils/quality.py:72
msgid "Agreement date"
msgstr "Vereinbarungsdatum"
-#: compensation/forms/forms.py:304
+#: compensation/forms/forms.py:319
msgid "When did the parties agree on this?"
msgstr "Wann wurde dieses Ökokonto offiziell vereinbart?"
-#: compensation/forms/forms.py:329
+#: compensation/forms/forms.py:343
msgid "New Eco-Account"
msgstr "Neues Ökokonto"
-#: compensation/forms/forms.py:338
+#: compensation/forms/forms.py:352
msgid "Eco-Account XY; Location ABC"
msgstr "Ökokonto XY; Flur ABC"
-#: compensation/forms/forms.py:397
+#: compensation/forms/forms.py:409
msgid "Edit Eco-Account"
msgstr "Ökokonto bearbeiten"
@@ -460,7 +470,7 @@ msgid "Due on which date"
msgstr "Zahlung wird an diesem Datum erwartet"
#: compensation/forms/modalForms.py:63 compensation/forms/modalForms.py:274
-#: compensation/forms/modalForms.py:369 intervention/forms/modalForms.py:134
+#: compensation/forms/modalForms.py:369 intervention/forms/modalForms.py:160
#: konova/forms.py:376
msgid "Additional comment, maximum {} letters"
msgstr "Zusätzlicher Kommentar, maximal {} Zeichen"
@@ -485,7 +495,7 @@ msgstr "Biotoptyp"
msgid "Select the biotope type"
msgstr "Biotoptyp wählen"
-#: compensation/forms/modalForms.py:155 intervention/forms/modalForms.py:284
+#: compensation/forms/modalForms.py:155 intervention/forms/modalForms.py:303
msgid "in m²"
msgstr ""
@@ -517,7 +527,7 @@ msgstr "Fristart wählen"
#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:31
#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:31
#: ema/templates/ema/detail/includes/deadlines.html:31
-#: intervention/forms/modalForms.py:106
+#: intervention/forms/modalForms.py:132
msgid "Date"
msgstr "Datum"
@@ -595,38 +605,38 @@ msgstr "Geben Sie die Daten der neuen Maßnahme ein"
msgid "Added action"
msgstr "Maßnahme hinzugefügt"
-#: compensation/models.py:83
+#: compensation/models.py:81
msgid "cm"
msgstr ""
-#: compensation/models.py:84
+#: compensation/models.py:82
msgid "m"
msgstr ""
-#: compensation/models.py:85
+#: compensation/models.py:83
msgid "km"
msgstr ""
-#: compensation/models.py:86
+#: compensation/models.py:84
msgid "m²"
msgstr ""
-#: compensation/models.py:87
+#: compensation/models.py:85
msgid "ha"
msgstr ""
-#: compensation/models.py:88
+#: compensation/models.py:86
msgid "Pieces"
msgstr "Stück"
-#: compensation/models.py:359
+#: compensation/models.py:374
msgid ""
"Deductable surface can not be larger than existing surfaces in after states"
msgstr ""
"Die abbuchbare Fläche darf die Gesamtfläche der Zielzustände nicht "
"überschreiten"
-#: compensation/models.py:366
+#: compensation/models.py:381
msgid ""
"Deductable surface can not be smaller than the sum of already existing "
"deductions. Please contact the responsible users for the deductions!"
@@ -658,7 +668,7 @@ msgid "Checked on {} by {}"
msgstr "Am {} von {} geprüft worden"
#: compensation/tables.py:129
-#: compensation/templates/compensation/detail/compensation/view.html:60
+#: compensation/templates/compensation/detail/compensation/view.html:80
#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:56
#: compensation/templates/compensation/detail/eco_account/view.html:47
#: ema/tables.py:101 ema/templates/ema/detail/view.html:31
@@ -744,22 +754,22 @@ msgid "Public report"
msgstr "Öffentlicher Bericht"
#: compensation/templates/compensation/detail/compensation/includes/controls.html:17
-#: compensation/templates/compensation/detail/eco_account/includes/controls.html:28
-#: ema/templates/ema/detail/includes/controls.html:28
+#: compensation/templates/compensation/detail/eco_account/includes/controls.html:31
+#: ema/templates/ema/detail/includes/controls.html:31
#: intervention/templates/intervention/detail/includes/controls.html:36
msgid "Edit"
msgstr "Bearbeiten"
#: compensation/templates/compensation/detail/compensation/includes/controls.html:21
-#: compensation/templates/compensation/detail/eco_account/includes/controls.html:32
-#: ema/templates/ema/detail/includes/controls.html:32
+#: compensation/templates/compensation/detail/eco_account/includes/controls.html:35
+#: ema/templates/ema/detail/includes/controls.html:35
#: intervention/templates/intervention/detail/includes/controls.html:40
msgid "Show log"
msgstr "Log anzeigen"
#: compensation/templates/compensation/detail/compensation/includes/controls.html:24
-#: compensation/templates/compensation/detail/eco_account/includes/controls.html:35
-#: ema/templates/ema/detail/includes/controls.html:35
+#: compensation/templates/compensation/detail/eco_account/includes/controls.html:38
+#: ema/templates/ema/detail/includes/controls.html:38
#: intervention/templates/intervention/detail/includes/controls.html:43
#: venv/lib/python3.7/site-packages/django/forms/formsets.py:391
msgid "Delete"
@@ -861,13 +871,21 @@ msgstr "Neuen Ausgangszustand hinzufügen"
msgid "Missing surfaces according to states after: "
msgstr "Fehlende Flächenmengen laut Zielzustand: "
-#: compensation/templates/compensation/detail/compensation/view.html:50
+#: compensation/templates/compensation/detail/compensation/view.html:43
+msgid "Is CEF compensation"
+msgstr "Ist CEF Maßnahme"
+
+#: compensation/templates/compensation/detail/compensation/view.html:53
+msgid "Is Coherence keeping compensation"
+msgstr "Ist Kohärenzsicherungsmaßnahme"
+
+#: compensation/templates/compensation/detail/compensation/view.html:70
#: intervention/templates/intervention/detail/view.html:75
msgid "Checked on "
msgstr "Geprüft am "
-#: compensation/templates/compensation/detail/compensation/view.html:50
-#: compensation/templates/compensation/detail/compensation/view.html:64
+#: compensation/templates/compensation/detail/compensation/view.html:70
+#: compensation/templates/compensation/detail/compensation/view.html:84
#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:54
#: compensation/templates/compensation/detail/eco_account/view.html:51
#: ema/templates/ema/detail/view.html:35
@@ -876,60 +894,46 @@ msgstr "Geprüft am "
msgid "by"
msgstr "von"
-#: compensation/templates/compensation/detail/compensation/view.html:64
+#: compensation/templates/compensation/detail/compensation/view.html:84
#: compensation/templates/compensation/detail/eco_account/view.html:51
#: ema/templates/ema/detail/view.html:35
#: intervention/templates/intervention/detail/view.html:89
msgid "Recorded on "
msgstr "Verzeichnet am"
-#: compensation/templates/compensation/detail/compensation/view.html:71
+#: compensation/templates/compensation/detail/compensation/view.html:91
#: compensation/templates/compensation/detail/eco_account/view.html:74
#: compensation/templates/compensation/report/compensation/report.html:24
-#: compensation/templates/compensation/report/eco_account/report.html:28
+#: compensation/templates/compensation/report/eco_account/report.html:41
#: ema/templates/ema/detail/view.html:54
#: ema/templates/ema/report/report.html:28
-msgid "Funded by"
-msgstr "Gefördert mit"
-
-#: compensation/templates/compensation/detail/compensation/view.html:79
-#: compensation/templates/compensation/detail/eco_account/view.html:82
-#: compensation/templates/compensation/report/compensation/report.html:31
-#: compensation/templates/compensation/report/eco_account/report.html:35
-#: compensation/templates/compensation/report/eco_account/report.html:49
-#: ema/templates/ema/detail/view.html:62
-#: ema/templates/ema/report/report.html:35
-#: intervention/templates/intervention/report/report.html:57
-#: intervention/templates/intervention/report/report.html:78
-msgid "None"
-msgstr "-"
-
-#: compensation/templates/compensation/detail/compensation/view.html:84
-#: compensation/templates/compensation/detail/eco_account/view.html:87
-#: compensation/templates/compensation/report/compensation/report.html:37
-#: compensation/templates/compensation/report/eco_account/report.html:54
-#: ema/templates/ema/detail/view.html:67
-#: ema/templates/ema/report/report.html:41
#: intervention/templates/intervention/detail/view.html:108
#: intervention/templates/intervention/report/report.html:91
msgid "Last modified"
msgstr "Zuletzt bearbeitet"
-#: compensation/templates/compensation/detail/compensation/view.html:92
-#: compensation/templates/compensation/detail/eco_account/view.html:95
-#: ema/templates/ema/detail/view.html:82 intervention/forms/modalForms.py:40
+#: compensation/templates/compensation/detail/compensation/view.html:99
+#: compensation/templates/compensation/detail/eco_account/view.html:82
+#: ema/templates/ema/detail/view.html:69 intervention/forms/modalForms.py:54
#: intervention/templates/intervention/detail/view.html:116
msgid "Shared with"
msgstr "Freigegeben für"
-#: compensation/templates/compensation/detail/eco_account/includes/controls.html:17
-#: ema/templates/ema/detail/includes/controls.html:17
+#: compensation/templates/compensation/detail/eco_account/includes/controls.html:15
+#: ema/templates/ema/detail/includes/controls.html:15
+#: intervention/forms/modalForms.py:68
+#: intervention/templates/intervention/detail/includes/controls.html:15
+msgid "Share"
+msgstr "Freigabe"
+
+#: compensation/templates/compensation/detail/eco_account/includes/controls.html:20
+#: ema/templates/ema/detail/includes/controls.html:20
#: intervention/templates/intervention/detail/includes/controls.html:25
msgid "Unrecord"
msgstr "Entzeichnen"
-#: compensation/templates/compensation/detail/eco_account/includes/controls.html:21
-#: ema/templates/ema/detail/includes/controls.html:21
+#: compensation/templates/compensation/detail/eco_account/includes/controls.html:24
+#: ema/templates/ema/detail/includes/controls.html:24
#: intervention/templates/intervention/detail/includes/controls.html:29
msgid "Record"
msgstr "Verzeichnen"
@@ -1000,24 +1004,30 @@ msgstr "Maßnahmenträger"
msgid "Report"
msgstr "Bericht"
-#: compensation/templates/compensation/report/compensation/report.html:55
-#: compensation/templates/compensation/report/eco_account/report.html:72
-#: ema/templates/ema/report/report.html:59
+#: compensation/templates/compensation/report/compensation/report.html:42
+#: compensation/templates/compensation/report/eco_account/report.html:59
+#: ema/templates/ema/report/report.html:46
#: intervention/templates/intervention/report/report.html:105
msgid "Open in browser"
msgstr "Im Browser öffnen"
-#: compensation/templates/compensation/report/compensation/report.html:59
-#: compensation/templates/compensation/report/eco_account/report.html:76
-#: ema/templates/ema/report/report.html:63
+#: compensation/templates/compensation/report/compensation/report.html:46
+#: compensation/templates/compensation/report/eco_account/report.html:63
+#: ema/templates/ema/report/report.html:50
#: intervention/templates/intervention/report/report.html:109
msgid "View in LANIS"
msgstr "In LANIS öffnen"
-#: compensation/templates/compensation/report/eco_account/report.html:41
+#: compensation/templates/compensation/report/eco_account/report.html:28
msgid "Deductions for"
msgstr "Abbuchungen für"
+#: compensation/templates/compensation/report/eco_account/report.html:36
+#: intervention/templates/intervention/report/report.html:57
+#: intervention/templates/intervention/report/report.html:78
+msgid "None"
+msgstr "-"
+
#: compensation/utils/quality.py:34
msgid "States unequal"
msgstr "Ungleiche Zustandsflächenmengen"
@@ -1041,79 +1051,101 @@ msgstr "Daten zu den verantwortlichen Stellen"
msgid "Compensation {} added"
msgstr "Kompensation {} hinzugefügt"
-#: compensation/views/compensation_views.py:132
+#: compensation/views/compensation_views.py:134
msgid "Compensation {} edited"
msgstr "Kompensation {} bearbeitet"
-#: compensation/views/compensation_views.py:216
-#: compensation/views/eco_account_views.py:290 ema/views.py:178
-#: intervention/views.py:448
+#: compensation/views/compensation_views.py:220
+#: compensation/views/eco_account_views.py:307 ema/views.py:182
+#: intervention/views.py:475
msgid "Log"
msgstr "Log"
-#: compensation/views/compensation_views.py:237
+#: compensation/views/compensation_views.py:243
msgid "Compensation removed"
msgstr "Kompensation entfernt"
-#: compensation/views/compensation_views.py:256
-#: compensation/views/eco_account_views.py:389 ema/views.py:331
-#: intervention/views.py:127
+#: compensation/views/compensation_views.py:264
+#: compensation/views/eco_account_views.py:459 ema/views.py:349
+#: intervention/views.py:129
msgid "Document added"
msgstr "Dokument hinzugefügt"
-#: compensation/views/compensation_views.py:321
-#: compensation/views/eco_account_views.py:333 ema/views.py:275
+#: compensation/views/compensation_views.py:333
+#: compensation/views/eco_account_views.py:353 ema/views.py:287
msgid "State added"
msgstr "Zustand hinzugefügt"
-#: compensation/views/compensation_views.py:340
-#: compensation/views/eco_account_views.py:352 ema/views.py:294
+#: compensation/views/compensation_views.py:354
+#: compensation/views/eco_account_views.py:374 ema/views.py:308
msgid "Action added"
msgstr "Maßnahme hinzugefügt"
-#: compensation/views/compensation_views.py:359
-#: compensation/views/eco_account_views.py:371 ema/views.py:313
+#: compensation/views/compensation_views.py:375
+#: compensation/views/eco_account_views.py:439 ema/views.py:329
msgid "Deadline added"
msgstr "Frist/Termin hinzugefügt"
-#: compensation/views/compensation_views.py:378
+#: compensation/views/compensation_views.py:397
+#: compensation/views/eco_account_views.py:396 ema/views.py:419
msgid "State removed"
msgstr "Zustand gelöscht"
-#: compensation/views/compensation_views.py:397
+#: compensation/views/compensation_views.py:419
+#: compensation/views/eco_account_views.py:418 ema/views.py:441
msgid "Action removed"
msgstr "Maßnahme entfernt"
-#: compensation/views/eco_account_views.py:86
+#: compensation/views/eco_account_views.py:88
msgid "Eco-Account {} added"
msgstr "Ökokonto {} hinzugefügt"
-#: compensation/views/eco_account_views.py:141
+#: compensation/views/eco_account_views.py:145
msgid "Eco-Account {} edited"
msgstr "Ökokonto {} bearbeitet"
-#: compensation/views/eco_account_views.py:240
+#: compensation/views/eco_account_views.py:255
msgid "Eco-account removed"
msgstr "Ökokonto entfernt"
-#: compensation/views/eco_account_views.py:267
+#: compensation/views/eco_account_views.py:283
msgid "Deduction removed"
msgstr "Abbuchung entfernt"
-#: compensation/views/eco_account_views.py:310 ema/views.py:252
-#: intervention/views.py:488
+#: compensation/views/eco_account_views.py:328 ema/views.py:262
+#: intervention/views.py:517
msgid "{} unrecorded"
msgstr "{} entzeichnet"
-#: compensation/views/eco_account_views.py:310 ema/views.py:252
-#: intervention/views.py:488
+#: compensation/views/eco_account_views.py:328 ema/views.py:262
+#: intervention/views.py:517
msgid "{} recorded"
msgstr "{} verzeichnet"
-#: compensation/views/eco_account_views.py:455 intervention/views.py:470
+#: compensation/views/eco_account_views.py:529 intervention/views.py:498
msgid "Deduction added"
msgstr "Abbuchung hinzugefügt"
+#: compensation/views/eco_account_views.py:612 ema/views.py:517
+#: intervention/views.py:373
+msgid "{} has already been shared with you"
+msgstr "{} wurde bereits für Sie freigegeben"
+
+#: compensation/views/eco_account_views.py:617 ema/views.py:522
+#: intervention/views.py:378
+msgid "{} has been shared with you"
+msgstr "{} ist nun für Sie freigegeben"
+
+#: compensation/views/eco_account_views.py:624 ema/views.py:529
+#: intervention/views.py:385
+msgid "Share link invalid"
+msgstr "Freigabelink ungültig"
+
+#: compensation/views/eco_account_views.py:647 ema/views.py:552
+#: intervention/views.py:408
+msgid "Share settings updated"
+msgstr "Freigabe Einstellungen aktualisiert"
+
#: compensation/views/payment_views.py:36
msgid "Payment added"
msgstr "Zahlung hinzugefügt"
@@ -1122,7 +1154,7 @@ msgstr "Zahlung hinzugefügt"
msgid "Payment removed"
msgstr "Zahlung gelöscht"
-#: ema/forms.py:38
+#: ema/forms.py:40
msgid "New EMA"
msgstr "Neue EMA hinzufügen"
@@ -1150,15 +1182,15 @@ msgstr ""
msgid "Payment funded compensation"
msgstr "Ersatzzahlungsmaßnahme"
-#: ema/views.py:78
+#: ema/views.py:79
msgid "EMA {} added"
msgstr "EMA {} hinzugefügt"
-#: ema/views.py:205
+#: ema/views.py:211
msgid "EMA {} edited"
msgstr "EMA {} bearbeitet"
-#: ema/views.py:235
+#: ema/views.py:243
msgid "EMA removed"
msgstr "EMA entfernt"
@@ -1243,59 +1275,66 @@ msgstr "Neuer Eingriff"
msgid "Edit intervention"
msgstr "Eingriff bearbeiten"
-#: intervention/forms/modalForms.py:28
+#: intervention/forms/modalForms.py:27
msgid "Share link"
msgstr "Freigabelink"
-#: intervention/forms/modalForms.py:30
+#: intervention/forms/modalForms.py:29
msgid "Send this link to users who you want to have writing access on the data"
msgstr "Andere Nutzer erhalten über diesen Link Zugriff auf die Daten"
-#: intervention/forms/modalForms.py:43
+#: intervention/forms/modalForms.py:39
+msgid "Add user to share with"
+msgstr "Nutzer direkt hinzufügen"
+
+#: intervention/forms/modalForms.py:41
+msgid ""
+"Multiple selection possible - You can only select users which do not already "
+"have access"
+msgstr ""
+"Mehrfachauswahl möglich - Sie können nur Nutzer wählen, für die der Eintrag "
+"noch nicht freigegeben wurde"
+
+#: intervention/forms/modalForms.py:57
msgid "Remove check to remove access for this user"
msgstr "Wählen Sie die Nutzer ab, die keinen Zugriff mehr haben sollen"
-#: intervention/forms/modalForms.py:54
-#: intervention/templates/intervention/detail/includes/controls.html:15
-msgid "Share"
-msgstr "Freigabe"
-
-#: intervention/forms/modalForms.py:55
+#: intervention/forms/modalForms.py:69
msgid "Share settings for {}"
msgstr "Freigabe Einstellungen für {}"
-#: intervention/forms/modalForms.py:108
+#: intervention/forms/modalForms.py:134
msgid "Date of revocation"
msgstr "Datum des Widerspruchs"
-#: intervention/forms/modalForms.py:119
+#: intervention/forms/modalForms.py:145
#: intervention/templates/intervention/detail/includes/revocation.html:35
msgid "Document"
msgstr "Dokument"
-#: intervention/forms/modalForms.py:122 konova/forms.py:364
+#: intervention/forms/modalForms.py:148 konova/forms.py:364
msgid "Must be smaller than 15 Mb"
msgstr "Muss kleiner als 15 Mb sein"
-#: intervention/forms/modalForms.py:146
+#: intervention/forms/modalForms.py:172
#: intervention/templates/intervention/detail/includes/revocation.html:18
msgid "Add revocation"
msgstr "Widerspruch hinzufügen"
-#: intervention/forms/modalForms.py:186
+#: intervention/forms/modalForms.py:214
msgid "Checked intervention data"
msgstr "Eingriffsdaten geprüft"
-#: intervention/forms/modalForms.py:192
+#: intervention/forms/modalForms.py:220
msgid "Checked compensations data and payments"
msgstr "Kompensationen und Zahlungen geprüft"
-#: intervention/forms/modalForms.py:200
+#: intervention/forms/modalForms.py:228
#: intervention/templates/intervention/detail/includes/controls.html:19
msgid "Run check"
msgstr "Prüfung vornehmen"
-#: intervention/forms/modalForms.py:201 konova/forms.py:449
+#: intervention/forms/modalForms.py:229 konova/forms.py:449
msgid ""
"I, {} {}, confirm that all necessary control steps have been performed by "
"myself."
@@ -1303,23 +1342,23 @@ msgstr ""
"Ich, {} {}, bestätige, dass die notwendigen Kontrollschritte durchgeführt "
"wurden:"
-#: intervention/forms/modalForms.py:268
+#: intervention/forms/modalForms.py:287
msgid "Only recorded accounts can be selected for deductions"
msgstr "Nur verzeichnete Ökokonten können für Abbuchungen verwendet werden."
-#: intervention/forms/modalForms.py:295
+#: intervention/forms/modalForms.py:314
msgid "Only shared interventions can be selected"
msgstr "Nur freigegebene Eingriffe können gewählt werden"
-#: intervention/forms/modalForms.py:308
+#: intervention/forms/modalForms.py:327
msgid "New Deduction"
msgstr "Neue Abbuchung"
-#: intervention/forms/modalForms.py:309
+#: intervention/forms/modalForms.py:328
msgid "Enter the information for a new deduction from a chosen eco-account"
msgstr "Geben Sie die Informationen für eine neue Abbuchung ein."
-#: intervention/forms/modalForms.py:342
+#: intervention/forms/modalForms.py:361
msgid ""
"Eco-account {} is not recorded yet. You can only deduct from recorded "
"accounts."
@@ -1327,7 +1366,7 @@ msgstr ""
"Ökokonto {} ist noch nicht verzeichnet. Abbuchungen können nur von "
"verzeichneten Ökokonten erfolgen."
-#: intervention/forms/modalForms.py:355
+#: intervention/forms/modalForms.py:374
msgid ""
"The account {} has not enough surface for a deduction of {} m². There are "
"only {} m² left"
@@ -1336,9 +1375,7 @@ msgstr ""
"Restfläche. Es stehen noch {} m² zur Verfügung."
#: intervention/tables.py:45
-#: intervention/templates/intervention/detail/includes/revocation.html:8
-#: intervention/templates/intervention/detail/includes/revocation.html:57
-#: intervention/templates/intervention/detail/view.html:104
+#: intervention/templates/intervention/detail/includes/revocation.html:56
msgid "Revocation"
msgstr "Widerspruch"
@@ -1388,12 +1425,17 @@ msgstr "Betrag"
msgid "Remove payment"
msgstr "Zahlung entfernen"
+#: intervention/templates/intervention/detail/includes/revocation.html:8
+#: intervention/templates/intervention/detail/view.html:104
+msgid "Revocations"
+msgstr "Widersprüche"
+
#: intervention/templates/intervention/detail/includes/revocation.html:32
msgctxt "Revocation"
msgid "From"
msgstr "Vom"
-#: intervention/templates/intervention/detail/includes/revocation.html:64
+#: intervention/templates/intervention/detail/includes/revocation.html:63
msgid "Remove revocation"
msgstr "Widerspruch entfernen"
@@ -1410,8 +1452,8 @@ msgid "Exist"
msgstr "Vorhanden"
#: intervention/utils/quality.py:70
-msgid "Revocation exists"
-msgstr "Widerspruch liegt vor"
+msgid "Revocations exists"
+msgstr "Widersprüche liegen vor"
#: intervention/utils/quality.py:76
msgid "Binding date"
@@ -1427,55 +1469,35 @@ msgstr ""
"Kein Ausgleich jeglicher Art gefunden (Kompensation, Ersatzzahlung, "
"Abbuchung)"
-#: intervention/views.py:80
+#: intervention/views.py:79
msgid "Intervention {} added"
msgstr "Eingriff {} hinzugefügt"
-#: intervention/views.py:231
-msgid "This intervention has a revocation from {}"
-msgstr "Es existiert ein Widerspruch vom {}"
+#: intervention/views.py:243
+msgid "This intervention has {} revocations"
+msgstr "Dem Eingriff liegen {} Widersprüche vor"
-#: intervention/views.py:274
+#: intervention/views.py:291
msgid "Intervention {} edited"
msgstr "Eingriff {} bearbeitet"
-#: intervention/views.py:275
-msgid "Status of Checked and Recorded reseted"
-msgstr "'Geprüft' und 'Verzeichnet' sind zurückgesetzt worden"
-
-#: intervention/views.py:307
+#: intervention/views.py:326
msgid "{} removed"
msgstr "{} entfernt"
-#: intervention/views.py:328
+#: intervention/views.py:347
msgid "Revocation removed"
msgstr "Widerspruch entfernt"
-#: intervention/views.py:354
-msgid "{} has already been shared with you"
-msgstr "{} wurde bereits für Sie freigegeben"
-
-#: intervention/views.py:359
-msgid "{} has been shared with you"
-msgstr "{} ist nun für Sie freigegeben"
-
-#: intervention/views.py:366
-msgid "Share link invalid"
-msgstr "Freigabelink ungültig"
-
-#: intervention/views.py:387
-msgid "Share settings updated"
-msgstr "Freigabe Einstellungen aktualisiert"
-
-#: intervention/views.py:406
+#: intervention/views.py:429
msgid "Check performed"
msgstr "Prüfung durchgeführt"
-#: intervention/views.py:426
+#: intervention/views.py:451
msgid "Revocation added"
msgstr "Widerspruch hinzugefügt"
-#: intervention/views.py:493
+#: intervention/views.py:522
msgid "There are errors on this intervention:"
msgstr "Es liegen Fehler in diesem Eingriff vor:"
@@ -1587,19 +1609,19 @@ msgstr "Wenn meine freigegebenen Daten gelöscht wurden"
msgid "On registered data edited"
msgstr "Wenn meine freigegebenen Daten bearbeitet wurden"
-#: konova/models.py:206
+#: konova/models.py:231
msgid "Finished"
msgstr "Umgesetzt bis"
-#: konova/models.py:207
+#: konova/models.py:232
msgid "Maintain"
msgstr "Unterhaltung bis"
-#: konova/models.py:208
+#: konova/models.py:233
msgid "Control"
msgstr "Kontrolle am"
-#: konova/models.py:209
+#: konova/models.py:234
msgid "Other"
msgstr "Sonstige"
@@ -1684,6 +1706,16 @@ msgstr ""
msgid "You need to be part of another user group."
msgstr "Hierfür müssen Sie einer anderen Nutzergruppe angehören!"
+#: konova/utils/message_templates.py:19
+msgid "Status of Checked and Recorded reseted"
+msgstr "'Geprüft' und 'Verzeichnet' sind zurückgesetzt worden"
+
+#: konova/utils/message_templates.py:22
+msgid ""
+"Action canceled. Eco account is recorded or deductions exist. Only "
+"conservation office member can perform this action."
+msgstr ""
+
#: konova/utils/messenger.py:69
msgid "{} checked"
msgstr "{} geprüft"
@@ -3146,3 +3178,15 @@ msgstr ""
#: venv/lib/python3.7/site-packages/fontawesome_5/fields.py:16
msgid "A fontawesome icon field"
msgstr ""
+
+#~ msgid "Share with user"
+#~ msgstr "Freigeben für Nutzer"
+
+#~ msgid "Fundings"
+#~ msgstr "Förderungen"
+
+#~ msgid "Select fundings for this compensation"
+#~ msgstr "Wählen Sie ggf. Fördermittelprojekte"
+
+#~ msgid "Funded by"
+#~ msgstr "Gefördert mit"
| |