EcoAccount template and logic

* adds eco-account own includes for simpler maintainability instead of refactoring to generic includes for compensation app and predefining urls and stuff on the backend
* adds before-state, after-state, actions, deadlines, documents and withdraws to eco account detail view
* adds hint for invalid withdraw in intervention detail view in case of deleted eco account
* adds/updates translations
This commit is contained in:
mipel 2021-08-09 15:09:43 +02:00
parent d27a39f6d9
commit 17d697da92
20 changed files with 728 additions and 220 deletions

View File

@ -12,7 +12,7 @@
<h3>{% trans 'Compensation' %} {{obj.identifier}}</h3>
</div>
<div class="col-sm-12 col-md-12 col-lg-6">
{% include 'compensation/detail/includes/controls.html' %}
{% include 'compensation/detail/compensation/includes/controls.html' %}
</div>
</div>
<hr>
@ -91,23 +91,23 @@
<div class="row">
<div class="col-sm-12 col-md-12 col-lg-6">
{% include 'compensation/detail/includes/states-before.html' %}
{% include 'compensation/detail/compensation/includes/states-before.html' %}
</div>
<div class="col-sm-12 col-md-12 col-lg-6">
{% include 'compensation/detail/includes/states-after.html' %}
{% include 'compensation/detail/compensation/includes/states-after.html' %}
</div>
</div>
<div class="row">
<div class="col-sm-12 col-md-12 col-lg-6">
{% include 'compensation/detail/includes/actions.html' %}
{% include 'compensation/detail/compensation/includes/actions.html' %}
</div>
<div class="col-sm-12 col-md-12 col-lg-6">
{% include 'compensation/detail/includes/deadlines.html' %}
{% include 'compensation/detail/compensation/includes/deadlines.html' %}
</div>
</div>
<div class="row">
<div class="col-sm-12 col-md-12 col-lg-6">
{% include 'compensation/detail/includes/documents.html' %}
{% include 'compensation/detail/compensation/includes/documents.html' %}
</div>
</div>

View File

@ -0,0 +1,61 @@
{% load i18n l10n fontawesome_5 humanize %}
<div id="actions" class="card">
<div class="card-header rlp-r">
<div class="row">
<div class="col-sm-6">
<h5>
<span class="badge badge-light">{{obj.actions.count}}</span>
{% trans 'Actions' context 'Compensation' %}
</h5>
</div>
<div class="col-sm-6">
<div class="d-flex justify-content-end">
{% if is_default_member and has_access %}
<button class="btn btn-outline-default btn-modal" data-form-url="{% url 'compensation:acc-new-action' obj.id %}" title="{% trans 'Add new action' %}">
{% fa5_icon 'plus' %}
{% fa5_icon 'seedling' %}
</button>
{% endif %}
</div>
</div>
</div>
</div>
<div class="card-body scroll-300">
<table class="table table-hover">
<thead>
<tr>
<th scope="col">
{% trans 'Action type' %}
</th>
<th scope="col">
{% trans 'Amount' context 'Compensation' %}
</th>
<th scope="col">
{% trans 'Comment' %}
</th>
<th scope="col">
{% trans 'Action' %}
</th>
</tr>
</thead>
<tbody>
{% for action in obj.actions.all %}
<tr>
<td class="align-middle">
{{ action.action_type }}
</td>
<td class="align-middle">{{ action.amount|floatformat:2|intcomma }} {{ action.unit_humanize }}</td>
<td class="align-middle">{{ action.comment|default_if_none:"" }}</td>
<td>
{% if is_default_member and has_access %}
<button data-form-url="{% url 'compensation:action-remove' action.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove action' %}">
{% fa5_icon 'trash' %}
</button>
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>

View File

@ -0,0 +1,29 @@
{% load i18n l10n fontawesome_5 %}
<div class="d-flex justify-content-end">
<a href="{% url 'home' %}" class="mr-2">
<button class="btn btn-default" title="{% trans 'Open in LANIS' %}">
LANIS
</button>
</a>
<a href="{% url 'home' %}" class="mr-2">
<button class="btn btn-default" title="{% trans 'Public report' %}">
{% fa5_icon 'file-alt' %}
</button>
</a>
{% if has_access %}
{% if is_default_member %}
<a href="{% url 'home' %}" class="mr-2">
<button class="btn btn-default" title="{% trans 'Edit' %}">
{% fa5_icon 'edit' %}
</button>
</a>
<button class="btn btn-default btn-modal mr-2" data-form-url="{% url 'compensation:acc-log' obj.id %}" title="{% trans 'Show log' %}">
{% fa5_icon 'history' %}
</button>
<button class="btn btn-default btn-modal" data-form-url="{% url 'compensation:acc-remove' obj.id %}" title="{% trans 'Delete' %}">
{% fa5_icon 'trash' %}
</button>
{% endif %}
{% endif %}
</div>

View File

@ -0,0 +1,61 @@
{% load i18n l10n fontawesome_5 %}
<div id="deadlines" class="card">
<div class="card-header rlp-r">
<div class="row">
<div class="col-sm-6">
<h5>
<span class="badge badge-light">{{obj.deadlines.count}}</span>
{% trans 'Deadlines' %}
</h5>
</div>
<div class="col-sm-6">
<div class="d-flex justify-content-end">
{% if is_default_member and has_access %}
<button class="btn btn-outline-default btn-modal" data-form-url="{% url 'compensation:acc-new-deadline' obj.id %}" title="{% trans 'Add new deadline' %}">
{% fa5_icon 'plus' %}
{% fa5_icon 'calendar-check' %}
</button>
{% endif %}
</div>
</div>
</div>
</div>
<div class="card-body scroll-300">
<table class="table table-hover">
<thead>
<tr>
<th scope="col">
{% trans 'Type' %}
</th>
<th scope="col">
{% trans 'Date' %}
</th>
<th scope="col">
{% trans 'Comment' %}
</th>
<th scope="col">
{% trans 'Action' %}
</th>
</tr>
</thead>
<tbody>
{% for deadline in obj.deadlines.all %}
<tr>
<td class="align-middle">
{% trans deadline.type_humanized %}
</td>
<td class="align-middle">{{ deadline.date }}</td>
<td class="align-middle">{{ deadline.comment }}</td>
<td>
{% if is_default_member and has_access %}
<button data-form-url="{% url 'deadline-remove' deadline.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove deadline' %}">
{% fa5_icon 'trash' %}
</button>
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>

View File

@ -0,0 +1,59 @@
{% load i18n l10n fontawesome_5 %}
<div id="documents" class="card">
<div class="card-header rlp-r">
<div class="row">
<div class="col-sm-6">
<h5>
<span class="badge badge-light">{{obj.documents.count}}</span>
{% trans 'Documents' %}
</h5>
</div>
<div class="col-sm-6">
<div class="d-flex justify-content-end">
{% if is_default_member and has_access %}
<button class="btn btn-outline-default btn-modal" data-form-url="{% url 'compensation:acc-new-doc' obj.id %}" title="{% trans 'Add new document' %}">
{% fa5_icon 'plus' %}
{% fa5_icon 'file' %}
</button>
{% endif %}
</div>
</div>
</div>
</div>
<div class="card-body scroll-300">
<table class="table table-hover">
<thead>
<tr>
<th scope="col">
{% trans 'Title' %}
</th>
<th scope="col">
{% trans 'Comment' %}
</th>
<th scope="col">
{% trans 'Action' %}
</th>
</tr>
</thead>
<tbody>
{% for doc in obj.documents.all %}
<tr>
<td class="align-middle">
<a href="{% url 'doc-open' doc.id %}">
{{ doc.title }}
</a>
</td>
<td class="align-middle">{{ doc.comment }}</td>
<td>
{% if is_default_member and has_access %}
<button data-form-url="{% url 'doc-remove' doc.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove document' %}">
{% fa5_icon 'trash' %}
</button>
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>

View File

@ -0,0 +1,62 @@
{% load i18n l10n fontawesome_5 %}
<div id="states-after" class="card">
<div class="card-header rlp-r">
<div class="row">
<div class="col-sm-6">
<h5>
<span class="badge badge-light">{{obj.after_states.count}}</span>
{% trans 'States after' %}
</h5>
</div>
<div class="col-sm-6">
<div class="d-flex justify-content-end">
{% if is_default_member and has_access %}
<button class="btn btn-outline-default btn-modal" data-form-url="{% url 'compensation:acc-new-state' obj.id %}" title="{% trans 'Add new state after' %}">
{% fa5_icon 'plus' %}
{% fa5_icon 'layer-group' %}
</button>
{% endif %}
</div>
</div>
</div>
</div>
<div class="card-body scroll-300">
{% if sum_before_states > sum_after_states %}
<div class="row alert alert-danger">
{% trans 'Missing surfaces according to states before: ' %}{{ diff_states|floatformat:2 }} m²
</div>
{% endif %}
<table class="table table-hover">
<thead>
<tr>
<th scope="col">
{% trans 'Biotope type' %}
</th>
<th scope="col">
{% trans 'Surface' %}
</th>
<th scope="col">
{% trans 'Action' %}
</th>
</tr>
</thead>
<tbody>
{% for state in after_states %}
<tr>
<td class="align-middle">
{{ state.biotope_type }}
</td>
<td class="align-middle">{{ state.surface|floatformat:2 }} m²</td>
<td>
{% if is_default_member and has_access %}
<button data-form-url="{% url 'compensation:state-remove' state.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove state' %}">
{% fa5_icon 'trash' %}
</button>
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>

View File

@ -0,0 +1,62 @@
{% load i18n l10n fontawesome_5 %}
<div id="states-before" class="card">
<div class="card-header rlp-r">
<div class="row">
<div class="col-sm-6">
<h5>
<span class="badge badge-light">{{obj.before_states.count}}</span>
{% trans 'States before' %}
</h5>
</div>
<div class="col-sm-6">
<div class="d-flex justify-content-end">
{% if is_default_member and has_access %}
<button class="btn btn-outline-default btn-modal" data-form-url="{% url 'compensation:acc-new-state' obj.id %}?before=true" title="{% trans 'Add new state before' %}">
{% fa5_icon 'plus' %}
{% fa5_icon 'layer-group' %}
</button>
{% endif %}
</div>
</div>
</div>
</div>
<div class="card-body scroll-300">
{% if sum_before_states < sum_after_states %}
<div class="row alert alert-danger">
{% trans 'Missing surfaces according to states after: ' %}{{ diff_states|floatformat:2 }} m²
</div>
{% endif %}
<table class="table table-hover">
<thead>
<tr>
<th scope="col">
{% trans 'Biotope type' %}
</th>
<th scope="col">
{% trans 'Surface' %}
</th>
<th scope="col">
{% trans 'Action' %}
</th>
</tr>
</thead>
<tbody>
{% for state in before_states %}
<tr>
<td class="align-middle">
{{ state.biotope_type }}
</td>
<td class="align-middle">{{ state.surface|floatformat:2 }} m²</td>
<td>
{% if is_default_member and has_access %}
<button data-form-url="{% url 'compensation:state-remove' state.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove state' %}">
{% fa5_icon 'trash' %}
</button>
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>

View File

@ -12,7 +12,7 @@
<h3>{% trans 'Eco-account' %} {{obj.identifier}}</h3>
</div>
<div class="col-sm-12 col-md-12 col-lg-6">
{% include 'compensation/detail/includes/controls.html' %}
{% include 'compensation/detail/eco_account/includes/controls.html' %}
</div>
</div>
<hr>
@ -77,23 +77,23 @@
<div class="row">
<div class="col-sm-12 col-md-12 col-lg-6">
{% include 'compensation/detail/includes/states-before.html' %}
{% include 'compensation/detail/eco_account/includes/states-before.html' %}
</div>
<div class="col-sm-12 col-md-12 col-lg-6">
{% include 'compensation/detail/includes/states-after.html' %}
{% include 'compensation/detail/eco_account/includes/states-after.html' %}
</div>
</div>
<div class="row">
<div class="col-sm-12 col-md-12 col-lg-6">
{% include 'compensation/detail/includes/actions.html' %}
{% include 'compensation/detail/eco_account/includes/actions.html' %}
</div>
<div class="col-sm-12 col-md-12 col-lg-6">
{% include 'compensation/detail/includes/deadlines.html' %}
{% include 'compensation/detail/eco_account/includes/deadlines.html' %}
</div>
</div>
<div class="row">
<div class="col-sm-12 col-md-12 col-lg-6">
{% include 'compensation/detail/includes/documents.html' %}
{% include 'compensation/detail/eco_account/includes/documents.html' %}
</div>
<div class="col-sm-12 col-md-12 col-lg-6">
{% include 'compensation/detail/eco_account/includes/withdraws.html' %}

View File

@ -20,11 +20,19 @@ urlpatterns_payment = [
]
urlaptterns_eco_acc = [
path("acc/", eco_account_views.account_index_view, name="acc-index"),
path('acc/new/', eco_account_views.account_new_view, name='acc-new'),
path('acc/<id>', eco_account_views.account_open_view, name='acc-open'),
path('acc/<id>/edit', eco_account_views.account_edit_view, name='acc-edit'),
path('acc/<id>/remove', eco_account_views.account_remove_view, name='acc-remove'),
path("acc/", eco_account_views.index_view, name="acc-index"),
path('acc/new/', eco_account_views.new_view, name='acc-new'),
path('acc/<id>', eco_account_views.open_view, name='acc-open'),
path('acc/<id>/log', eco_account_views.log_view, name='acc-log'),
path('acc/<id>/edit', eco_account_views.edit_view, name='acc-edit'),
path('acc/<id>/remove', eco_account_views.remove_view, name='acc-remove'),
path('acc/<id>/state/new', eco_account_views.state_new_view, name='acc-new-state'),
path('acc/<id>/action/new', eco_account_views.action_new_view, name='acc-new-action'),
path('acc/<id>/deadline/new', eco_account_views.deadline_new_view, name="acc-new-deadline"),
# Documents
# Document remove route can be found in konova/urls.py
path('acc/<id>/document/new/', eco_account_views.new_document_view, name='acc-new-doc'),
# Eco-account withdraws
path('acc/<id>/remove/<withdraw_id>', eco_account_views.withdraw_remove_view, name='withdraw-remove'),
@ -43,6 +51,7 @@ urlpatterns_compensation = [
path('<id>/deadline/new', compensation_views.deadline_new_view, name="new-deadline"),
# Documents
# Document remove route can be found in konova/urls.py
path('<id>/document/new/', compensation_views.new_document_view, name='new-doc'),
# Generic state routes

View File

@ -67,7 +67,7 @@ def open_view(request: HttpRequest, id: str):
Returns:
"""
template = "compensation/detail/view.html"
template = "compensation/detail/compensation/view.html"
comp = get_object_or_404(Compensation, id=id)
geom_form = SimpleGeomForm(instance=comp)
_user = request.user

View File

@ -6,24 +6,26 @@ Created on: 09.08.21
"""
from django.db.models import Sum
from django.urls import reverse
from django.utils.translation import gettext_lazy as _
from django.contrib.auth.decorators import login_required
from django.core.exceptions import ObjectDoesNotExist
from django.http import HttpRequest, Http404
from django.shortcuts import render, get_object_or_404
from compensation.forms import NewStateModalForm, NewActionModalForm, NewDeadlineModalForm
from compensation.models import EcoAccount
from compensation.tables import EcoAccountTable
from konova.contexts import BaseContext
from konova.decorators import any_group_check, default_group_required
from konova.forms import RemoveModalForm, SimpleGeomForm
from konova.forms import RemoveModalForm, SimpleGeomForm, NewDocumentForm
from konova.settings import DEFAULT_GROUP, ZB_GROUP, ETS_GROUP
from konova.utils.user_checks import in_group
@login_required
@any_group_check
def account_index_view(request: HttpRequest):
def index_view(request: HttpRequest):
"""
Renders the index view for eco accounts
@ -51,21 +53,21 @@ def account_index_view(request: HttpRequest):
@login_required
@default_group_required
def account_new_view(request: HttpRequest):
def new_view(request: HttpRequest):
# ToDo
pass
@login_required
@default_group_required
def account_edit_view(request: HttpRequest, id: str):
def edit_view(request: HttpRequest, id: str):
# ToDo
pass
@login_required
@any_group_check
def account_open_view(request: HttpRequest, id: str):
def open_view(request: HttpRequest, id: str):
""" Renders a detail view for a compensation
Args:
@ -115,11 +117,23 @@ def account_open_view(request: HttpRequest, id: str):
@login_required
def account_remove_view(request: HttpRequest, id: str):
# ToDo
pass
def remove_view(request: HttpRequest, id: str):
""" Renders a modal view for removing the eco account
Args:
request (HttpRequest): The incoming request
id (str): The account's id
Returns:
"""
acc = get_object_or_404(EcoAccount, id=id)
form = RemoveModalForm(request.POST or None, instance=acc, user=request.user)
return form.process_request(
request=request,
msg_success=_("Eco-account removed"),
redirect_url=reverse("compensation:acc-index"),
)
@login_required
@ -147,3 +161,102 @@ def withdraw_remove_view(request: HttpRequest, id: str, withdraw_id: str):
msg_success=_("Withdraw removed")
)
@login_required
@default_group_required
def log_view(request: HttpRequest, id: str):
""" Renders a log view using modal
Args:
request (HttpRequest): The incoming request
id (str): The eco acount's id
Returns:
"""
comp = get_object_or_404(EcoAccount, id=id)
template = "modal/modal_generic.html"
body_template = "log.html"
context = {
"modal_body_template": body_template,
"log": comp.log.all().order_by("-timestamp"),
"modal_title": _("Log"),
}
context = BaseContext(request, context).context
return render(request, template, context)
@login_required
def state_new_view(request: HttpRequest, id: str):
""" Renders a form for adding new states for an eco account
Args:
request (HttpRequest): The incoming request
id (str): The account's id to which the new state will be related
Returns:
"""
acc = get_object_or_404(EcoAccount, id=id)
form = NewStateModalForm(request.POST or None, instance=acc, user=request.user)
return form.process_request(
request,
msg_success=_("State added")
)
@login_required
def action_new_view(request: HttpRequest, id: str):
""" Renders a form for adding new actions for an eco account
Args:
request (HttpRequest): The incoming request
id (str): The account's id to which the new state will be related
Returns:
"""
acc = get_object_or_404(EcoAccount, id=id)
form = NewActionModalForm(request.POST or None, instance=acc, user=request.user)
return form.process_request(
request,
msg_success=_("Action added")
)
@login_required
def deadline_new_view(request: HttpRequest, id: str):
""" Renders a form for adding new states for an eco account
Args:
request (HttpRequest): The incoming request
id (str): The account's id to which the new state will be related
Returns:
"""
acc = get_object_or_404(EcoAccount, id=id)
form = NewDeadlineModalForm(request.POST or None, instance=acc, user=request.user)
return form.process_request(
request,
msg_success=_("Deadline added")
)
@login_required
def new_document_view(request: HttpRequest, id: str):
""" Renders a form for uploading new documents
Args:
request (HttpRequest): The incoming request
id (str): The account's id to which the new document will be related
Returns:
"""
acc = get_object_or_404(EcoAccount, id=id)
form = NewDocumentForm(request.POST or None, request.FILES or None, instance=acc, user=request.user)
return form.process_request(
request,
msg_success=_("Document added")
)

View File

@ -39,9 +39,12 @@
</thead>
<tbody>
{% for withdraw in intervention.withdraws.all %}
<tr>
<tr {% if withdraw.account.deleted %}class="align-middle alert-danger" title="{% trans 'Eco-account deleted! Withdraw invalid!' %}" {% endif %}>
<td class="align-middle">
<a href="{% url 'compensation:acc-open' withdraw.account.id %}">
{% if withdraw.account.deleted %}
{% fa5_icon 'exclamation-triangle' %}
{% endif %}
{{ withdraw.account.identifier }}
</a>
</td>

Binary file not shown.

View File

@ -16,7 +16,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-08-09 14:35+0200\n"
"POT-Creation-Date: 2021-08-09 15:06+0200\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"
@ -74,8 +74,10 @@ msgid "Select the biotope type"
msgstr "Biotoptyp wählen"
#: compensation/forms.py:103
#: compensation/templates/compensation/detail/includes/states-after.html:36
#: compensation/templates/compensation/detail/includes/states-before.html:36
#: compensation/templates/compensation/detail/compensation/includes/states-after.html:36
#: compensation/templates/compensation/detail/compensation/includes/states-before.html:36
#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:36
#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:36
msgid "Surface"
msgstr "Fläche"
@ -108,7 +110,8 @@ msgid "Select the deadline type"
msgstr "Fristart wählen"
#: compensation/forms.py:187
#: compensation/templates/compensation/detail/includes/deadlines.html:31
#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:31
#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:31
#: intervention/forms.py:317
msgid "Date"
msgstr "Datum"
@ -118,9 +121,12 @@ msgid "Select date"
msgstr "Datum wählen"
#: compensation/forms.py:202 compensation/forms.py:270
#: compensation/templates/compensation/detail/includes/actions.html:34
#: compensation/templates/compensation/detail/includes/deadlines.html:34
#: compensation/templates/compensation/detail/includes/documents.html:31
#: compensation/templates/compensation/detail/compensation/includes/actions.html:34
#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:34
#: compensation/templates/compensation/detail/compensation/includes/documents.html:31
#: compensation/templates/compensation/detail/eco_account/includes/actions.html:34
#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:34
#: compensation/templates/compensation/detail/eco_account/includes/documents.html:31
#: intervention/forms.py:341
#: intervention/templates/intervention/detail/includes/documents.html:31
#: intervention/templates/intervention/detail/includes/revocation.html:35
@ -208,9 +214,10 @@ msgid "Identifier"
msgstr "Kennung"
#: compensation/tables.py:31 compensation/tables.py:171
#: compensation/templates/compensation/detail/compensation/includes/documents.html:28
#: compensation/templates/compensation/detail/compensation/view.html:24
#: compensation/templates/compensation/detail/eco_account/includes/documents.html:28
#: compensation/templates/compensation/detail/eco_account/view.html:24
#: compensation/templates/compensation/detail/includes/documents.html:28
#: compensation/templates/compensation/detail/view.html:24
#: intervention/forms.py:35 intervention/tables.py:28
#: intervention/templates/intervention/detail/includes/compensations.html:33
#: intervention/templates/intervention/detail/includes/documents.html:28
@ -219,15 +226,15 @@ msgid "Title"
msgstr "Bezeichnung"
#: compensation/tables.py:36
#: compensation/templates/compensation/detail/view.html:36
#: compensation/templates/compensation/detail/compensation/view.html:36
#: intervention/tables.py:33
#: intervention/templates/intervention/detail/view.html:56 user/models.py:48
msgid "Checked"
msgstr "Geprüft"
#: compensation/tables.py:42 compensation/tables.py:181
#: compensation/templates/compensation/detail/compensation/view.html:50
#: compensation/templates/compensation/detail/eco_account/view.html:36
#: compensation/templates/compensation/detail/view.html:50
#: intervention/tables.py:39
#: intervention/templates/intervention/detail/view.html:70 user/models.py:49
msgid "Recorded"
@ -254,7 +261,7 @@ msgid "Open {}"
msgstr "Öffne {}"
#: compensation/tables.py:85
#: compensation/templates/compensation/detail/view.html:12
#: compensation/templates/compensation/detail/compensation/view.html:12
#: konova/templates/konova/home.html:49 templates/navbar.html:28
msgid "Compensation"
msgstr "Kompensation"
@ -268,8 +275,8 @@ msgid "Checked on {} by {}"
msgstr "Am {} von {} geprüft worden"
#: compensation/tables.py:130
#: compensation/templates/compensation/detail/compensation/view.html:53
#: compensation/templates/compensation/detail/eco_account/view.html:39
#: compensation/templates/compensation/detail/view.html:53
#: intervention/tables.py:135
#: intervention/templates/intervention/detail/view.html:73
msgid "Not recorded yet"
@ -292,6 +299,7 @@ msgstr "Nicht freigegeben - Datensatz nur lesbar"
#: compensation/tables.py:176
#: compensation/templates/compensation/detail/eco_account/view.html:28
#: konova/templates/konova/custom_widgets/progressbar.html:3
msgid "Available"
msgstr "Verfügbar"
@ -310,6 +318,210 @@ msgid "Not recorded yet. Can not be used for withdraws, yet."
msgstr ""
"Noch nicht verzeichnet. Kann noch nicht für Abbuchungen genutzt werden."
#: compensation/templates/compensation/detail/compensation/includes/actions.html:8
#: compensation/templates/compensation/detail/eco_account/includes/actions.html:8
msgctxt "Compensation"
msgid "Actions"
msgstr "Maßnahmen"
#: compensation/templates/compensation/detail/compensation/includes/actions.html:14
#: compensation/templates/compensation/detail/eco_account/includes/actions.html:14
msgid "Add new action"
msgstr "Neue Maßnahme hinzufügen"
#: compensation/templates/compensation/detail/compensation/includes/actions.html:28
#: compensation/templates/compensation/detail/eco_account/includes/actions.html:28
msgid "Action type"
msgstr "Maßnahmentyp"
#: compensation/templates/compensation/detail/compensation/includes/actions.html:31
#: compensation/templates/compensation/detail/eco_account/includes/actions.html:31
msgctxt "Compensation"
msgid "Amount"
msgstr "Menge"
#: compensation/templates/compensation/detail/compensation/includes/actions.html:37
#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:37
#: compensation/templates/compensation/detail/compensation/includes/documents.html:34
#: compensation/templates/compensation/detail/compensation/includes/states-after.html:39
#: compensation/templates/compensation/detail/compensation/includes/states-before.html:39
#: compensation/templates/compensation/detail/eco_account/includes/actions.html:37
#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:37
#: compensation/templates/compensation/detail/eco_account/includes/documents.html:34
#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:39
#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:39
#: compensation/templates/compensation/detail/eco_account/includes/withdraws.html:36
#: intervention/templates/intervention/detail/includes/compensations.html:36
#: intervention/templates/intervention/detail/includes/documents.html:34
#: intervention/templates/intervention/detail/includes/payments.html:37
#: intervention/templates/intervention/detail/includes/revocation.html:41
#: intervention/templates/intervention/detail/includes/withdraws.html:36
#: templates/log.html:10
msgid "Action"
msgstr "Aktionen"
#: compensation/templates/compensation/detail/compensation/includes/actions.html:51
#: compensation/templates/compensation/detail/eco_account/includes/actions.html:51
msgid "Remove action"
msgstr "Maßnahme entfernen"
#: compensation/templates/compensation/detail/compensation/includes/controls.html:5
#: compensation/templates/compensation/detail/eco_account/includes/controls.html:5
#: intervention/templates/intervention/detail/includes/controls.html:5
msgid "Open in LANIS"
msgstr "In LANIS öffnen"
#: compensation/templates/compensation/detail/compensation/includes/controls.html:10
#: compensation/templates/compensation/detail/eco_account/includes/controls.html:10
#: intervention/templates/intervention/detail/includes/controls.html:10
msgid "Public report"
msgstr "Öffentlicher Bericht"
#: compensation/templates/compensation/detail/compensation/includes/controls.html:17
#: compensation/templates/compensation/detail/eco_account/includes/controls.html:17
#: intervention/templates/intervention/detail/includes/controls.html:32
msgid "Edit"
msgstr "Bearbeiten"
#: compensation/templates/compensation/detail/compensation/includes/controls.html:21
#: compensation/templates/compensation/detail/eco_account/includes/controls.html:21
#: intervention/templates/intervention/detail/includes/controls.html:36
msgid "Show log"
msgstr "Log anzeigen"
#: compensation/templates/compensation/detail/compensation/includes/controls.html:24
#: compensation/templates/compensation/detail/eco_account/includes/controls.html:24
#: intervention/templates/intervention/detail/includes/controls.html:39
#: venv/lib/python3.7/site-packages/django/forms/formsets.py:391
msgid "Delete"
msgstr "Löschen"
#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:8
#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:8
msgid "Deadlines"
msgstr "Termine und Fristen"
#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:14
#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:14
msgid "Add new deadline"
msgstr "Neue Frist hinzufügen"
#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:28
#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:28
#: intervention/forms.py:40
msgid "Type"
msgstr "Typ"
#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:51
#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:51
msgid "Remove deadline"
msgstr "Frist löschen"
#: compensation/templates/compensation/detail/compensation/includes/documents.html:8
#: compensation/templates/compensation/detail/eco_account/includes/documents.html:8
#: intervention/templates/intervention/detail/includes/documents.html:8
msgid "Documents"
msgstr "Dokumente"
#: compensation/templates/compensation/detail/compensation/includes/documents.html:14
#: compensation/templates/compensation/detail/eco_account/includes/documents.html:14
#: intervention/templates/intervention/detail/includes/documents.html:14
#: konova/forms.py:301
msgid "Add new document"
msgstr "Neues Dokument hinzufügen"
#: compensation/templates/compensation/detail/compensation/includes/documents.html:49
#: compensation/templates/compensation/detail/eco_account/includes/documents.html:49
#: intervention/templates/intervention/detail/includes/documents.html:49
msgid "Remove document"
msgstr "Dokument löschen"
#: compensation/templates/compensation/detail/compensation/includes/states-after.html:8
#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:8
msgid "States after"
msgstr "Zielzustand"
#: compensation/templates/compensation/detail/compensation/includes/states-after.html:14
#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:14
msgid "Add new state after"
msgstr "Neuen Zielzustand hinzufügen"
#: compensation/templates/compensation/detail/compensation/includes/states-after.html:26
#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:26
msgid "Missing surfaces according to states before: "
msgstr "Fehlende Flächenmengen aus Ausgangszustand: "
#: compensation/templates/compensation/detail/compensation/includes/states-after.html:33
#: compensation/templates/compensation/detail/compensation/includes/states-before.html:33
#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:33
#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:33
msgid "Biotope type"
msgstr "Biotoptyp"
#: compensation/templates/compensation/detail/compensation/includes/states-after.html:52
#: compensation/templates/compensation/detail/compensation/includes/states-before.html:52
#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:52
#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:52
msgid "Remove state"
msgstr "Zustand entfernen"
#: compensation/templates/compensation/detail/compensation/includes/states-before.html:8
#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:8
msgid "States before"
msgstr "Ausgangszustand"
#: compensation/templates/compensation/detail/compensation/includes/states-before.html:14
#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:14
msgid "Add new state before"
msgstr "Neuen Ausgangszustand hinzufügen"
#: compensation/templates/compensation/detail/compensation/includes/states-before.html:26
#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:26
msgid "Missing surfaces according to states after: "
msgstr "Fehlende Flächenmengen aus Zielzustand: "
#: compensation/templates/compensation/detail/compensation/view.html:28
msgid "compensates intervention"
msgstr "kompensiert Eingriff"
#: compensation/templates/compensation/detail/compensation/view.html:43
#: intervention/templates/intervention/detail/view.html:63
msgid "Checked on "
msgstr "Geprüft am "
#: compensation/templates/compensation/detail/compensation/view.html:43
#: compensation/templates/compensation/detail/compensation/view.html:57
#: compensation/templates/compensation/detail/eco_account/view.html:43
#: intervention/templates/intervention/detail/view.html:63
#: intervention/templates/intervention/detail/view.html:77
msgid "by"
msgstr "von"
#: compensation/templates/compensation/detail/compensation/view.html:57
#: compensation/templates/compensation/detail/eco_account/view.html:43
#: intervention/templates/intervention/detail/view.html:77
msgid "Recorded on "
msgstr "Verzeichnet am"
#: compensation/templates/compensation/detail/compensation/view.html:64
#: compensation/templates/compensation/detail/eco_account/view.html:50
#: intervention/templates/intervention/detail/view.html:96
msgid "Last modified"
msgstr "Zuletzt bearbeitet"
#: compensation/templates/compensation/detail/compensation/view.html:72
#: compensation/templates/compensation/detail/eco_account/view.html:58
#: intervention/forms.py:251
#: intervention/templates/intervention/detail/view.html:104
msgid "Shared with"
msgstr "Freigegeben für"
#: compensation/templates/compensation/detail/compensation/view.html:84
#: compensation/templates/compensation/detail/eco_account/view.html:70
#: intervention/templates/intervention/detail/view.html:116
msgid "No geometry added, yet."
msgstr "Keine Geometrie vorhanden"
#: compensation/templates/compensation/detail/eco_account/includes/withdraws.html:8
#: intervention/templates/intervention/detail/includes/withdraws.html:8
msgid "Eco Account Withdraws"
@ -324,184 +536,13 @@ msgstr "Neue Abbuchung hinzufügen"
msgid "Intervention Identifier"
msgstr "Eingriffskennung"
#: compensation/templates/compensation/detail/eco_account/includes/withdraws.html:36
#: compensation/templates/compensation/detail/includes/actions.html:37
#: compensation/templates/compensation/detail/includes/deadlines.html:37
#: compensation/templates/compensation/detail/includes/documents.html:34
#: compensation/templates/compensation/detail/includes/states-after.html:39
#: compensation/templates/compensation/detail/includes/states-before.html:39
#: intervention/templates/intervention/detail/includes/compensations.html:36
#: intervention/templates/intervention/detail/includes/documents.html:34
#: intervention/templates/intervention/detail/includes/payments.html:37
#: intervention/templates/intervention/detail/includes/revocation.html:41
#: intervention/templates/intervention/detail/includes/withdraws.html:36
#: templates/log.html:10
msgid "Action"
msgstr "Aktionen"
#: compensation/templates/compensation/detail/eco_account/includes/withdraws.html:51
#: intervention/templates/intervention/detail/includes/withdraws.html:51
#: intervention/templates/intervention/detail/includes/withdraws.html:54
msgid "Remove Withdraw"
msgstr "Abbuchung entfernen"
#: compensation/templates/compensation/detail/eco_account/view.html:43
#: compensation/templates/compensation/detail/view.html:57
#: intervention/templates/intervention/detail/view.html:77
msgid "Recorded on "
msgstr "Verzeichnet am"
#: compensation/templates/compensation/detail/eco_account/view.html:43
#: compensation/templates/compensation/detail/view.html:43
#: compensation/templates/compensation/detail/view.html:57
#: intervention/templates/intervention/detail/view.html:63
#: intervention/templates/intervention/detail/view.html:77
msgid "by"
msgstr "von"
#: compensation/templates/compensation/detail/eco_account/view.html:50
#: compensation/templates/compensation/detail/view.html:64
#: intervention/templates/intervention/detail/view.html:96
msgid "Last modified"
msgstr "Zuletzt bearbeitet"
#: compensation/templates/compensation/detail/eco_account/view.html:58
#: compensation/templates/compensation/detail/view.html:72
#: intervention/forms.py:251
#: intervention/templates/intervention/detail/view.html:104
msgid "Shared with"
msgstr "Freigegeben für"
#: compensation/templates/compensation/detail/eco_account/view.html:70
#: compensation/templates/compensation/detail/view.html:84
#: intervention/templates/intervention/detail/view.html:116
msgid "No geometry added, yet."
msgstr "Keine Geometrie vorhanden"
#: compensation/templates/compensation/detail/includes/actions.html:8
msgctxt "Compensation"
msgid "Actions"
msgstr "Maßnahmen"
#: compensation/templates/compensation/detail/includes/actions.html:14
msgid "Add new action"
msgstr "Neue Maßnahme hinzufügen"
#: compensation/templates/compensation/detail/includes/actions.html:28
msgid "Action type"
msgstr "Maßnahmentyp"
#: compensation/templates/compensation/detail/includes/actions.html:31
msgctxt "Compensation"
msgid "Amount"
msgstr "Menge"
#: compensation/templates/compensation/detail/includes/actions.html:51
msgid "Remove action"
msgstr "Maßnahme entfernen"
#: compensation/templates/compensation/detail/includes/controls.html:5
#: intervention/templates/intervention/detail/includes/controls.html:5
msgid "Open in LANIS"
msgstr "In LANIS öffnen"
#: compensation/templates/compensation/detail/includes/controls.html:10
#: intervention/templates/intervention/detail/includes/controls.html:10
msgid "Public report"
msgstr "Öffentlicher Bericht"
#: compensation/templates/compensation/detail/includes/controls.html:17
#: intervention/templates/intervention/detail/includes/controls.html:32
msgid "Edit"
msgstr "Bearbeiten"
#: compensation/templates/compensation/detail/includes/controls.html:21
#: intervention/templates/intervention/detail/includes/controls.html:36
msgid "Show log"
msgstr "Log anzeigen"
#: compensation/templates/compensation/detail/includes/controls.html:24
#: intervention/templates/intervention/detail/includes/controls.html:39
#: venv/lib/python3.7/site-packages/django/forms/formsets.py:391
msgid "Delete"
msgstr "Löschen"
#: compensation/templates/compensation/detail/includes/deadlines.html:8
msgid "Deadlines"
msgstr "Termine und Fristen"
#: compensation/templates/compensation/detail/includes/deadlines.html:14
msgid "Add new deadline"
msgstr "Neue Frist hinzufügen"
#: compensation/templates/compensation/detail/includes/deadlines.html:28
#: intervention/forms.py:40
msgid "Type"
msgstr "Typ"
#: compensation/templates/compensation/detail/includes/deadlines.html:51
msgid "Remove deadline"
msgstr "Frist löschen"
#: compensation/templates/compensation/detail/includes/documents.html:8
#: intervention/templates/intervention/detail/includes/documents.html:8
msgid "Documents"
msgstr "Dokumente"
#: compensation/templates/compensation/detail/includes/documents.html:14
#: intervention/templates/intervention/detail/includes/documents.html:14
#: konova/forms.py:301
msgid "Add new document"
msgstr "Neues Dokument hinzufügen"
#: compensation/templates/compensation/detail/includes/documents.html:49
#: intervention/templates/intervention/detail/includes/documents.html:49
msgid "Remove document"
msgstr "Dokument löschen"
#: compensation/templates/compensation/detail/includes/states-after.html:8
msgid "States after"
msgstr "Zielzustand"
#: compensation/templates/compensation/detail/includes/states-after.html:14
msgid "Add new state after"
msgstr "Neuen Zielzustand hinzufügen"
#: compensation/templates/compensation/detail/includes/states-after.html:26
msgid "Missing surfaces according to states before: "
msgstr "Fehlende Flächenmengen aus Ausgangszustand: "
#: compensation/templates/compensation/detail/includes/states-after.html:33
#: compensation/templates/compensation/detail/includes/states-before.html:33
msgid "Biotope type"
msgstr "Biotoptyp"
#: compensation/templates/compensation/detail/includes/states-after.html:52
#: compensation/templates/compensation/detail/includes/states-before.html:52
msgid "Remove state"
msgstr "Zustand entfernen"
#: compensation/templates/compensation/detail/includes/states-before.html:8
msgid "States before"
msgstr "Ausgangszustand"
#: compensation/templates/compensation/detail/includes/states-before.html:14
msgid "Add new state before"
msgstr "Neuen Ausgangszustand hinzufügen"
#: compensation/templates/compensation/detail/includes/states-before.html:26
msgid "Missing surfaces according to states after: "
msgstr "Fehlende Flächenmengen aus Zielzustand: "
#: compensation/templates/compensation/detail/view.html:28
msgid "compensates intervention"
msgstr "kompensiert Eingriff"
#: compensation/templates/compensation/detail/view.html:43
#: intervention/templates/intervention/detail/view.html:63
msgid "Checked on "
msgstr "Geprüft am "
#: compensation/views/compensation_views.py:121 intervention/views.py:391
#: compensation/views/compensation_views.py:121
#: compensation/views/eco_account_views.py:184 intervention/views.py:391
msgid "Log"
msgstr "Log"
@ -509,19 +550,23 @@ msgstr "Log"
msgid "Compensation removed"
msgstr "Kompensation entfernt"
#: compensation/views/compensation_views.py:161 intervention/views.py:96
#: compensation/views/compensation_views.py:161
#: compensation/views/eco_account_views.py:261 intervention/views.py:96
msgid "Document added"
msgstr "Dokument hinzugefügt"
#: compensation/views/compensation_views.py:180
#: compensation/views/eco_account_views.py:205
msgid "State added"
msgstr "Zustand hinzugefügt"
#: compensation/views/compensation_views.py:199
#: compensation/views/eco_account_views.py:224
msgid "Action added"
msgstr "Maßnahme hinzugefügt"
#: compensation/views/compensation_views.py:218
#: compensation/views/eco_account_views.py:243
msgid "Deadline added"
msgstr "Frist hinzugefügt"
@ -533,7 +578,11 @@ msgstr "Zustand gelöscht"
msgid "Action removed"
msgstr "Maßnahme entfernt"
#: compensation/views/eco_account_views.py:147
#: compensation/views/eco_account_views.py:134
msgid "Eco-account removed"
msgstr "Ökokonto entfernt"
#: compensation/views/eco_account_views.py:161
msgid "Withdraw removed"
msgstr "Abbuchung entfernt"
@ -772,6 +821,10 @@ msgstr "Widerspruch entfernen"
msgid "Account Identifier"
msgstr "Ökokonto Kennung"
#: intervention/templates/intervention/detail/includes/withdraws.html:42
msgid "Eco-account deleted! Withdraw invalid!"
msgstr "Ökokonto gelöscht! Abbuchung ungültig!"
#: intervention/templates/intervention/detail/view.html:28
msgid "Process type"
msgstr "Verfahrenstyp"
@ -964,10 +1017,6 @@ msgstr "Kontrolle am"
msgid "Other"
msgstr "Sonstige"
#: konova/templates/konova/custom_widgets/progressbar.html:3
msgid "Available: "
msgstr ""
#: konova/templates/konova/custom_widgets/text-to-clipboard-input.html:6
msgid "Copy to clipboard"
msgstr "In Zwischenablage kopieren"