38_User_requests #42

Merged
mpeltriaux merged 5 commits from 38_User_requests into master 3 years ago

@ -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. """ Form for creating new compensations.
Can be initialized with an intervention id for preselecting the related intervention. Can be initialized with an intervention id for preselecting the related intervention.
@ -146,6 +172,8 @@ class NewCompensationForm(AbstractCompensationForm):
"identifier", "identifier",
"title", "title",
"intervention", "intervention",
"is_cef",
"is_coherence_keeping",
"comment", "comment",
] ]
@ -177,6 +205,8 @@ class NewCompensationForm(AbstractCompensationForm):
identifier = self.cleaned_data.get("identifier", None) identifier = self.cleaned_data.get("identifier", None)
title = self.cleaned_data.get("title", None) title = self.cleaned_data.get("title", None)
intervention = self.cleaned_data.get("intervention", 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) comment = self.cleaned_data.get("comment", None)
# Create log entry # Create log entry
@ -193,6 +223,8 @@ class NewCompensationForm(AbstractCompensationForm):
title=title, title=title,
intervention=intervention, intervention=intervention,
created=action, created=action,
is_cef=is_cef,
is_coherence_keeping=is_coherence_keeping,
geometry=geometry, geometry=geometry,
comment=comment, comment=comment,
) )
@ -217,6 +249,8 @@ class EditCompensationForm(NewCompensationForm):
"identifier": self.instance.identifier, "identifier": self.instance.identifier,
"title": self.instance.title, "title": self.instance.title,
"intervention": self.instance.intervention, "intervention": self.instance.intervention,
"is_cef": self.instance.is_cef,
"is_coherence_keeping": self.instance.is_coherence_keeping,
"comment": self.instance.comment, "comment": self.instance.comment,
} }
disabled_fields = [] disabled_fields = []
@ -231,6 +265,8 @@ class EditCompensationForm(NewCompensationForm):
identifier = self.cleaned_data.get("identifier", None) identifier = self.cleaned_data.get("identifier", None)
title = self.cleaned_data.get("title", None) title = self.cleaned_data.get("title", None)
intervention = self.cleaned_data.get("intervention", 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) comment = self.cleaned_data.get("comment", None)
# Create log entry # Create log entry
@ -247,6 +283,8 @@ class EditCompensationForm(NewCompensationForm):
self.instance.title = title self.instance.title = title
self.instance.intervention = intervention self.instance.intervention = intervention
self.instance.geometry = geometry self.instance.geometry = geometry
self.instance.is_cef = is_cef
self.instance.is_coherence_keeping = is_coherence_keeping
self.instance.comment = comment self.instance.comment = comment
self.instance.modified = action self.instance.modified = action
self.instance.save() self.instance.save()

@ -32,8 +32,7 @@ class Payment(BaseResource):
""" """
amount = models.FloatField(validators=[MinValueValidator(limit_value=0.00)]) amount = models.FloatField(validators=[MinValueValidator(limit_value=0.00)])
due_on = models.DateField(null=True, blank=True) due_on = models.DateField(null=True, blank=True)
comment = models.CharField( comment = models.TextField(
max_length=1000,
null=True, null=True,
blank=True, blank=True,
help_text="Refers to german money transfer 'Verwendungszweck'", help_text="Refers to german money transfer 'Verwendungszweck'",
@ -190,7 +189,37 @@ class AbstractCompensation(BaseObject):
return checker 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 Regular compensation, linked to an intervention
""" """

@ -1,5 +1,5 @@
{% extends 'base.html' %} {% extends 'base.html' %}
{% load i18n l10n static fontawesome_5 humanize %} {% load i18n l10n static fontawesome_5 humanize ksp_filters %}
{% block head %} {% block head %}
{% comment %} {% comment %}
@ -38,6 +38,26 @@
</a> </a>
</td> </td>
</tr> </tr>
<tr>
<th scope="row">{% trans 'Is CEF compensation' %}</th>
<td class="align-middle">
{% if obj.is_cef %}
{% trans 'Yes' %}
{% else %}
{% trans 'No' %}
{% endif %}
</td>
</tr>
<tr>
<th scope="row">{% trans 'Is Coherence keeping compensation' %}</th>
<td class="align-middle">
{% if obj.is_coherence_keeping %}
{% trans 'Yes' %}
{% else %}
{% trans 'No' %}
{% endif %}
</td>
</tr>
<tr> <tr>
<th scope="row">{% trans 'Checked' %}</th> <th scope="row">{% trans 'Checked' %}</th>
<td class="align-middle"> <td class="align-middle">

@ -16,7 +16,7 @@
<th scope="row">{% trans 'compensates intervention' %}</th> <th scope="row">{% trans 'compensates intervention' %}</th>
<td class="align-middle"> <td class="align-middle">
<a href="{% url 'intervention:report' obj.intervention.id %}"> <a href="{% url 'intervention:report' obj.intervention.id %}">
{{obj.intervention.identifier}} {{obj.intervention.identifier}} - {{obj.intervention.title}}
</a> </a>
</td> </td>
</tr> </tr>

@ -29,7 +29,7 @@
<td class="align-middle"> <td class="align-middle">
{% for deduction in deductions %} {% for deduction in deductions %}
<a href="{% url 'intervention:report' deduction.intervention__id %}"> <a href="{% url 'intervention:report' deduction.intervention__id %}">
{{deduction.intervention__identifier}} {{deduction.intervention__identifier}} - {{deduction.intervention__title}}
</a> </a>
<br> <br>
{% empty %} {% empty %}

@ -570,7 +570,7 @@ def report_view(request:HttpRequest, id: str):
deductions = acc.deductions.all()\ deductions = acc.deductions.all()\
.distinct("intervention")\ .distinct("intervention")\
.select_related("intervention")\ .select_related("intervention")\
.values_list("intervention__id", "intervention__identifier", named=True) .values_list("intervention__id", "intervention__identifier", "intervention__title", named=True)
context = { context = {
"obj": acc, "obj": acc,

@ -16,10 +16,9 @@ from compensation.models import EcoAccount, EcoAccountDeduction
from intervention.inputs import TextToClipboardInput from intervention.inputs import TextToClipboardInput
from intervention.models import Revocation, RevocationDocument, Intervention from intervention.models import Revocation, RevocationDocument, Intervention
from konova.forms import BaseModalForm from konova.forms import BaseModalForm
from konova.settings import ZB_GROUP, ETS_GROUP
from konova.utils.general import format_german_float from konova.utils.general import format_german_float
from konova.utils.messenger import Messenger 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 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( users = forms.MultipleChoiceField(
label=_("Shared with"), label=_("Shared with"),
label_suffix="", label_suffix="",
@ -78,10 +92,18 @@ class ShareInterventionModalForm(BaseModalForm):
) )
# Initialize users field # Initialize users field
# Remove field if user is not in registration or conservation group # Disable 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): if is_default_group_only(self.request.user):
del self.fields["users"] self.disable_form_field("users")
else:
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() users = self.instance.users.all()
choices = [] choices = []
for n in users: for n in users:
@ -96,10 +118,13 @@ class ShareInterventionModalForm(BaseModalForm):
) )
def save(self): def save(self):
accessing_users = User.objects.filter( still_accessing_users = self.cleaned_data["users"]
id__in=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): class NewRevocationModalForm(BaseModalForm):
@ -162,14 +187,13 @@ class NewRevocationModalForm(BaseModalForm):
) )
revocation = Revocation.objects.create( revocation = Revocation.objects.create(
date=self.cleaned_data["date"], date=self.cleaned_data["date"],
legal=self.instance.legal,
comment=self.cleaned_data["comment"], comment=self.cleaned_data["comment"],
created=created_action, created=created_action,
) )
self.instance.modified = edited_action self.instance.modified = edited_action
self.instance.save() self.instance.save()
self.instance.log.add(edited_action) self.instance.log.add(edited_action)
self.instance.legal.revocation = revocation
self.instance.legal.save()
if self.cleaned_data["file"]: if self.cleaned_data["file"]:
RevocationDocument.objects.create( RevocationDocument.objects.create(

@ -68,6 +68,7 @@ class Revocation(BaseResource):
Holds revocation data e.g. for intervention objects Holds revocation data e.g. for intervention objects
""" """
date = models.DateField(null=True, blank=True, help_text="Revocation from") 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) comment = models.TextField(null=True, blank=True)
def delete(self, *args, **kwargs): def delete(self, *args, **kwargs):
@ -99,7 +100,7 @@ class RevocationDocument(AbstractDocument):
Returns: Returns:
intervention (Intervention) intervention (Intervention)
""" """
return self.instance.legaldata.intervention return self.instance.legal.intervention
def delete(self, *args, **kwargs): def delete(self, *args, **kwargs):
""" """
@ -118,8 +119,9 @@ class RevocationDocument(AbstractDocument):
# Remove the file itself # Remove the file itself
super().delete(*args, **kwargs) 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("/") folder_path = self.file.path.split("/")
if revoc_docs.count() == 0:
try: try:
shutil.rmtree("/".join(folder_path[:-1])) shutil.rmtree("/".join(folder_path[:-1]))
except FileNotFoundError: except FileNotFoundError:
@ -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): 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 regular_docs (QuerySet): The queryset of regular other documents
""" """
revoc_docs = RevocationDocument.objects.filter( revoc_docs = RevocationDocument.objects.filter(
instance=self.legal.revocation instance__in=self.legal.revocations.all()
) )
regular_docs = InterventionDocument.objects.filter( regular_docs = InterventionDocument.objects.filter(
instance=self instance=self
@ -366,6 +366,7 @@ class InterventionDocument(AbstractDocument):
if folder_path is not None: if folder_path is not None:
try: try:
shutil.rmtree(folder_path) shutil.rmtree(folder_path)
pass
except FileNotFoundError: except FileNotFoundError:
# Folder seems to be missing already... # Folder seems to be missing already...
pass pass

@ -4,8 +4,8 @@
<div class="row"> <div class="row">
<div class="col-sm-6"> <div class="col-sm-6">
<h5> <h5>
<span class="badge badge-light">{% if obj.legal.revocation %}1{% else %}0{% endif %}</span> <span class="badge badge-light">{{obj.legal.revocations.count}}</span>
{% trans 'Revocation' %} {% trans 'Revocations' %}
</h5> </h5>
</div> </div>
<div class="col-sm-6"> <div class="col-sm-6">
@ -44,8 +44,7 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% if obj.legal.revocation %} {% for rev in obj.legal.revocations.all %}
{% with obj.legal.revocation as rev %}
<tr> <tr>
<td class="align-middle"> <td class="align-middle">
{{ rev.date }} {{ rev.date }}
@ -66,8 +65,7 @@
{% endif %} {% endif %}
</td> </td>
</tr> </tr>
{% endwith %} {% endfor %}
{% endif %}
</tbody> </tbody>
</table> </table>
</div> </div>

@ -99,9 +99,9 @@
<th scope="row">{% trans 'Binding on' %}</th> <th scope="row">{% trans 'Binding on' %}</th>
<td class="align-middle">{{obj.legal.binding_date|default_if_none:""}}</td> <td class="align-middle">{{obj.legal.binding_date|default_if_none:""}}</td>
</tr> </tr>
<tr {% if obj.legal.revocation %}class="alert alert-danger" title="{% trans 'Exists' %}" {% endif %}> <tr {% if obj.legal.revocations.all %}class="alert alert-danger" title="{% trans 'Exists' %}" {% endif %}>
<th scope="row">{% trans 'Revocation' %}</th> <th scope="row">{% trans 'Revocations' %}</th>
<td class="align-middle">{{obj.legal.revocation.date|naturalday|default_if_none:""}}</td> <td class="align-middle">{{obj.legal.revocations.count}}</td>
</tr> </tr>
<tr> <tr>
<th scope="row">{% trans 'Last modified' %}</th> <th scope="row">{% trans 'Last modified' %}</th>

@ -50,7 +50,7 @@
<td class="align-middle"> <td class="align-middle">
{% for comp in obj.compensations.all %} {% for comp in obj.compensations.all %}
<a href="{% url 'compensation:report' comp.id %}"> <a href="{% url 'compensation:report' comp.id %}">
{{comp.identifier}} {{comp.identifier}} - {{comp.title}}
</a> </a>
<br> <br>
{% empty %} {% empty %}
@ -63,7 +63,7 @@
<td class="align-middle"> <td class="align-middle">
{% for deduction in deductions %} {% for deduction in deductions %}
<a href="{% url 'compensation:acc-report' deduction.account.id %}"> <a href="{% url 'compensation:acc-report' deduction.account.id %}">
{{deduction.account.identifier}} {{deduction.account.identifier}} - {{deduction.account.title}}
</a> </a>
<br> <br>
{% endfor %} {% endfor %}

@ -66,8 +66,8 @@ class InterventionQualityChecker(AbstractQualityChecker):
try: try:
legal = self.obj.legal legal = self.obj.legal
# Check for a revocation # Check for a revocation
if legal.revocation: if legal.revocations.exists():
self.messages.append(_("Revocation exists")) self.messages.append(_("Revocations exists"))
if legal.registration_date is None: if legal.registration_date is None:
self._add_missing_attr_name(_("Registration date")) self._add_missing_attr_name(_("Registration date"))

@ -11,7 +11,6 @@ from intervention.tables import InterventionTable
from konova.contexts import BaseContext from konova.contexts import BaseContext
from konova.decorators import * 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.utils.documents import remove_document, get_document from konova.utils.documents import remove_document, get_document
from konova.utils.generators import generate_qr_code from konova.utils.generators import generate_qr_code
from konova.utils.message_templates import INTERVENTION_INVALID, FORM_INVALID, IDENTIFIER_REPLACED, \ 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) doc = get_object_or_404(RevocationDocument, id=doc_id)
# File download only possible if related instance is shared with user # 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( messages.info(
request, request,
DATA_UNSHARED DATA_UNSHARED
@ -238,10 +237,10 @@ def detail_view(request: HttpRequest, id: str):
) )
# Inform user about revocation # Inform user about revocation
if intervention.legal.revocation: if intervention.legal.revocations.exists():
messages.error( messages.error(
request, 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", extra_tags="danger",
) )
@ -403,7 +402,7 @@ def create_share_view(request: HttpRequest, id: str):
""" """
intervention = get_object_or_404(Intervention, id=id) 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( return form.process_request(
request, request,
msg_success=_("Share settings updated") msg_success=_("Share settings updated")

@ -6,6 +6,7 @@ Created on: 07.12.20
""" """
from dal_select2.views import Select2QuerySetView from dal_select2.views import Select2QuerySetView
from django.contrib.auth.models import User
from django.db.models import Q from django.db.models import Q
from codelist.models import KonovaCode from codelist.models import KonovaCode
@ -60,6 +61,29 @@ class InterventionAutocomplete(Select2QuerySetView):
return qs 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): class KonovaCodeAutocomplete(Select2QuerySetView):
""" """
Provides simple autocomplete functionality for codes Provides simple autocomplete functionality for codes

@ -241,7 +241,7 @@ class Deadline(BaseResource):
type = models.CharField(max_length=255, null=True, blank=True, choices=DeadlineType.choices) type = models.CharField(max_length=255, null=True, blank=True, choices=DeadlineType.choices)
date = models.DateField(null=True, blank=True) 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): def __str__(self):
return self.type return self.type

@ -186,12 +186,15 @@ Overwrites bootstrap .btn:focus box shadow color
background-color: var(--rlp-gray-light); background-color: var(--rlp-gray-light);
} }
.check-star{ .check-star, .c-goldenrod{
color: goldenrod; color: goldenrod;
} }
.registered-bookmark{ .registered-bookmark, .c-green{
color: green; color: green;
} }
.c-red{
color: red;
}
/* PAGINATION */ /* PAGINATION */
.page-item > .page-link{ .page-item > .page-link{

@ -8,6 +8,8 @@ Created on: 05.07.21
from django import template from django import template
# Create custom library # Create custom library
from django.utils.html import format_html
from news.models import ServerMessageImportance from news.models import ServerMessageImportance
register = template.Library() register = template.Library()

@ -19,7 +19,8 @@ from django.urls import path, include
from konova.autocompletes import EcoAccountAutocomplete, \ from konova.autocompletes import EcoAccountAutocomplete, \
InterventionAutocomplete, CompensationActionCodeAutocomplete, BiotopeCodeAutocomplete, LawCodeAutocomplete, \ 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.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
@ -50,6 +51,7 @@ urlpatterns = [
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"),
path("atcmplt/codes/reg-off", RegistrationOfficeCodeAutocomplete.as_view(), name="codes-registration-office-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/codes/cons-off", ConservationOfficeCodeAutocomplete.as_view(), name="codes-conservation-office-autocomplete"),
path("atcmplt/share/u", ShareUserAutocomplete.as_view(), name="share-user-autocomplete"),
] ]
if DEBUG: if DEBUG:

@ -7,6 +7,8 @@ Created on: 02.07.21
""" """
from django.contrib.auth.models import User from django.contrib.auth.models import User
from konova.settings import ETS_GROUP, ZB_GROUP
def in_group(user: User, group: str) -> bool: def in_group(user: User, group: str) -> bool:
""" Checks if the user is part of a group """ 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( return user.groups.filter(
name=group 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)

Binary file not shown.

@ -9,8 +9,8 @@
#: 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:155 #: intervention/forms/forms.py:53 intervention/forms/forms.py:155
#: intervention/forms/forms.py:167 intervention/forms/modalForms.py:107 #: intervention/forms/forms.py:167 intervention/forms/modalForms.py:133
#: intervention/forms/modalForms.py:120 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:142 konova/forms.py:247 konova/forms.py:313
#: konova/forms.py:340 konova/forms.py:350 konova/forms.py:363 #: konova/forms.py:340 konova/forms.py:350 konova/forms.py:363
#: konova/forms.py:375 konova/forms.py:396 user/forms.py:38 #: konova/forms.py:375 konova/forms.py:396 user/forms.py:38
@ -19,7 +19,7 @@ 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-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" "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"
@ -37,7 +37,7 @@ msgstr "Vom"
msgid "To" msgid "To"
msgstr "Bis" 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/detail/eco_account/view.html:58
#: compensation/templates/compensation/report/eco_account/report.html:16 #: compensation/templates/compensation/report/eco_account/report.html:16
#: compensation/utils/quality.py:100 ema/templates/ema/detail/view.html:42 #: compensation/utils/quality.py:100 ema/templates/ema/detail/view.html:42
@ -49,14 +49,14 @@ msgstr "Bis"
msgid "Conservation office" msgid "Conservation office"
msgstr "Eintragungsstelle" 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" msgid "Select the responsible office"
msgstr "Verantwortliche Stelle" msgstr "Verantwortliche Stelle"
#: analysis/forms.py:58 compensation/forms/forms.py:67 #: analysis/forms.py:58 compensation/forms/forms.py:87
#: compensation/forms/forms.py:104 compensation/forms/forms.py:155 #: compensation/forms/forms.py:164 intervention/forms/forms.py:63
#: intervention/forms/forms.py:63 intervention/forms/forms.py:80 #: intervention/forms/forms.py:80 intervention/forms/forms.py:96
#: intervention/forms/forms.py:96 intervention/forms/forms.py:112 #: intervention/forms/forms.py:112 intervention/forms/modalForms.py:47
msgid "Click for selection" msgid "Click for selection"
msgstr "Auswählen..." 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/compensated_by.html:8
#: analysis/templates/analysis/reports/includes/intervention/laws.html:17 #: analysis/templates/analysis/reports/includes/intervention/laws.html:17
#: compensation/tables.py:35 #: 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/tables.py:33
#: intervention/templates/intervention/detail/view.html:68 user/models.py:48 #: intervention/templates/intervention/detail/view.html:68 user/models.py:48
msgid "Checked" msgid "Checked"
@ -145,7 +145,7 @@ msgstr "Geprüft"
#: analysis/templates/analysis/reports/includes/intervention/laws.html:20 #: analysis/templates/analysis/reports/includes/intervention/laws.html:20
#: analysis/templates/analysis/reports/includes/old_data/amount.html:18 #: analysis/templates/analysis/reports/includes/old_data/amount.html:18
#: compensation/tables.py:41 compensation/tables.py:181 #: 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/includes/deductions.html:31
#: compensation/templates/compensation/detail/eco_account/view.html:44 #: compensation/templates/compensation/detail/eco_account/view.html:44
#: ema/tables.py:38 ema/templates/ema/detail/view.html:28 #: 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 #: 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-after.html:36
#: ema/templates/ema/detail/includes/states-before.html:36 #: ema/templates/ema/detail/includes/states-before.html:36
#: intervention/forms/modalForms.py:282 #: intervention/forms/modalForms.py:301
msgid "Surface" msgid "Surface"
msgstr "Fläche" msgstr "Fläche"
@ -273,7 +273,7 @@ msgid "Type"
msgstr "Typ" msgstr "Typ"
#: analysis/templates/analysis/reports/includes/old_data/amount.html:24 #: 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/tables.py:88
#: intervention/templates/intervention/detail/view.html:19 #: intervention/templates/intervention/detail/view.html:19
#: konova/templates/konova/home.html:11 templates/navbars/navbar.html:22 #: 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 #: analysis/templates/analysis/reports/includes/old_data/amount.html:34
#: compensation/tables.py:224 #: compensation/tables.py:224
#: compensation/templates/compensation/detail/eco_account/view.html:19 #: 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 #: konova/templates/konova/home.html:88 templates/navbars/navbar.html:34
msgid "Eco-account" msgid "Eco-account"
msgstr "Ökokonto" msgstr "Ökokonto"
@ -335,19 +335,11 @@ msgstr "Bezeichnung"
msgid "An explanatory name" msgid "An explanatory name"
msgstr "Aussagekräftiger Titel" 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" msgid "Compensation XY; Location ABC"
msgstr "Kompensation XY; Flur ABC" msgstr "Kompensation XY; Flur ABC"
#: compensation/forms/forms.py:55 #: compensation/forms/forms.py:56 compensation/forms/modalForms.py:61
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/modalForms.py:272 compensation/forms/modalForms.py:367 #: 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/actions.html:34
#: compensation/templates/compensation/detail/compensation/includes/deadlines.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/actions.html:34
#: 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: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/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
@ -366,11 +358,11 @@ msgstr "Wählen Sie ggf. Fördermittelprojekte"
msgid "Comment" msgid "Comment"
msgstr "Kommentar" 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" msgid "Additional comment"
msgstr "Zusätzlicher Kommentar" 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/detail/eco_account/view.html:62
#: compensation/templates/compensation/report/eco_account/report.html:20 #: compensation/templates/compensation/report/eco_account/report.html:20
#: compensation/utils/quality.py:102 ema/templates/ema/detail/view.html:46 #: 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" msgid "Conservation office file number"
msgstr "Aktenzeichen Eintragungsstelle" 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" msgid "ETS-123/ABC.456"
msgstr "" msgstr ""
#: compensation/forms/forms.py:121 #: compensation/forms/forms.py:104
msgid "Eco-account handler" msgid "Eco-account handler"
msgstr "Maßnahmenträger" msgstr "Maßnahmenträger"
#: compensation/forms/forms.py:125 #: compensation/forms/forms.py:108
msgid "Who handles the eco-account" msgid "Who handles the eco-account"
msgstr "Wer für die Herrichtung des Ökokontos verantwortlich ist" 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" msgid "Company Mustermann"
msgstr "Firma 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/detail/compensation/view.html:35
#: compensation/templates/compensation/report/compensation/report.html:16 #: compensation/templates/compensation/report/compensation/report.html:16
msgid "compensates intervention" msgid "compensates intervention"
msgstr "kompensiert Eingriff" msgstr "kompensiert Eingriff"
#: compensation/forms/forms.py:148 #: compensation/forms/forms.py:157
msgid "Select the intervention for which this compensation compensates" msgid "Select the intervention for which this compensation compensates"
msgstr "Wählen Sie den Eingriff, für den diese Kompensation bestimmt ist" 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" msgid "New compensation"
msgstr "Neue Kompensation" msgstr "Neue Kompensation"
#: compensation/forms/forms.py:231 #: compensation/forms/forms.py:243
msgid "Edit compensation" msgid "Edit compensation"
msgstr "Bearbeite Kompensation" 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" msgid "Available Surface"
msgstr "Verfügbare Fläche" msgstr "Verfügbare Fläche"
#: compensation/forms/forms.py:293 #: compensation/forms/forms.py:308
msgid "The amount that can be used for deductions" msgid "The amount that can be used for deductions"
msgstr "Die für Abbuchungen zur Verfügung stehende Menge" 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/templates/compensation/detail/eco_account/view.html:66
#: compensation/utils/quality.py:72 #: compensation/utils/quality.py:72
msgid "Agreement date" msgid "Agreement date"
msgstr "Vereinbarungsdatum" msgstr "Vereinbarungsdatum"
#: compensation/forms/forms.py:304 #: compensation/forms/forms.py:319
msgid "When did the parties agree on this?" msgid "When did the parties agree on this?"
msgstr "Wann wurde dieses Ökokonto offiziell vereinbart?" msgstr "Wann wurde dieses Ökokonto offiziell vereinbart?"
#: compensation/forms/forms.py:329 #: compensation/forms/forms.py:343
msgid "New Eco-Account" msgid "New Eco-Account"
msgstr "Neues Ökokonto" msgstr "Neues Ökokonto"
#: compensation/forms/forms.py:338 #: compensation/forms/forms.py:352
msgid "Eco-Account XY; Location ABC" msgid "Eco-Account XY; Location ABC"
msgstr "Ökokonto XY; Flur ABC" msgstr "Ökokonto XY; Flur ABC"
#: compensation/forms/forms.py:397 #: compensation/forms/forms.py:409
msgid "Edit Eco-Account" msgid "Edit Eco-Account"
msgstr "Ökokonto bearbeiten" msgstr "Ökokonto bearbeiten"
@ -460,7 +470,7 @@ msgid "Due on which date"
msgstr "Zahlung wird an diesem Datum erwartet" msgstr "Zahlung wird an diesem Datum erwartet"
#: compensation/forms/modalForms.py:63 compensation/forms/modalForms.py:274 #: 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 #: konova/forms.py:376
msgid "Additional comment, maximum {} letters" msgid "Additional comment, maximum {} letters"
msgstr "Zusätzlicher Kommentar, maximal {} Zeichen" msgstr "Zusätzlicher Kommentar, maximal {} Zeichen"
@ -485,7 +495,7 @@ msgstr "Biotoptyp"
msgid "Select the biotope type" msgid "Select the biotope type"
msgstr "Biotoptyp wählen" 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²" msgid "in m²"
msgstr "" msgstr ""
@ -517,7 +527,7 @@ msgstr "Fristart wählen"
#: 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
#: intervention/forms/modalForms.py:106 #: intervention/forms/modalForms.py:132
msgid "Date" msgid "Date"
msgstr "Datum" msgstr "Datum"
@ -595,38 +605,38 @@ msgstr "Geben Sie die Daten der neuen Maßnahme ein"
msgid "Added action" msgid "Added action"
msgstr "Maßnahme hinzugefügt" msgstr "Maßnahme hinzugefügt"
#: compensation/models.py:83 #: compensation/models.py:81
msgid "cm" msgid "cm"
msgstr "" msgstr ""
#: compensation/models.py:84 #: compensation/models.py:82
msgid "m" msgid "m"
msgstr "" msgstr ""
#: compensation/models.py:85 #: compensation/models.py:83
msgid "km" msgid "km"
msgstr "" msgstr ""
#: compensation/models.py:86 #: compensation/models.py:84
msgid "m²" msgid "m²"
msgstr "" msgstr ""
#: compensation/models.py:87 #: compensation/models.py:85
msgid "ha" msgid "ha"
msgstr "" msgstr ""
#: compensation/models.py:88 #: compensation/models.py:86
msgid "Pieces" msgid "Pieces"
msgstr "Stück" msgstr "Stück"
#: compensation/models.py:359 #: compensation/models.py:374
msgid "" msgid ""
"Deductable surface can not be larger than existing surfaces in after states" "Deductable surface can not be larger than existing surfaces in after states"
msgstr "" msgstr ""
"Die abbuchbare Fläche darf die Gesamtfläche der Zielzustände nicht " "Die abbuchbare Fläche darf die Gesamtfläche der Zielzustände nicht "
"überschreiten" "überschreiten"
#: compensation/models.py:366 #: compensation/models.py:381
msgid "" msgid ""
"Deductable surface can not be smaller than the sum of already existing " "Deductable surface can not be smaller than the sum of already existing "
"deductions. Please contact the responsible users for the deductions!" "deductions. Please contact the responsible users for the deductions!"
@ -658,7 +668,7 @@ msgid "Checked on {} by {}"
msgstr "Am {} von {} geprüft worden" msgstr "Am {} von {} geprüft worden"
#: compensation/tables.py:129 #: 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/includes/deductions.html:56
#: compensation/templates/compensation/detail/eco_account/view.html:47 #: compensation/templates/compensation/detail/eco_account/view.html:47
#: ema/tables.py:101 ema/templates/ema/detail/view.html:31 #: ema/tables.py:101 ema/templates/ema/detail/view.html:31
@ -744,22 +754,22 @@ msgid "Public report"
msgstr "Öffentlicher Bericht" msgstr "Öffentlicher Bericht"
#: compensation/templates/compensation/detail/compensation/includes/controls.html:17 #: compensation/templates/compensation/detail/compensation/includes/controls.html:17
#: compensation/templates/compensation/detail/eco_account/includes/controls.html:28 #: compensation/templates/compensation/detail/eco_account/includes/controls.html:31
#: ema/templates/ema/detail/includes/controls.html:28 #: ema/templates/ema/detail/includes/controls.html:31
#: intervention/templates/intervention/detail/includes/controls.html:36 #: intervention/templates/intervention/detail/includes/controls.html:36
msgid "Edit" msgid "Edit"
msgstr "Bearbeiten" msgstr "Bearbeiten"
#: compensation/templates/compensation/detail/compensation/includes/controls.html:21 #: compensation/templates/compensation/detail/compensation/includes/controls.html:21
#: compensation/templates/compensation/detail/eco_account/includes/controls.html:32 #: compensation/templates/compensation/detail/eco_account/includes/controls.html:35
#: ema/templates/ema/detail/includes/controls.html:32 #: ema/templates/ema/detail/includes/controls.html:35
#: intervention/templates/intervention/detail/includes/controls.html:40 #: intervention/templates/intervention/detail/includes/controls.html:40
msgid "Show log" msgid "Show log"
msgstr "Log anzeigen" msgstr "Log anzeigen"
#: compensation/templates/compensation/detail/compensation/includes/controls.html:24 #: compensation/templates/compensation/detail/compensation/includes/controls.html:24
#: compensation/templates/compensation/detail/eco_account/includes/controls.html:35 #: compensation/templates/compensation/detail/eco_account/includes/controls.html:38
#: ema/templates/ema/detail/includes/controls.html:35 #: ema/templates/ema/detail/includes/controls.html:38
#: intervention/templates/intervention/detail/includes/controls.html:43 #: intervention/templates/intervention/detail/includes/controls.html:43
#: venv/lib/python3.7/site-packages/django/forms/formsets.py:391 #: venv/lib/python3.7/site-packages/django/forms/formsets.py:391
msgid "Delete" msgid "Delete"
@ -861,13 +871,21 @@ 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: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 #: intervention/templates/intervention/detail/view.html:75
msgid "Checked on " msgid "Checked on "
msgstr "Geprüft am " msgstr "Geprüft am "
#: compensation/templates/compensation/detail/compensation/view.html:50 #: compensation/templates/compensation/detail/compensation/view.html:70
#: compensation/templates/compensation/detail/compensation/view.html:64 #: compensation/templates/compensation/detail/compensation/view.html:84
#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:54 #: compensation/templates/compensation/detail/eco_account/includes/deductions.html:54
#: compensation/templates/compensation/detail/eco_account/view.html:51 #: compensation/templates/compensation/detail/eco_account/view.html:51
#: ema/templates/ema/detail/view.html:35 #: ema/templates/ema/detail/view.html:35
@ -876,60 +894,46 @@ msgstr "Geprüft am "
msgid "by" msgid "by"
msgstr "von" 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 #: compensation/templates/compensation/detail/eco_account/view.html:51
#: ema/templates/ema/detail/view.html:35 #: ema/templates/ema/detail/view.html:35
#: intervention/templates/intervention/detail/view.html:89 #: intervention/templates/intervention/detail/view.html:89
msgid "Recorded on " msgid "Recorded on "
msgstr "Verzeichnet am" 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/detail/eco_account/view.html:74
#: compensation/templates/compensation/report/compensation/report.html:24 #: 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/detail/view.html:54
#: ema/templates/ema/report/report.html:28 #: 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/detail/view.html:108
#: intervention/templates/intervention/report/report.html:91 #: intervention/templates/intervention/report/report.html:91
msgid "Last modified" msgid "Last modified"
msgstr "Zuletzt bearbeitet" msgstr "Zuletzt bearbeitet"
#: compensation/templates/compensation/detail/compensation/view.html:92 #: compensation/templates/compensation/detail/compensation/view.html:99
#: compensation/templates/compensation/detail/eco_account/view.html:95 #: compensation/templates/compensation/detail/eco_account/view.html:82
#: ema/templates/ema/detail/view.html:82 intervention/forms/modalForms.py:40 #: ema/templates/ema/detail/view.html:69 intervention/forms/modalForms.py:54
#: intervention/templates/intervention/detail/view.html:116 #: intervention/templates/intervention/detail/view.html:116
msgid "Shared with" msgid "Shared with"
msgstr "Freigegeben für" msgstr "Freigegeben für"
#: compensation/templates/compensation/detail/eco_account/includes/controls.html:17 #: compensation/templates/compensation/detail/eco_account/includes/controls.html:15
#: ema/templates/ema/detail/includes/controls.html:17 #: 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 #: intervention/templates/intervention/detail/includes/controls.html:25
msgid "Unrecord" msgid "Unrecord"
msgstr "Entzeichnen" msgstr "Entzeichnen"
#: compensation/templates/compensation/detail/eco_account/includes/controls.html:21 #: compensation/templates/compensation/detail/eco_account/includes/controls.html:24
#: ema/templates/ema/detail/includes/controls.html:21 #: ema/templates/ema/detail/includes/controls.html:24
#: intervention/templates/intervention/detail/includes/controls.html:29 #: intervention/templates/intervention/detail/includes/controls.html:29
msgid "Record" msgid "Record"
msgstr "Verzeichnen" msgstr "Verzeichnen"
@ -1000,24 +1004,30 @@ msgstr "Maßnahmenträger"
msgid "Report" msgid "Report"
msgstr "Bericht" msgstr "Bericht"
#: compensation/templates/compensation/report/compensation/report.html:55 #: compensation/templates/compensation/report/compensation/report.html:42
#: compensation/templates/compensation/report/eco_account/report.html:72 #: compensation/templates/compensation/report/eco_account/report.html:59
#: ema/templates/ema/report/report.html:59 #: ema/templates/ema/report/report.html:46
#: intervention/templates/intervention/report/report.html:105 #: intervention/templates/intervention/report/report.html:105
msgid "Open in browser" msgid "Open in browser"
msgstr "Im Browser öffnen" msgstr "Im Browser öffnen"
#: compensation/templates/compensation/report/compensation/report.html:59 #: compensation/templates/compensation/report/compensation/report.html:46
#: compensation/templates/compensation/report/eco_account/report.html:76 #: compensation/templates/compensation/report/eco_account/report.html:63
#: ema/templates/ema/report/report.html:63 #: ema/templates/ema/report/report.html:50
#: intervention/templates/intervention/report/report.html:109 #: intervention/templates/intervention/report/report.html:109
msgid "View in LANIS" msgid "View in LANIS"
msgstr "In LANIS öffnen" 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" msgid "Deductions for"
msgstr "Abbuchungen für" 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 #: compensation/utils/quality.py:34
msgid "States unequal" msgid "States unequal"
msgstr "Ungleiche Zustandsflächenmengen" msgstr "Ungleiche Zustandsflächenmengen"
@ -1041,79 +1051,101 @@ msgstr "Daten zu den verantwortlichen Stellen"
msgid "Compensation {} added" msgid "Compensation {} added"
msgstr "Kompensation {} hinzugefügt" msgstr "Kompensation {} hinzugefügt"
#: compensation/views/compensation_views.py:132 #: compensation/views/compensation_views.py:134
msgid "Compensation {} edited" msgid "Compensation {} edited"
msgstr "Kompensation {} bearbeitet" msgstr "Kompensation {} bearbeitet"
#: compensation/views/compensation_views.py:216 #: compensation/views/compensation_views.py:220
#: compensation/views/eco_account_views.py:290 ema/views.py:178 #: compensation/views/eco_account_views.py:307 ema/views.py:182
#: intervention/views.py:448 #: intervention/views.py:475
msgid "Log" msgid "Log"
msgstr "Log" msgstr "Log"
#: compensation/views/compensation_views.py:237 #: compensation/views/compensation_views.py:243
msgid "Compensation removed" msgid "Compensation removed"
msgstr "Kompensation entfernt" msgstr "Kompensation entfernt"
#: compensation/views/compensation_views.py:256 #: compensation/views/compensation_views.py:264
#: compensation/views/eco_account_views.py:389 ema/views.py:331 #: compensation/views/eco_account_views.py:459 ema/views.py:349
#: intervention/views.py:127 #: intervention/views.py:129
msgid "Document added" msgid "Document added"
msgstr "Dokument hinzugefügt" msgstr "Dokument hinzugefügt"
#: compensation/views/compensation_views.py:321 #: compensation/views/compensation_views.py:333
#: compensation/views/eco_account_views.py:333 ema/views.py:275 #: compensation/views/eco_account_views.py:353 ema/views.py:287
msgid "State added" msgid "State added"
msgstr "Zustand hinzugefügt" msgstr "Zustand hinzugefügt"
#: compensation/views/compensation_views.py:340 #: compensation/views/compensation_views.py:354
#: compensation/views/eco_account_views.py:352 ema/views.py:294 #: compensation/views/eco_account_views.py:374 ema/views.py:308
msgid "Action added" msgid "Action added"
msgstr "Maßnahme hinzugefügt" msgstr "Maßnahme hinzugefügt"
#: compensation/views/compensation_views.py:359 #: compensation/views/compensation_views.py:375
#: compensation/views/eco_account_views.py:371 ema/views.py:313 #: compensation/views/eco_account_views.py:439 ema/views.py:329
msgid "Deadline added" msgid "Deadline added"
msgstr "Frist/Termin hinzugefügt" 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" msgid "State removed"
msgstr "Zustand gelöscht" 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" msgid "Action removed"
msgstr "Maßnahme entfernt" msgstr "Maßnahme entfernt"
#: compensation/views/eco_account_views.py:86 #: compensation/views/eco_account_views.py:88
msgid "Eco-Account {} added" msgid "Eco-Account {} added"
msgstr "Ökokonto {} hinzugefügt" msgstr "Ökokonto {} hinzugefügt"
#: compensation/views/eco_account_views.py:141 #: compensation/views/eco_account_views.py:145
msgid "Eco-Account {} edited" msgid "Eco-Account {} edited"
msgstr "Ökokonto {} bearbeitet" msgstr "Ökokonto {} bearbeitet"
#: compensation/views/eco_account_views.py:240 #: compensation/views/eco_account_views.py:255
msgid "Eco-account removed" msgid "Eco-account removed"
msgstr "Ökokonto entfernt" msgstr "Ökokonto entfernt"
#: compensation/views/eco_account_views.py:267 #: compensation/views/eco_account_views.py:283
msgid "Deduction removed" msgid "Deduction removed"
msgstr "Abbuchung entfernt" msgstr "Abbuchung entfernt"
#: compensation/views/eco_account_views.py:310 ema/views.py:252 #: compensation/views/eco_account_views.py:328 ema/views.py:262
#: intervention/views.py:488 #: intervention/views.py:517
msgid "{} unrecorded" msgid "{} unrecorded"
msgstr "{} entzeichnet" msgstr "{} entzeichnet"
#: compensation/views/eco_account_views.py:310 ema/views.py:252 #: compensation/views/eco_account_views.py:328 ema/views.py:262
#: intervention/views.py:488 #: intervention/views.py:517
msgid "{} recorded" msgid "{} recorded"
msgstr "{} verzeichnet" 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" msgid "Deduction added"
msgstr "Abbuchung hinzugefügt" 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 #: compensation/views/payment_views.py:36
msgid "Payment added" msgid "Payment added"
msgstr "Zahlung hinzugefügt" msgstr "Zahlung hinzugefügt"
@ -1122,7 +1154,7 @@ msgstr "Zahlung hinzugefügt"
msgid "Payment removed" msgid "Payment removed"
msgstr "Zahlung gelöscht" msgstr "Zahlung gelöscht"
#: ema/forms.py:38 #: ema/forms.py:40
msgid "New EMA" msgid "New EMA"
msgstr "Neue EMA hinzufügen" msgstr "Neue EMA hinzufügen"
@ -1150,15 +1182,15 @@ msgstr ""
msgid "Payment funded compensation" msgid "Payment funded compensation"
msgstr "Ersatzzahlungsmaßnahme" msgstr "Ersatzzahlungsmaßnahme"
#: ema/views.py:78 #: ema/views.py:79
msgid "EMA {} added" msgid "EMA {} added"
msgstr "EMA {} hinzugefügt" msgstr "EMA {} hinzugefügt"
#: ema/views.py:205 #: ema/views.py:211
msgid "EMA {} edited" msgid "EMA {} edited"
msgstr "EMA {} bearbeitet" msgstr "EMA {} bearbeitet"
#: ema/views.py:235 #: ema/views.py:243
msgid "EMA removed" msgid "EMA removed"
msgstr "EMA entfernt" msgstr "EMA entfernt"
@ -1243,59 +1275,66 @@ msgstr "Neuer Eingriff"
msgid "Edit intervention" msgid "Edit intervention"
msgstr "Eingriff bearbeiten" msgstr "Eingriff bearbeiten"
#: intervention/forms/modalForms.py:28 #: intervention/forms/modalForms.py:27
msgid "Share link" msgid "Share link"
msgstr "Freigabelink" 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" 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" 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" msgid "Remove check to remove access for this user"
msgstr "Wählen Sie die Nutzer ab, die keinen Zugriff mehr haben sollen" msgstr "Wählen Sie die Nutzer ab, die keinen Zugriff mehr haben sollen"
#: intervention/forms/modalForms.py:54 #: intervention/forms/modalForms.py:69
#: intervention/templates/intervention/detail/includes/controls.html:15
msgid "Share"
msgstr "Freigabe"
#: intervention/forms/modalForms.py:55
msgid "Share settings for {}" msgid "Share settings for {}"
msgstr "Freigabe Einstellungen für {}" msgstr "Freigabe Einstellungen für {}"
#: intervention/forms/modalForms.py:108 #: intervention/forms/modalForms.py:134
msgid "Date of revocation" msgid "Date of revocation"
msgstr "Datum des Widerspruchs" msgstr "Datum des Widerspruchs"
#: intervention/forms/modalForms.py:119 #: intervention/forms/modalForms.py:145
#: intervention/templates/intervention/detail/includes/revocation.html:35 #: intervention/templates/intervention/detail/includes/revocation.html:35
msgid "Document" msgid "Document"
msgstr "Dokument" 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" msgid "Must be smaller than 15 Mb"
msgstr "Muss kleiner als 15 Mb sein" 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 #: intervention/templates/intervention/detail/includes/revocation.html:18
msgid "Add revocation" msgid "Add revocation"
msgstr "Widerspruch hinzufügen" msgstr "Widerspruch hinzufügen"
#: intervention/forms/modalForms.py:186 #: intervention/forms/modalForms.py:214
msgid "Checked intervention data" msgid "Checked intervention data"
msgstr "Eingriffsdaten geprüft" msgstr "Eingriffsdaten geprüft"
#: intervention/forms/modalForms.py:192 #: intervention/forms/modalForms.py:220
msgid "Checked compensations data and payments" msgid "Checked compensations data and payments"
msgstr "Kompensationen und Zahlungen geprüft" msgstr "Kompensationen und Zahlungen geprüft"
#: intervention/forms/modalForms.py:200 #: intervention/forms/modalForms.py:228
#: intervention/templates/intervention/detail/includes/controls.html:19 #: intervention/templates/intervention/detail/includes/controls.html:19
msgid "Run check" msgid "Run check"
msgstr "Prüfung vornehmen" msgstr "Prüfung vornehmen"
#: intervention/forms/modalForms.py:201 konova/forms.py:449 #: intervention/forms/modalForms.py:229 konova/forms.py:449
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."
@ -1303,23 +1342,23 @@ msgstr ""
"Ich, {} {}, bestätige, dass die notwendigen Kontrollschritte durchgeführt " "Ich, {} {}, bestätige, dass die notwendigen Kontrollschritte durchgeführt "
"wurden:" "wurden:"
#: intervention/forms/modalForms.py:268 #: intervention/forms/modalForms.py:287
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:295 #: intervention/forms/modalForms.py:314
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"
#: intervention/forms/modalForms.py:308 #: intervention/forms/modalForms.py:327
msgid "New Deduction" msgid "New Deduction"
msgstr "Neue Abbuchung" 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" msgid "Enter the information for a new deduction from a chosen eco-account"
msgstr "Geben Sie die Informationen für eine neue Abbuchung ein." msgstr "Geben Sie die Informationen für eine neue Abbuchung ein."
#: intervention/forms/modalForms.py:342 #: intervention/forms/modalForms.py:361
msgid "" msgid ""
"Eco-account {} is not recorded yet. You can only deduct from recorded " "Eco-account {} is not recorded yet. You can only deduct from recorded "
"accounts." "accounts."
@ -1327,7 +1366,7 @@ msgstr ""
"Ökokonto {} ist noch nicht verzeichnet. Abbuchungen können nur von " "Ökokonto {} ist noch nicht verzeichnet. Abbuchungen können nur von "
"verzeichneten Ökokonten erfolgen." "verzeichneten Ökokonten erfolgen."
#: intervention/forms/modalForms.py:355 #: intervention/forms/modalForms.py:374
msgid "" msgid ""
"The account {} has not enough surface for a deduction of {} m². There are " "The account {} has not enough surface for a deduction of {} m². There are "
"only {} m² left" "only {} m² left"
@ -1336,9 +1375,7 @@ msgstr ""
"Restfläche. Es stehen noch {} m² zur Verfügung." "Restfläche. Es stehen noch {} m² zur Verfügung."
#: intervention/tables.py:45 #: intervention/tables.py:45
#: intervention/templates/intervention/detail/includes/revocation.html:8 #: intervention/templates/intervention/detail/includes/revocation.html:56
#: intervention/templates/intervention/detail/includes/revocation.html:57
#: intervention/templates/intervention/detail/view.html:104
msgid "Revocation" msgid "Revocation"
msgstr "Widerspruch" msgstr "Widerspruch"
@ -1388,12 +1425,17 @@ msgstr "Betrag"
msgid "Remove payment" msgid "Remove payment"
msgstr "Zahlung entfernen" 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 #: intervention/templates/intervention/detail/includes/revocation.html:32
msgctxt "Revocation" msgctxt "Revocation"
msgid "From" msgid "From"
msgstr "Vom" msgstr "Vom"
#: intervention/templates/intervention/detail/includes/revocation.html:64 #: intervention/templates/intervention/detail/includes/revocation.html:63
msgid "Remove revocation" msgid "Remove revocation"
msgstr "Widerspruch entfernen" msgstr "Widerspruch entfernen"
@ -1410,8 +1452,8 @@ msgid "Exist"
msgstr "Vorhanden" msgstr "Vorhanden"
#: intervention/utils/quality.py:70 #: intervention/utils/quality.py:70
msgid "Revocation exists" msgid "Revocations exists"
msgstr "Widerspruch liegt vor" msgstr "Widersprüche liegen vor"
#: intervention/utils/quality.py:76 #: intervention/utils/quality.py:76
msgid "Binding date" msgid "Binding date"
@ -1427,55 +1469,35 @@ msgstr ""
"Kein Ausgleich jeglicher Art gefunden (Kompensation, Ersatzzahlung, " "Kein Ausgleich jeglicher Art gefunden (Kompensation, Ersatzzahlung, "
"Abbuchung)" "Abbuchung)"
#: intervention/views.py:80 #: intervention/views.py:79
msgid "Intervention {} added" msgid "Intervention {} added"
msgstr "Eingriff {} hinzugefügt" msgstr "Eingriff {} hinzugefügt"
#: intervention/views.py:231 #: intervention/views.py:243
msgid "This intervention has a revocation from {}" msgid "This intervention has {} revocations"
msgstr "Es existiert ein Widerspruch vom {}" msgstr "Dem Eingriff liegen {} Widersprüche vor"
#: intervention/views.py:274 #: intervention/views.py:291
msgid "Intervention {} edited" msgid "Intervention {} edited"
msgstr "Eingriff {} bearbeitet" msgstr "Eingriff {} bearbeitet"
#: intervention/views.py:275 #: intervention/views.py:326
msgid "Status of Checked and Recorded reseted"
msgstr "'Geprüft' und 'Verzeichnet' sind zurückgesetzt worden"
#: intervention/views.py:307
msgid "{} removed" msgid "{} removed"
msgstr "{} entfernt" msgstr "{} entfernt"
#: intervention/views.py:328 #: intervention/views.py:347
msgid "Revocation removed" msgid "Revocation removed"
msgstr "Widerspruch entfernt" msgstr "Widerspruch entfernt"
#: intervention/views.py:354 #: intervention/views.py:429
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
msgid "Check performed" msgid "Check performed"
msgstr "Prüfung durchgeführt" msgstr "Prüfung durchgeführt"
#: intervention/views.py:426 #: intervention/views.py:451
msgid "Revocation added" msgid "Revocation added"
msgstr "Widerspruch hinzugefügt" msgstr "Widerspruch hinzugefügt"
#: intervention/views.py:493 #: intervention/views.py:522
msgid "There are errors on this intervention:" msgid "There are errors on this intervention:"
msgstr "Es liegen Fehler in diesem Eingriff vor:" 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" msgid "On registered data edited"
msgstr "Wenn meine freigegebenen Daten bearbeitet wurden" msgstr "Wenn meine freigegebenen Daten bearbeitet wurden"
#: konova/models.py:206 #: konova/models.py:231
msgid "Finished" msgid "Finished"
msgstr "Umgesetzt bis" msgstr "Umgesetzt bis"
#: konova/models.py:207 #: konova/models.py:232
msgid "Maintain" msgid "Maintain"
msgstr "Unterhaltung bis" msgstr "Unterhaltung bis"
#: konova/models.py:208 #: konova/models.py:233
msgid "Control" msgid "Control"
msgstr "Kontrolle am" msgstr "Kontrolle am"
#: konova/models.py:209 #: konova/models.py:234
msgid "Other" msgid "Other"
msgstr "Sonstige" msgstr "Sonstige"
@ -1684,6 +1706,16 @@ msgstr ""
msgid "You need to be part of another user group." msgid "You need to be part of another user group."
msgstr "Hierfür müssen Sie einer anderen Nutzergruppe angehören!" 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 #: konova/utils/messenger.py:69
msgid "{} checked" msgid "{} checked"
msgstr "{} geprüft" msgstr "{} geprüft"
@ -3146,3 +3178,15 @@ msgstr ""
#: venv/lib/python3.7/site-packages/fontawesome_5/fields.py:16 #: venv/lib/python3.7/site-packages/fontawesome_5/fields.py:16
msgid "A fontawesome icon field" msgid "A fontawesome icon field"
msgstr "" 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"

Loading…
Cancel
Save