Merge pull request '38_User_requests' (#42) from 38_User_requests into master
Reviewed-on: SGD-Nord/konova#42
This commit is contained in:
		
						commit
						fcc364027c
					
				@ -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()
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
    """
 | 
			
		||||
 | 
			
		||||
@ -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 @@
 | 
			
		||||
                            </a>
 | 
			
		||||
                        </td>
 | 
			
		||||
                    </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>
 | 
			
		||||
                        <th scope="row">{% trans 'Checked' %}</th>
 | 
			
		||||
                        <td class="align-middle">
 | 
			
		||||
 | 
			
		||||
@ -16,7 +16,7 @@
 | 
			
		||||
                        <th scope="row">{% trans 'compensates intervention' %}</th>
 | 
			
		||||
                        <td class="align-middle">
 | 
			
		||||
                            <a href="{% url 'intervention:report' obj.intervention.id %}">
 | 
			
		||||
                                {{obj.intervention.identifier}}
 | 
			
		||||
                                {{obj.intervention.identifier}} - {{obj.intervention.title}}
 | 
			
		||||
                            </a>
 | 
			
		||||
                        </td>
 | 
			
		||||
                    </tr>
 | 
			
		||||
 | 
			
		||||
@ -29,7 +29,7 @@
 | 
			
		||||
                        <td class="align-middle">
 | 
			
		||||
                            {% for deduction in deductions %}
 | 
			
		||||
                                <a href="{% url 'intervention:report' deduction.intervention__id %}">
 | 
			
		||||
                                    {{deduction.intervention__identifier}}
 | 
			
		||||
                                    {{deduction.intervention__identifier}} - {{deduction.intervention__title}}
 | 
			
		||||
                                </a>
 | 
			
		||||
                                <br>
 | 
			
		||||
                            {% empty %}
 | 
			
		||||
 | 
			
		||||
@ -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,
 | 
			
		||||
 | 
			
		||||
@ -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,10 +92,18 @@ 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:
 | 
			
		||||
        # 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:
 | 
			
		||||
@ -96,10 +118,13 @@ class ShareInterventionModalForm(BaseModalForm):
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    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(
 | 
			
		||||
 | 
			
		||||
@ -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,8 +119,9 @@ 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("/")
 | 
			
		||||
        if revoc_docs.count() == 0:
 | 
			
		||||
            try:
 | 
			
		||||
                shutil.rmtree("/".join(folder_path[:-1]))
 | 
			
		||||
            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):
 | 
			
		||||
    """
 | 
			
		||||
@ -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
 | 
			
		||||
 | 
			
		||||
@ -4,8 +4,8 @@
 | 
			
		||||
        <div class="row">
 | 
			
		||||
            <div class="col-sm-6">
 | 
			
		||||
                <h5>
 | 
			
		||||
                    <span class="badge badge-light">{% if obj.legal.revocation %}1{% else %}0{% endif %}</span>
 | 
			
		||||
                    {% trans 'Revocation' %}
 | 
			
		||||
                    <span class="badge badge-light">{{obj.legal.revocations.count}}</span>
 | 
			
		||||
                    {% trans 'Revocations' %}
 | 
			
		||||
                </h5>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="col-sm-6">
 | 
			
		||||
@ -44,8 +44,7 @@
 | 
			
		||||
            </tr>
 | 
			
		||||
            </thead>
 | 
			
		||||
            <tbody>
 | 
			
		||||
            {% if obj.legal.revocation %}
 | 
			
		||||
            {% with obj.legal.revocation as rev %}
 | 
			
		||||
            {% for rev in obj.legal.revocations.all %}
 | 
			
		||||
                <tr>
 | 
			
		||||
                    <td class="align-middle">
 | 
			
		||||
                        {{ rev.date }}
 | 
			
		||||
@ -66,8 +65,7 @@
 | 
			
		||||
                        {% endif %}
 | 
			
		||||
                    </td>
 | 
			
		||||
                </tr>
 | 
			
		||||
            {% endwith %}
 | 
			
		||||
            {% endif %}
 | 
			
		||||
            {% endfor %}
 | 
			
		||||
            </tbody>
 | 
			
		||||
        </table>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
@ -99,9 +99,9 @@
 | 
			
		||||
                        <th scope="row">{% trans 'Binding on' %}</th>
 | 
			
		||||
                        <td class="align-middle">{{obj.legal.binding_date|default_if_none:""}}</td>
 | 
			
		||||
                    </tr>
 | 
			
		||||
                    <tr {% if obj.legal.revocation %}class="alert alert-danger" title="{% trans 'Exists' %}" {% endif %}>
 | 
			
		||||
                        <th scope="row">{% trans 'Revocation' %}</th>
 | 
			
		||||
                        <td class="align-middle">{{obj.legal.revocation.date|naturalday|default_if_none:""}}</td>
 | 
			
		||||
                    <tr {% if obj.legal.revocations.all %}class="alert alert-danger" title="{% trans 'Exists' %}" {% endif %}>
 | 
			
		||||
                        <th scope="row">{% trans 'Revocations' %}</th>
 | 
			
		||||
                        <td class="align-middle">{{obj.legal.revocations.count}}</td>
 | 
			
		||||
                    </tr>
 | 
			
		||||
                    <tr>
 | 
			
		||||
                        <th scope="row">{% trans 'Last modified' %}</th>
 | 
			
		||||
 | 
			
		||||
@ -50,7 +50,7 @@
 | 
			
		||||
                        <td class="align-middle">
 | 
			
		||||
                            {% for comp in obj.compensations.all %}
 | 
			
		||||
                                <a href="{% url 'compensation:report' comp.id %}">
 | 
			
		||||
                                    {{comp.identifier}}
 | 
			
		||||
                                    {{comp.identifier}} - {{comp.title}}
 | 
			
		||||
                                </a>
 | 
			
		||||
                                <br>
 | 
			
		||||
                            {% empty %}
 | 
			
		||||
@ -63,7 +63,7 @@
 | 
			
		||||
                        <td class="align-middle">
 | 
			
		||||
                            {% for deduction in deductions %}
 | 
			
		||||
                                <a href="{% url 'compensation:acc-report' deduction.account.id %}">
 | 
			
		||||
                                    {{deduction.account.identifier}}
 | 
			
		||||
                                    {{deduction.account.identifier}} - {{deduction.account.title}}
 | 
			
		||||
                                </a>
 | 
			
		||||
                                <br>
 | 
			
		||||
                            {% endfor %}
 | 
			
		||||
 | 
			
		||||
@ -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"))
 | 
			
		||||
 | 
			
		||||
@ -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")
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
 | 
			
		||||
@ -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{
 | 
			
		||||
 | 
			
		||||
@ -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()
 | 
			
		||||
 | 
			
		||||
@ -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:
 | 
			
		||||
 | 
			
		||||
@ -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)
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							@ -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 <EMAIL@ADDRESS>\n"
 | 
			
		||||
"Language-Team: LANGUAGE <LL@li.org>\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"
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user