Compare commits
No commits in common. "b17b0b5144145e4136cf399251c945fe00ed0cb9" and "0fb27f979f3c175639a720b05dcff1f16ada7115" have entirely different histories.
b17b0b5144
...
0fb27f979f
@ -339,13 +339,13 @@ class NewEcoAccountForm(AbstractCompensationForm, CompensationResponsibleFormMix
|
||||
super().__init__(*args, **kwargs)
|
||||
self.form_title = _("New Eco-Account")
|
||||
|
||||
self.action_url = reverse("compensation:acc:new")
|
||||
self.cancel_redirect = reverse("compensation:acc:index")
|
||||
self.action_url = reverse("compensation:acc-new")
|
||||
self.cancel_redirect = reverse("compensation:acc-index")
|
||||
|
||||
tmp = EcoAccount()
|
||||
identifier = tmp.generate_new_identifier()
|
||||
self.initialize_form_field("identifier", identifier)
|
||||
self.fields["identifier"].widget.attrs["url"] = reverse_lazy("compensation:acc:new-id")
|
||||
self.fields["identifier"].widget.attrs["url"] = reverse_lazy("compensation:acc-new-id")
|
||||
self.fields["title"].widget.attrs["placeholder"] = _("Eco-Account XY; Location ABC")
|
||||
|
||||
def save(self, user: User, geom_form: SimpleGeomForm):
|
||||
@ -402,8 +402,8 @@ class EditEcoAccountForm(NewEcoAccountForm):
|
||||
super().__init__(*args, **kwargs)
|
||||
self.form_title = _("Edit Eco-Account")
|
||||
|
||||
self.action_url = reverse("compensation:acc:edit", args=(self.instance.id,))
|
||||
self.cancel_redirect = reverse("compensation:acc:detail", args=(self.instance.id,))
|
||||
self.action_url = reverse("compensation:acc-edit", args=(self.instance.id,))
|
||||
self.cancel_redirect = reverse("compensation:acc-detail", args=(self.instance.id,))
|
||||
|
||||
# Initialize form data
|
||||
reg_date = self.instance.legal.registration_date
|
||||
|
@ -21,7 +21,7 @@ from konova.contexts import BaseContext
|
||||
from konova.forms import BaseModalForm, NewDocumentForm
|
||||
from konova.models import DeadlineType
|
||||
from konova.utils.message_templates import FORM_INVALID, ADDED_COMPENSATION_STATE, ADDED_DEADLINE, \
|
||||
ADDED_COMPENSATION_ACTION, PAYMENT_ADDED
|
||||
ADDED_COMPENSATION_ACTION
|
||||
|
||||
|
||||
class NewPaymentForm(BaseModalForm):
|
||||
@ -100,7 +100,7 @@ class NewPaymentForm(BaseModalForm):
|
||||
|
||||
def save(self):
|
||||
pay = self.instance.add_payment(self)
|
||||
self.instance.mark_as_edited(self.user, self.request, edit_comment=PAYMENT_ADDED)
|
||||
self.instance.mark_as_edited(self.user, self.request)
|
||||
return pay
|
||||
|
||||
|
||||
@ -346,9 +346,10 @@ class NewActionModalForm(BaseModalForm):
|
||||
)
|
||||
comment = forms.CharField(
|
||||
required=False,
|
||||
max_length=200,
|
||||
label=_("Comment"),
|
||||
label_suffix=_(""),
|
||||
help_text=_("Additional comment"),
|
||||
help_text=_("Additional comment, maximum {} letters").format(200),
|
||||
widget=forms.Textarea(
|
||||
attrs={
|
||||
"rows": 5,
|
||||
|
@ -326,7 +326,7 @@ class Compensation(AbstractCompensation, CEFMixin, CoherenceMixin):
|
||||
Returns:
|
||||
|
||||
"""
|
||||
return self.intervention.mark_as_edited(user, request, edit_comment, reset_recorded)
|
||||
self.intervention.mark_as_edited(user, request, edit_comment, reset_recorded)
|
||||
|
||||
def is_ready_for_publish(self) -> bool:
|
||||
""" Not inherited by RecordableObjectMixin
|
||||
|
@ -7,12 +7,10 @@ Created on: 16.11.21
|
||||
"""
|
||||
import shutil
|
||||
|
||||
from django.urls import reverse
|
||||
|
||||
from konova.utils.message_templates import DEDUCTION_REMOVED
|
||||
from user.models import User
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.core.validators import MinValueValidator
|
||||
from django.db import models
|
||||
from django.db import models, transaction
|
||||
from django.db.models import Sum, QuerySet
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
@ -22,6 +20,7 @@ from compensation.utils.quality import EcoAccountQualityChecker
|
||||
from konova.models import ShareableObjectMixin, RecordableObjectMixin, AbstractDocument, BaseResource, \
|
||||
generate_document_file_upload_path
|
||||
from konova.settings import DEFAULT_SRID_RLP, LANIS_LINK_TEMPLATE
|
||||
from user.models import UserActionLogEntry
|
||||
|
||||
|
||||
class EcoAccount(AbstractCompensation, ShareableObjectMixin, RecordableObjectMixin):
|
||||
@ -166,6 +165,34 @@ class EcoAccount(AbstractCompensation, ShareableObjectMixin, RecordableObjectMix
|
||||
)
|
||||
return docs
|
||||
|
||||
def add_deduction(self, form):
|
||||
""" Adds a new deduction to the intervention
|
||||
|
||||
Args:
|
||||
form (NewDeductionModalForm): The form holding the data
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
form_data = form.cleaned_data
|
||||
user = form.user
|
||||
|
||||
with transaction.atomic():
|
||||
# Create log entry
|
||||
user_action_create = UserActionLogEntry.get_created_action(user)
|
||||
user_action_edit = UserActionLogEntry.get_edited_action(user)
|
||||
self.log.add(user_action_edit)
|
||||
self.modified = user_action_edit
|
||||
self.save()
|
||||
|
||||
deduction = EcoAccountDeduction.objects.create(
|
||||
intervention=form_data["intervention"],
|
||||
account=self,
|
||||
surface=form_data["surface"],
|
||||
created=user_action_create,
|
||||
)
|
||||
return deduction
|
||||
|
||||
def is_ready_for_publish(self) -> bool:
|
||||
""" Checks whether the data passes all constraints for being publishable
|
||||
|
||||
@ -176,14 +203,6 @@ class EcoAccount(AbstractCompensation, ShareableObjectMixin, RecordableObjectMix
|
||||
is_ready = is_recorded
|
||||
return is_ready
|
||||
|
||||
def get_share_link(self):
|
||||
""" Returns the share url for the object
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
return reverse("compensation:acc:share", args=(self.id, self.access_token))
|
||||
|
||||
|
||||
class EcoAccountDocument(AbstractDocument):
|
||||
"""
|
||||
@ -266,9 +285,3 @@ class EcoAccountDeduction(BaseResource):
|
||||
|
||||
def __str__(self):
|
||||
return "{} of {}".format(self.surface, self.account)
|
||||
|
||||
def delete(self, user=None, *args, **kwargs):
|
||||
if user is not None:
|
||||
self.intervention.mark_as_edited(user, edit_comment=DEDUCTION_REMOVED)
|
||||
self.account.mark_as_edited(user, edit_comment=DEDUCTION_REMOVED, reset_recorded=False)
|
||||
super().delete(*args, **kwargs)
|
@ -10,8 +10,6 @@ from django.db import models
|
||||
|
||||
from intervention.models import Intervention
|
||||
from konova.models import BaseResource
|
||||
from konova.utils.message_templates import PAYMENT_REMOVED
|
||||
from user.models import UserActionLogEntry
|
||||
|
||||
|
||||
class Payment(BaseResource):
|
||||
@ -37,8 +35,3 @@ class Payment(BaseResource):
|
||||
ordering = [
|
||||
"-amount",
|
||||
]
|
||||
|
||||
def delete(self, user=None, *args, **kwargs):
|
||||
if user is not None:
|
||||
self.intervention.mark_as_edited(user, edit_comment=PAYMENT_REMOVED)
|
||||
super().delete(*args, **kwargs)
|
||||
|
@ -201,7 +201,7 @@ class EcoAccountTable(BaseTable, TableRenderMixin):
|
||||
|
||||
def __init__(self, request: HttpRequest, *args, **kwargs):
|
||||
self.title = _("Eco Accounts")
|
||||
self.add_new_url = reverse("compensation:acc:new")
|
||||
self.add_new_url = reverse("compensation:acc-new")
|
||||
qs = kwargs.get("queryset", None)
|
||||
self.filter = EcoAccountTableFilter(
|
||||
user=request.user,
|
||||
@ -224,7 +224,7 @@ class EcoAccountTable(BaseTable, TableRenderMixin):
|
||||
html = ""
|
||||
html += self.render_link(
|
||||
tooltip=_("Open {}").format(_("Eco-account")),
|
||||
href=reverse("compensation:acc:detail", args=(record.id,)),
|
||||
href=reverse("compensation:acc-detail", args=(record.id,)),
|
||||
txt=value,
|
||||
new_tab=False,
|
||||
)
|
||||
|
@ -1,5 +1,4 @@
|
||||
{% load i18n l10n fontawesome_5 humanize ksp_filters %}
|
||||
|
||||
{% load i18n l10n fontawesome_5 humanize %}
|
||||
<div id="actions" class="card">
|
||||
<div class="card-header rlp-r">
|
||||
<div class="row">
|
||||
@ -21,13 +20,16 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body scroll-300 p-2">
|
||||
<div class="card-body scroll-300">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="" scope="col">
|
||||
<th class="w-25" scope="col">
|
||||
{% trans 'Action type' %}
|
||||
</th>
|
||||
<th class="w-25" scope="col">
|
||||
{% trans 'Action type details' %}
|
||||
</th>
|
||||
<th scope="col">
|
||||
{% trans 'Amount' context 'Compensation' %}
|
||||
</th>
|
||||
@ -36,9 +38,7 @@
|
||||
</th>
|
||||
{% if is_default_member and has_access %}
|
||||
<th scope="col">
|
||||
<span class="float-right">
|
||||
{% trans 'Action' %}
|
||||
</span>
|
||||
{% trans 'Action' %}
|
||||
</th>
|
||||
{% endif %}
|
||||
</tr>
|
||||
@ -46,24 +46,19 @@
|
||||
<tbody>
|
||||
{% for action in actions %}
|
||||
<tr>
|
||||
<td class="">
|
||||
<span>{{ action.action_type }}</span>
|
||||
{% if action.action_type_details.count > 0 %}
|
||||
<br>
|
||||
{% for detail in action.action_type_details.all %}
|
||||
<span class="badge badge-pill rlp-r" title="{{detail}}">{{detail.long_name}}</span>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
<td class="align-middle">
|
||||
{{ action.action_type }}
|
||||
</td>
|
||||
<td class="">{{ action.amount|floatformat:2|intcomma }} {{ action.unit_humanize }}</td>
|
||||
<td class="">
|
||||
<div class="scroll-150">
|
||||
{{ action.comment }}
|
||||
</div>
|
||||
<td class="align-middle">
|
||||
{% for detail in action.action_type_details.all %}
|
||||
<div class="mb-2" title="{{detail}}">{{detail.long_name}}</div>
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td class="">
|
||||
<td class="align-middle">{{ action.amount|floatformat:2|intcomma }} {{ action.unit_humanize }}</td>
|
||||
<td class="align-middle">{{ action.comment|default_if_none:"" }}</td>
|
||||
<td class="align-middle">
|
||||
{% if is_default_member and has_access %}
|
||||
<button data-form-url="{% url 'compensation:action-remove' obj.id action.id %}" class="btn btn-default btn-modal float-right" title="{% trans 'Remove action' %}">
|
||||
<button data-form-url="{% url 'compensation:action-remove' obj.id action.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove action' %}">
|
||||
{% fa5_icon 'trash' %}
|
||||
</button>
|
||||
{% endif %}
|
||||
|
@ -20,7 +20,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body scroll-300 p-2">
|
||||
<div class="card-body scroll-300">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
@ -35,9 +35,7 @@
|
||||
</th>
|
||||
{% if is_default_member and has_access %}
|
||||
<th scope="col">
|
||||
<span class="float-right">
|
||||
{% trans 'Action' %}
|
||||
</span>
|
||||
{% trans 'Action' %}
|
||||
</th>
|
||||
{% endif %}
|
||||
</tr>
|
||||
@ -49,14 +47,10 @@
|
||||
{% trans deadline.type_humanized %}
|
||||
</td>
|
||||
<td class="align-middle">{{ deadline.date|default_if_none:"---" }}</td>
|
||||
<td class="align-middle">
|
||||
<div class="scroll-150">
|
||||
{{ deadline.comment }}
|
||||
</div>
|
||||
</td>
|
||||
<td class="align-middle">{{ deadline.comment }}</td>
|
||||
<td>
|
||||
{% if is_default_member and has_access %}
|
||||
<button data-form-url="{% url 'compensation:deadline-remove' obj.id deadline.id %}" class="btn btn-default btn-modal float-right" title="{% trans 'Remove deadline' %}">
|
||||
<button data-form-url="{% url 'deadline-remove' deadline.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove deadline' %}">
|
||||
{% fa5_icon 'trash' %}
|
||||
</button>
|
||||
{% endif %}
|
||||
|
@ -20,7 +20,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body scroll-300 p-2">
|
||||
<div class="card-body scroll-300">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
@ -32,9 +32,7 @@
|
||||
</th>
|
||||
{% if is_default_member and has_access %}
|
||||
<th scope="col">
|
||||
<span class="float-right">
|
||||
{% trans 'Action' %}
|
||||
</span>
|
||||
{% trans 'Action' %}
|
||||
</th>
|
||||
{% endif %}
|
||||
</tr>
|
||||
@ -47,14 +45,10 @@
|
||||
{{ doc.title }}
|
||||
</a>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<div class="scroll-150">
|
||||
{{ doc.comment }}
|
||||
</div>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<td class="align-middle">{{ doc.comment }}</td>
|
||||
<td>
|
||||
{% if is_default_member and has_access %}
|
||||
<button data-form-url="{% url 'compensation:remove-doc' doc.id %}" class="btn btn-default btn-modal float-right" title="{% trans 'Remove document' %}">
|
||||
<button data-form-url="{% url 'compensation:remove-doc' doc.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove document' %}">
|
||||
{% fa5_icon 'trash' %}
|
||||
</button>
|
||||
{% endif %}
|
||||
|
@ -20,26 +20,27 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% if sum_before_states > sum_after_states %}
|
||||
<div class="alert alert-danger mb-0">
|
||||
{% trans 'Missing surfaces according to states before: ' %}{{ diff_states|floatformat:2 }} m²
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="card-body scroll-300 p-2">
|
||||
<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 class="w-50" scope="col">
|
||||
<th class="w-25" scope="col">
|
||||
{% trans 'Biotope type' %}
|
||||
</th>
|
||||
<th class="w-25" scope="col">
|
||||
{% trans 'Biotope additional type' %}
|
||||
</th>
|
||||
<th scope="col">
|
||||
{% trans 'Surface' %}
|
||||
</th>
|
||||
{% if is_default_member and has_access %}
|
||||
<th scope="col">
|
||||
<span class="float-right">
|
||||
{% trans 'Action' %}
|
||||
</span>
|
||||
{% trans 'Action' %}
|
||||
</th>
|
||||
{% endif %}
|
||||
</tr>
|
||||
@ -47,19 +48,20 @@
|
||||
<tbody>
|
||||
{% for state in after_states %}
|
||||
<tr>
|
||||
<td>
|
||||
<span>{{ state.biotope_type }}</span>
|
||||
{% if state.biotope_type_details.count > 0 %}
|
||||
<br>
|
||||
{% for detail in state.biotope_type_details.all %}
|
||||
<span class="badge badge-pill rlp-r" title="{{detail}}">{{detail.long_name}}</span>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
<td class="align-middle">
|
||||
{{ state.biotope_type }}
|
||||
</td>
|
||||
<td>{{ state.surface|floatformat:2 }} m²</td>
|
||||
<td>
|
||||
<td class="align-middle">
|
||||
{% for biotope_extra in state.biotope_type_details.all %}
|
||||
<div class="mb-2" title="{{ biotope_extra }}">
|
||||
{{ biotope_extra.long_name }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td class="align-middle">{{ state.surface|floatformat:2 }} m²</td>
|
||||
<td class="align-middle">
|
||||
{% if is_default_member and has_access %}
|
||||
<button data-form-url="{% url 'compensation:state-remove' obj.id state.id %}" class="btn btn-default btn-modal float-right" title="{% trans 'Remove state' %}">
|
||||
<button data-form-url="{% url 'compensation:state-remove' obj.id state.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove state' %}">
|
||||
{% fa5_icon 'trash' %}
|
||||
</button>
|
||||
{% endif %}
|
||||
|
@ -20,26 +20,27 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% if sum_before_states < sum_after_states %}
|
||||
<div class="alert alert-danger mb-0">
|
||||
{% trans 'Missing surfaces according to states after: ' %}{{ diff_states|floatformat:2 }} m²
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="card-body scroll-300 p-2">
|
||||
<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 class="w-50" scope="col">
|
||||
<th class="w-25" scope="col">
|
||||
{% trans 'Biotope type' %}
|
||||
</th>
|
||||
<th class="w-25" scope="col">
|
||||
{% trans 'Biotope additional type' %}
|
||||
</th>
|
||||
<th scope="col">
|
||||
{% trans 'Surface' %}
|
||||
</th>
|
||||
{% if is_default_member and has_access %}
|
||||
<th scope="col">
|
||||
<span class="float-right">
|
||||
{% trans 'Action' %}
|
||||
</span>
|
||||
{% trans 'Action' %}
|
||||
</th>
|
||||
{% endif %}
|
||||
</tr>
|
||||
@ -47,19 +48,20 @@
|
||||
<tbody>
|
||||
{% for state in before_states %}
|
||||
<tr>
|
||||
<td>
|
||||
<span>{{ state.biotope_type }}</span>
|
||||
{% if state.biotope_type_details.count > 0 %}
|
||||
<br>
|
||||
{% for detail in state.biotope_type_details.all %}
|
||||
<span class="badge badge-pill rlp-r" title="{{detail}}">{{detail.long_name}}</span>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
<td class="align-middle">
|
||||
{{ state.biotope_type }}
|
||||
</td>
|
||||
<td>{{ state.surface|floatformat:2 }} m²</td>
|
||||
<td>
|
||||
<td class="align-middle">
|
||||
{% for biotope_extra in state.biotope_type_details.all %}
|
||||
<div class="mb-2" title="{{ biotope_extra }}">
|
||||
{{ biotope_extra.long_name }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td class="align-middle">{{ state.surface|floatformat:2 }} m²</td>
|
||||
<td class="align-middle">
|
||||
{% if is_default_member and has_access %}
|
||||
<button data-form-url="{% url 'compensation:state-remove' obj.id state.id %}" class="btn btn-default btn-modal float-right" title="{% trans 'Remove state' %}">
|
||||
<button data-form-url="{% url 'compensation:state-remove' obj.id state.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove state' %}">
|
||||
{% fa5_icon 'trash' %}
|
||||
</button>
|
||||
{% endif %}
|
||||
|
@ -118,27 +118,26 @@
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div id="related_data">
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'compensation/detail/compensation/includes/states-before.html' %}
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'compensation/detail/compensation/includes/states-after.html' %}
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'compensation/detail/compensation/includes/states-before.html' %}
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'compensation/detail/compensation/includes/actions.html' %}
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'compensation/detail/compensation/includes/deadlines.html' %}
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'compensation/detail/compensation/includes/states-after.html' %}
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'compensation/detail/compensation/includes/documents.html' %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'compensation/detail/compensation/includes/actions.html' %}
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% 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/compensation/includes/documents.html' %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
{% load i18n l10n fontawesome_5 humanize ksp_filters %}
|
||||
{% load i18n l10n fontawesome_5 humanize %}
|
||||
<div id="actions" class="card">
|
||||
<div class="card-header rlp-r">
|
||||
<div class="row">
|
||||
@ -11,7 +11,7 @@
|
||||
<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' %}">
|
||||
<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>
|
||||
@ -20,24 +20,25 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body scroll-300 p-2">
|
||||
<div class="card-body scroll-300">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="" scope="col">
|
||||
<th class="w-25" scope="col">
|
||||
{% trans 'Action type' %}
|
||||
</th>
|
||||
<th class="w-25" scope="col">
|
||||
{% trans 'Action type details' %}
|
||||
</th>
|
||||
<th scope="col">
|
||||
{% trans 'Amount' context 'Compensation' %}
|
||||
</th>
|
||||
<th scope="col">
|
||||
{% trans 'Comment' %}
|
||||
</th>
|
||||
{% if is_default_member and has_access %}
|
||||
{% if default_member and has_access %}
|
||||
<th scope="col">
|
||||
<span class="float-right">
|
||||
{% trans 'Action' %}
|
||||
</span>
|
||||
{% trans 'Action' %}
|
||||
</th>
|
||||
{% endif %}
|
||||
</tr>
|
||||
@ -45,24 +46,19 @@
|
||||
<tbody>
|
||||
{% for action in actions %}
|
||||
<tr>
|
||||
<td class="">
|
||||
<span>{{ action.action_type }}</span>
|
||||
{% if action.action_type_details.count > 0 %}
|
||||
<br>
|
||||
{% for detail in action.action_type_details.all %}
|
||||
<span class="badge badge-pill rlp-r" title="{{detail}}">{{detail.long_name}}</span>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
<td class="align-middle">
|
||||
{{ action.action_type }}
|
||||
</td>
|
||||
<td class="">{{ action.amount|floatformat:2|intcomma }} {{ action.unit_humanize }}</td>
|
||||
<td class="">
|
||||
<div class="scroll-150">
|
||||
{{ action.comment }}
|
||||
</div>
|
||||
<td class="align-middle">
|
||||
{% for detail in action.action_type_details.all %}
|
||||
<div class="mb-2" title="{{detail}}">{{detail.long_name}}</div>
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td class="">
|
||||
<td class="align-middle">{{ action.amount|floatformat:2|intcomma }} {{ action.unit_humanize }}</td>
|
||||
<td class="align-middle">{{ action.comment|default_if_none:"" }}</td>
|
||||
<td class="align-middle">
|
||||
{% if is_default_member and has_access %}
|
||||
<button data-form-url="{% url 'compensation:acc:action-remove' obj.id action.id %}" class="btn btn-default btn-modal float-right" title="{% trans 'Remove action' %}">
|
||||
<button data-form-url="{% url 'compensation:acc-action-remove' obj.id action.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove action' %}">
|
||||
{% fa5_icon 'trash' %}
|
||||
</button>
|
||||
{% endif %}
|
||||
|
@ -6,36 +6,36 @@
|
||||
LANIS
|
||||
</button>
|
||||
</a>
|
||||
<a href="{% url 'compensation:acc:report' obj.id %}" target="_blank" class="mr-2">
|
||||
<a href="{% url 'compensation:acc-report' obj.id %}" target="_blank" class="mr-2">
|
||||
<button class="btn btn-default" title="{% trans 'Public report' %}">
|
||||
{% fa5_icon 'file-alt' %}
|
||||
</button>
|
||||
</a>
|
||||
{% if has_access %}
|
||||
<button class="btn btn-default btn-modal mr-2" title="{% trans 'Share' %}" data-form-url="{% url 'compensation:acc:share-create' obj.id %}">
|
||||
<button class="btn btn-default btn-modal mr-2" title="{% trans 'Share' %}" data-form-url="{% url 'compensation:share-create' obj.id %}">
|
||||
{% fa5_icon 'share-alt' %}
|
||||
</button>
|
||||
{% if is_ets_member %}
|
||||
{% if obj.recorded %}
|
||||
<button class="btn btn-default btn-modal mr-2" title="{% trans 'Unrecord' %}" data-form-url="{% url 'compensation:acc:record' obj.id %}">
|
||||
<button class="btn btn-default btn-modal mr-2" title="{% trans 'Unrecord' %}" data-form-url="{% url 'compensation:acc-record' obj.id %}">
|
||||
{% fa5_icon 'bookmark' 'far' %}
|
||||
</button>
|
||||
{% else %}
|
||||
<button class="btn btn-default btn-modal mr-2" title="{% trans 'Record' %}" data-form-url="{% url 'compensation:acc:record' obj.id %}">
|
||||
<button class="btn btn-default btn-modal mr-2" title="{% trans 'Record' %}" data-form-url="{% url 'compensation:acc-record' obj.id %}">
|
||||
{% fa5_icon 'bookmark' %}
|
||||
</button>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if is_default_member %}
|
||||
<a href="{% url 'compensation:acc:edit' obj.id %}" class="mr-2">
|
||||
<a href="{% url 'compensation:acc-edit' obj.id %}" 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' %}">
|
||||
<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' %}">
|
||||
<button class="btn btn-default btn-modal" data-form-url="{% url 'compensation:acc-remove' obj.id %}" title="{% trans 'Delete' %}">
|
||||
{% fa5_icon 'trash' %}
|
||||
</button>
|
||||
{% endif %}
|
||||
|
@ -11,7 +11,7 @@
|
||||
<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' %}">
|
||||
<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>
|
||||
@ -20,7 +20,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body scroll-300 p-2">
|
||||
<div class="card-body scroll-300">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
@ -34,9 +34,7 @@
|
||||
{% trans 'Comment' %}
|
||||
</th>
|
||||
<th scope="col">
|
||||
<span class="float-right">
|
||||
{% trans 'Action' %}
|
||||
</span>
|
||||
{% trans 'Action' %}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -47,14 +45,10 @@
|
||||
{% trans deadline.type_humanized %}
|
||||
</td>
|
||||
<td class="align-middle">{{ deadline.date|default_if_none:"---" }}</td>
|
||||
<td class="align-middle">
|
||||
<div class="scroll-150">
|
||||
{{ deadline.comment }}
|
||||
</div>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<td class="align-middle">{{ deadline.comment }}</td>
|
||||
<td>
|
||||
{% if is_default_member and has_access %}
|
||||
<button data-form-url="{% url 'compensation:acc:deadline-remove' obj.id deadline.id %}" class="btn btn-default btn-modal float-right" title="{% trans 'Remove deadline' %}">
|
||||
<button data-form-url="{% url 'deadline-remove' deadline.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove deadline' %}">
|
||||
{% fa5_icon 'trash' %}
|
||||
</button>
|
||||
{% endif %}
|
||||
|
@ -11,7 +11,7 @@
|
||||
<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-deduction' obj.id %}" title="{% trans 'Add new deduction' %}">
|
||||
<button class="btn btn-outline-default btn-modal" data-form-url="{% url 'compensation:acc-new-deduction' obj.id %}" title="{% trans 'Add new deduction' %}">
|
||||
{% fa5_icon 'plus' %}
|
||||
{% fa5_icon 'tree' %}
|
||||
</button>
|
||||
@ -20,7 +20,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body scroll-300 p-2">
|
||||
<div class="card-body scroll-300">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
@ -37,9 +37,7 @@
|
||||
{% trans 'Created' %}
|
||||
</th>
|
||||
<th scope="col">
|
||||
<span class="float-right">
|
||||
{% trans 'Action' %}
|
||||
</span>
|
||||
{% trans 'Action' %}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -62,7 +60,7 @@
|
||||
<td class="align-middle">{{ deduction.created.timestamp|default_if_none:""|naturalday}}</td>
|
||||
<td>
|
||||
{% if is_default_member and has_access %}
|
||||
<button data-form-url="{% url 'compensation:acc:remove-deduction' deduction.account.id deduction.id %}" class="btn btn-default btn-modal float-right" title="{% trans 'Remove Deduction' %}">
|
||||
<button data-form-url="{% url 'compensation:acc-remove-deduction' deduction.account.id deduction.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove Deduction' %}">
|
||||
{% fa5_icon 'trash' %}
|
||||
</button>
|
||||
{% endif %}
|
||||
|
@ -11,7 +11,7 @@
|
||||
<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' %}">
|
||||
<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>
|
||||
@ -20,7 +20,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body scroll-300 p-2">
|
||||
<div class="card-body scroll-300">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
@ -31,9 +31,7 @@
|
||||
{% trans 'Comment' %}
|
||||
</th>
|
||||
<th scope="col">
|
||||
<span class="float-right">
|
||||
{% trans 'Action' %}
|
||||
</span>
|
||||
{% trans 'Action' %}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -41,18 +39,14 @@
|
||||
{% for doc in obj.documents.all %}
|
||||
<tr>
|
||||
<td class="align-middle">
|
||||
<a href="{% url 'compensation:acc:get-doc' doc.id %}">
|
||||
<a href="{% url 'compensation:acc-get-doc' doc.id %}">
|
||||
{{ doc.title }}
|
||||
</a>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<div class="scroll-150">
|
||||
{{ doc.comment }}
|
||||
</div>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<td class="align-middle">{{ doc.comment }}</td>
|
||||
<td>
|
||||
{% if is_default_member and has_access %}
|
||||
<button data-form-url="{% url 'compensation:acc:remove-doc' doc.id %}" class="btn btn-default btn-modal float-right" title="{% trans 'Remove document' %}">
|
||||
<button data-form-url="{% url 'compensation:acc-remove-doc' doc.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove document' %}">
|
||||
{% fa5_icon 'trash' %}
|
||||
</button>
|
||||
{% endif %}
|
||||
|
@ -11,7 +11,7 @@
|
||||
<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' %}">
|
||||
<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>
|
||||
@ -20,26 +20,27 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% if sum_before_states > sum_after_states %}
|
||||
<div class="alert alert-danger mb-0">
|
||||
{% trans 'Missing surfaces according to states before: ' %}{{ diff_states|floatformat:2 }} m²
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="card-body scroll-300 p-2">
|
||||
<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 class="w-50" scope="col">
|
||||
<th class="w-25" scope="col">
|
||||
{% trans 'Biotope type' %}
|
||||
</th>
|
||||
<th class="w-25" scope="col">
|
||||
{% trans 'Biotope additional type' %}
|
||||
</th>
|
||||
<th scope="col">
|
||||
{% trans 'Surface' %}
|
||||
</th>
|
||||
{% if is_default_member and has_access %}
|
||||
<th scope="col">
|
||||
<span class="float-right">
|
||||
{% trans 'Action' %}
|
||||
</span>
|
||||
{% trans 'Action' %}
|
||||
</th>
|
||||
{% endif %}
|
||||
</tr>
|
||||
@ -47,19 +48,20 @@
|
||||
<tbody>
|
||||
{% for state in after_states %}
|
||||
<tr>
|
||||
<td>
|
||||
<span>{{ state.biotope_type }}</span>
|
||||
{% if state.biotope_type_details.count > 0 %}
|
||||
<br>
|
||||
{% for detail in state.biotope_type_details.all %}
|
||||
<span class="badge badge-pill rlp-r" title="{{detail}}">{{detail.long_name}}</span>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
<td class="align-middle">
|
||||
{{ state.biotope_type }}
|
||||
</td>
|
||||
<td>{{ state.surface|floatformat:2 }} m²</td>
|
||||
<td>
|
||||
<td class="align-middle">
|
||||
{% for biotope_extra in state.biotope_type_details.all %}
|
||||
<div class="mb-2" title="{{ biotope_extra }}">
|
||||
{{ biotope_extra.long_name }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td class="align-middle">{{ state.surface|floatformat:2 }} m²</td>
|
||||
<td class="align-middle">
|
||||
{% if is_default_member and has_access %}
|
||||
<button data-form-url="{% url 'compensation:acc:state-remove' obj.id state.id %}" class="btn btn-default btn-modal float-right" title="{% trans 'Remove state' %}">
|
||||
<button data-form-url="{% url 'compensation:acc-state-remove' obj.id state.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove state' %}">
|
||||
{% fa5_icon 'trash' %}
|
||||
</button>
|
||||
{% endif %}
|
||||
|
@ -11,7 +11,7 @@
|
||||
<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' %}">
|
||||
<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>
|
||||
@ -20,26 +20,27 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% if sum_before_states < sum_after_states %}
|
||||
<div class="alert alert-danger mb-0">
|
||||
{% trans 'Missing surfaces according to states after: ' %}{{ diff_states|floatformat:2 }} m²
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="card-body scroll-300 p-2">
|
||||
<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 class="w-50" scope="col">
|
||||
<th class="w-25" scope="col">
|
||||
{% trans 'Biotope type' %}
|
||||
</th>
|
||||
<th class="w-25" scope="col">
|
||||
{% trans 'Biotope additional type' %}
|
||||
</th>
|
||||
<th scope="col">
|
||||
{% trans 'Surface' %}
|
||||
</th>
|
||||
{% if is_default_member and has_access %}
|
||||
<th scope="col">
|
||||
<span class="float-right">
|
||||
{% trans 'Action' %}
|
||||
</span>
|
||||
{% trans 'Action' %}
|
||||
</th>
|
||||
{% endif %}
|
||||
</tr>
|
||||
@ -47,19 +48,20 @@
|
||||
<tbody>
|
||||
{% for state in before_states %}
|
||||
<tr>
|
||||
<td>
|
||||
<span>{{ state.biotope_type }}</span>
|
||||
{% if state.biotope_type_details.count > 0 %}
|
||||
<br>
|
||||
{% for detail in state.biotope_type_details.all %}
|
||||
<span class="badge badge-pill rlp-r" title="{{detail}}">{{detail.long_name}}</span>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
<td class="align-middle">
|
||||
{{ state.biotope_type }}
|
||||
</td>
|
||||
<td>{{ state.surface|floatformat:2 }} m²</td>
|
||||
<td>
|
||||
<td class="align-middle">
|
||||
{% for biotope_extra in state.biotope_type_details.all %}
|
||||
<div class="mb-2" title="{{ biotope_extra }}">
|
||||
{{ biotope_extra.long_name }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td class="align-middle">{{ state.surface|floatformat:2 }} m²</td>
|
||||
<td class="align-middle">
|
||||
{% if is_default_member and has_access %}
|
||||
<button data-form-url="{% url 'compensation:acc:state-remove' obj.id state.id %}" class="btn btn-default btn-modal float-right" title="{% trans 'Remove state' %}">
|
||||
<button data-form-url="{% url 'compensation:acc-state-remove' obj.id state.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove state' %}">
|
||||
{% fa5_icon 'trash' %}
|
||||
</button>
|
||||
{% endif %}
|
||||
|
@ -102,30 +102,28 @@
|
||||
</div>
|
||||
<hr>
|
||||
|
||||
<div id="related_data">
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'compensation/detail/eco_account/includes/states-before.html' %}
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'compensation/detail/eco_account/includes/states-after.html' %}
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'compensation/detail/eco_account/includes/states-before.html' %}
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'compensation/detail/eco_account/includes/actions.html' %}
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'compensation/detail/eco_account/includes/deadlines.html' %}
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'compensation/detail/eco_account/includes/states-after.html' %}
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% 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/deductions.html' %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'compensation/detail/eco_account/includes/actions.html' %}
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% 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/eco_account/includes/documents.html' %}
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'compensation/detail/eco_account/includes/deductions.html' %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -245,20 +245,20 @@ class EcoAccountViewTestCase(CompensationViewTestCase):
|
||||
cls.eco_account.actions.set([action])
|
||||
|
||||
# Prepare urls
|
||||
cls.index_url = reverse("compensation:acc:index", args=())
|
||||
cls.new_url = reverse("compensation:acc:new", args=())
|
||||
cls.new_id_url = reverse("compensation:acc:new-id", args=())
|
||||
cls.detail_url = reverse("compensation:acc:detail", args=(cls.eco_account.id,))
|
||||
cls.log_url = reverse("compensation:acc:log", args=(cls.eco_account.id,))
|
||||
cls.edit_url = reverse("compensation:acc:edit", args=(cls.eco_account.id,))
|
||||
cls.remove_url = reverse("compensation:acc:remove", args=(cls.eco_account.id,))
|
||||
cls.report_url = reverse("compensation:acc:report", args=(cls.eco_account.id,))
|
||||
cls.state_new_url = reverse("compensation:acc:new-state", args=(cls.eco_account.id,))
|
||||
cls.action_new_url = reverse("compensation:acc:new-action", args=(cls.eco_account.id,))
|
||||
cls.deadline_new_url = reverse("compensation:acc:new-deadline", args=(cls.eco_account.id,))
|
||||
cls.new_doc_url = reverse("compensation:acc:new-doc", args=(cls.eco_account.id,))
|
||||
cls.state_remove_url = reverse("compensation:acc:state-remove", args=(cls.eco_account.id, cls.comp_state.id,))
|
||||
cls.action_remove_url = reverse("compensation:acc:action-remove", args=(cls.eco_account.id, cls.comp_action.id,))
|
||||
cls.index_url = reverse("compensation:acc-index", args=())
|
||||
cls.new_url = reverse("compensation:acc-new", args=())
|
||||
cls.new_id_url = reverse("compensation:acc-new-id", args=())
|
||||
cls.detail_url = reverse("compensation:acc-detail", args=(cls.eco_account.id,))
|
||||
cls.log_url = reverse("compensation:acc-log", args=(cls.eco_account.id,))
|
||||
cls.edit_url = reverse("compensation:acc-edit", args=(cls.eco_account.id,))
|
||||
cls.remove_url = reverse("compensation:acc-remove", args=(cls.eco_account.id,))
|
||||
cls.report_url = reverse("compensation:acc-report", args=(cls.eco_account.id,))
|
||||
cls.state_new_url = reverse("compensation:acc-new-state", args=(cls.eco_account.id,))
|
||||
cls.action_new_url = reverse("compensation:acc-new-action", args=(cls.eco_account.id,))
|
||||
cls.deadline_new_url = reverse("compensation:acc-new-deadline", args=(cls.eco_account.id,))
|
||||
cls.new_doc_url = reverse("compensation:acc-new-doc", args=(cls.eco_account.id,))
|
||||
cls.state_remove_url = reverse("compensation:acc-state-remove", args=(cls.eco_account.id, cls.comp_state.id,))
|
||||
cls.action_remove_url = reverse("compensation:acc-action-remove", args=(cls.eco_account.id, cls.comp_action.id,))
|
||||
|
||||
def test_logged_in_no_groups_shared(self):
|
||||
""" Check correct status code for all requests
|
||||
|
@ -258,7 +258,7 @@ class EcoAccountWorkflowTestCase(BaseWorkflowTestCase):
|
||||
self.intervention.share_with(self.superuser)
|
||||
|
||||
# Prepare data for deduction creation
|
||||
deduct_url = reverse("compensation:acc:new-deduction", args=(self.eco_account.id,))
|
||||
deduct_url = reverse("compensation:acc-new-deduction", args=(self.eco_account.id,))
|
||||
test_surface = 10.00
|
||||
post_data = {
|
||||
"surface": test_surface,
|
||||
|
@ -23,7 +23,6 @@ urlpatterns = [
|
||||
path('<id>/state/<state_id>/remove', state_remove_view, name='state-remove'),
|
||||
path('<id>/action/<action_id>/remove', action_remove_view, name='action-remove'),
|
||||
path('<id>/deadline/new', deadline_new_view, name="new-deadline"),
|
||||
path('<id>/deadline/<deadline_id>/remove', deadline_remove_view, name='deadline-remove'),
|
||||
path('<id>/report', report_view, name='report'),
|
||||
|
||||
# Documents
|
||||
|
@ -8,33 +8,31 @@ Created on: 24.08.21
|
||||
from django.urls import path
|
||||
from compensation.views.eco_account import *
|
||||
|
||||
app_name = "acc"
|
||||
urlpatterns = [
|
||||
path("", index_view, name="index"),
|
||||
path('new/', new_view, name='new'),
|
||||
path('new/id', new_id_view, name='new-id'),
|
||||
path('<id>', detail_view, name='detail'),
|
||||
path('<id>/log', log_view, name='log'),
|
||||
path('<id>/record', record_view, name='record'),
|
||||
path('<id>/report', report_view, name='report'),
|
||||
path('<id>/edit', edit_view, name='edit'),
|
||||
path('<id>/remove', remove_view, name='remove'),
|
||||
path('<id>/state/new', state_new_view, name='new-state'),
|
||||
path('<id>/action/new', action_new_view, name='new-action'),
|
||||
path('<id>/state/<state_id>/remove', state_remove_view, name='state-remove'),
|
||||
path('<id>/action/<action_id>/remove', action_remove_view, name='action-remove'),
|
||||
path('<id>/deadline/<deadline_id>/remove', deadline_remove_view, name='deadline-remove'),
|
||||
path('<id>/deadline/new', deadline_new_view, name="new-deadline"),
|
||||
path("", index_view, name="acc-index"),
|
||||
path('new/', new_view, name='acc-new'),
|
||||
path('new/id', new_id_view, name='acc-new-id'),
|
||||
path('<id>', detail_view, name='acc-detail'),
|
||||
path('<id>/log', log_view, name='acc-log'),
|
||||
path('<id>/record', record_view, name='acc-record'),
|
||||
path('<id>/report', report_view, name='acc-report'),
|
||||
path('<id>/edit', edit_view, name='acc-edit'),
|
||||
path('<id>/remove', remove_view, name='acc-remove'),
|
||||
path('<id>/state/new', state_new_view, name='acc-new-state'),
|
||||
path('<id>/action/new', action_new_view, name='acc-new-action'),
|
||||
path('<id>/state/<state_id>/remove', state_remove_view, name='acc-state-remove'),
|
||||
path('<id>/action/<action_id>/remove', action_remove_view, name='acc-action-remove'),
|
||||
path('<id>/deadline/new', deadline_new_view, name="acc-new-deadline"),
|
||||
path('<id>/share/<token>', share_view, name='share'),
|
||||
path('<id>/share', create_share_view, name='share-create'),
|
||||
|
||||
# Documents
|
||||
path('<id>/document/new/', new_document_view, name='new-doc'),
|
||||
path('document/<doc_id>', get_document_view, name='get-doc'),
|
||||
path('document/<doc_id>/remove/', remove_document_view, name='remove-doc'),
|
||||
path('<id>/document/new/', new_document_view, name='acc-new-doc'),
|
||||
path('document/<doc_id>', get_document_view, name='acc-get-doc'),
|
||||
path('document/<doc_id>/remove/', remove_document_view, name='acc-remove-doc'),
|
||||
|
||||
# Eco-account deductions
|
||||
path('<id>/remove/<deduction_id>', deduction_remove_view, name='remove-deduction'),
|
||||
path('<id>/deduct/new', new_deduction_view, name='new-deduction'),
|
||||
path('<id>/remove/<deduction_id>', deduction_remove_view, name='acc-remove-deduction'),
|
||||
path('<id>/deduct/new', new_deduction_view, name='acc-new-deduction'),
|
||||
|
||||
]
|
@ -8,8 +8,7 @@ Created on: 24.08.21
|
||||
from django.urls import path
|
||||
from compensation.views.payment import *
|
||||
|
||||
app_name = "pay"
|
||||
urlpatterns = [
|
||||
path('<intervention_id>/new', new_payment_view, name='new'),
|
||||
path('<id>/remove', payment_remove_view, name='remove'),
|
||||
path('<intervention_id>/new', new_payment_view, name='pay-new'),
|
||||
path('<id>/remove', payment_remove_view, name='pay-remove'),
|
||||
]
|
||||
|
@ -10,6 +10,6 @@ from django.urls import path, include
|
||||
app_name = "compensation"
|
||||
urlpatterns = [
|
||||
path("", include("compensation.urls.compensation")),
|
||||
path("acc/", include("compensation.urls.eco_account", namespace="acc")),
|
||||
path("pay/", include("compensation.urls.payment", namespace="pay")),
|
||||
path("acc/", include("compensation.urls.eco_account")),
|
||||
path("pay/", include("compensation.urls.payment")),
|
||||
]
|
@ -13,7 +13,6 @@ from intervention.models import Intervention
|
||||
from konova.contexts import BaseContext
|
||||
from konova.decorators import *
|
||||
from konova.forms import RemoveModalForm, SimpleGeomForm
|
||||
from konova.models import Deadline
|
||||
from konova.sub_settings.context_settings import TAB_TITLE_IDENTIFIER
|
||||
from konova.utils.documents import get_document, remove_document
|
||||
from konova.utils.generators import generate_qr_code
|
||||
@ -277,8 +276,7 @@ def new_document_view(request: HttpRequest, id: str):
|
||||
form = NewCompensationDocumentForm(request.POST or None, request.FILES or None, instance=comp, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
msg_success=_("Document added"),
|
||||
redirect_url=reverse("compensation:detail", args=(id,)) + "#related_data"
|
||||
msg_success=_("Document added")
|
||||
)
|
||||
|
||||
|
||||
@ -347,8 +345,7 @@ def state_new_view(request: HttpRequest, id: str):
|
||||
form = NewStateModalForm(request.POST or None, instance=comp, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
msg_success=_("State added"),
|
||||
redirect_url=reverse("compensation:detail", args=(id,)) + "#related_data"
|
||||
msg_success=_("State added")
|
||||
)
|
||||
|
||||
|
||||
@ -369,8 +366,7 @@ def action_new_view(request: HttpRequest, id: str):
|
||||
form = NewActionModalForm(request.POST or None, instance=comp, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
msg_success=_("Action added"),
|
||||
redirect_url=reverse("compensation:detail", args=(id,)) + "#related_data"
|
||||
msg_success=_("Action added")
|
||||
)
|
||||
|
||||
|
||||
@ -391,31 +387,7 @@ def deadline_new_view(request: HttpRequest, id: str):
|
||||
form = NewDeadlineModalForm(request.POST or None, instance=comp, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
msg_success=_("Deadline added"),
|
||||
redirect_url=reverse("compensation:detail", args=(id,)) + "#related_data"
|
||||
)
|
||||
|
||||
|
||||
@login_required
|
||||
@default_group_required
|
||||
@shared_access_required(Compensation, "id")
|
||||
def deadline_remove_view(request: HttpRequest, id: str, deadline_id: str):
|
||||
""" Renders a form for removing deadlines from a compensation
|
||||
|
||||
Args:
|
||||
request (HttpRequest): The incoming request
|
||||
id (str): The compensation's id
|
||||
deadline_id (str): The deadline's id
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
deadline = get_object_or_404(Deadline, id=deadline_id)
|
||||
form = RemoveModalForm(request.POST or None, instance=deadline, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
msg_success=_("Deadline removed"),
|
||||
redirect_url=reverse("compensation:detail", args=(id,)) + "#related_data"
|
||||
msg_success=_("Deadline added")
|
||||
)
|
||||
|
||||
|
||||
@ -437,8 +409,7 @@ def state_remove_view(request: HttpRequest, id: str, state_id: str):
|
||||
form = RemoveModalForm(request.POST or None, instance=state, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
msg_success=_("State removed"),
|
||||
redirect_url=reverse("compensation:detail", args=(id,)) + "#related_data"
|
||||
msg_success=_("State removed")
|
||||
)
|
||||
|
||||
|
||||
@ -460,8 +431,7 @@ def action_remove_view(request: HttpRequest, id: str, action_id: str):
|
||||
form = RemoveModalForm(request.POST or None, instance=action, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
msg_success=_("Action removed"),
|
||||
redirect_url=reverse("compensation:detail", args=(id,)) + "#related_data"
|
||||
msg_success=_("Action removed")
|
||||
)
|
||||
|
||||
|
||||
|
@ -24,13 +24,12 @@ from konova.contexts import BaseContext
|
||||
from konova.decorators import any_group_check, default_group_required, conservation_office_group_required, \
|
||||
shared_access_required
|
||||
from konova.forms import RemoveModalForm, SimpleGeomForm, NewDocumentForm, RecordModalForm
|
||||
from konova.models import Deadline
|
||||
from konova.settings import DEFAULT_GROUP, ZB_GROUP, ETS_GROUP
|
||||
from konova.sub_settings.context_settings import TAB_TITLE_IDENTIFIER
|
||||
from konova.utils.documents import get_document, remove_document
|
||||
from konova.utils.generators import generate_qr_code
|
||||
from konova.utils.message_templates import IDENTIFIER_REPLACED, FORM_INVALID, DATA_UNSHARED, DATA_UNSHARED_EXPLANATION, \
|
||||
CANCEL_ACC_RECORDED_OR_DEDUCTED, DEDUCTION_REMOVED, DEDUCTION_ADDED
|
||||
CANCEL_ACC_RECORDED_OR_DEDUCTED
|
||||
from konova.utils.user_checks import in_group
|
||||
|
||||
|
||||
@ -90,7 +89,7 @@ def new_view(request: HttpRequest):
|
||||
)
|
||||
)
|
||||
messages.success(request, _("Eco-Account {} added").format(acc.identifier))
|
||||
return redirect("compensation:acc:detail", id=acc.id)
|
||||
return redirect("compensation:acc-detail", id=acc.id)
|
||||
else:
|
||||
messages.error(request, FORM_INVALID, extra_tags="danger",)
|
||||
else:
|
||||
@ -148,7 +147,7 @@ def edit_view(request: HttpRequest, id: str):
|
||||
# The data form takes the geom form for processing, as well as the performing user
|
||||
acc = data_form.save(request.user, geom_form)
|
||||
messages.success(request, _("Eco-Account {} edited").format(acc.identifier))
|
||||
return redirect("compensation:acc:detail", id=acc.id)
|
||||
return redirect("compensation:acc-detail", id=acc.id)
|
||||
else:
|
||||
messages.error(request, FORM_INVALID, extra_tags="danger",)
|
||||
else:
|
||||
@ -255,13 +254,13 @@ def remove_view(request: HttpRequest, id: str):
|
||||
user = request.user
|
||||
if not in_group(user, ETS_GROUP):
|
||||
messages.info(request, CANCEL_ACC_RECORDED_OR_DEDUCTED)
|
||||
return redirect("compensation:acc:detail", id=id)
|
||||
return redirect("compensation:acc-detail", id=id)
|
||||
|
||||
form = RemoveModalForm(request.POST or None, instance=acc, request=request)
|
||||
return form.process_request(
|
||||
request=request,
|
||||
msg_success=_("Eco-account removed"),
|
||||
redirect_url=reverse("compensation:acc:index"),
|
||||
redirect_url=reverse("compensation:acc-index"),
|
||||
)
|
||||
|
||||
|
||||
@ -288,8 +287,7 @@ def deduction_remove_view(request: HttpRequest, id: str, deduction_id: str):
|
||||
form = RemoveModalForm(request.POST or None, instance=eco_deduction, request=request)
|
||||
return form.process_request(
|
||||
request=request,
|
||||
msg_success=DEDUCTION_REMOVED,
|
||||
redirect_url=reverse("compensation:acc:detail", args=(id,)) + "#related_data"
|
||||
msg_success=_("Deduction removed")
|
||||
)
|
||||
|
||||
|
||||
@ -359,8 +357,7 @@ def state_new_view(request: HttpRequest, id: str):
|
||||
form = NewStateModalForm(request.POST or None, instance=acc, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
msg_success=_("State added"),
|
||||
redirect_url=reverse("compensation:acc:detail", args=(id,)) + "#related_data"
|
||||
msg_success=_("State added")
|
||||
)
|
||||
|
||||
|
||||
@ -381,8 +378,7 @@ def action_new_view(request: HttpRequest, id: str):
|
||||
form = NewActionModalForm(request.POST or None, instance=acc, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
msg_success=_("Action added"),
|
||||
redirect_url=reverse("compensation:acc:detail", args=(id,)) + "#related_data"
|
||||
msg_success=_("Action added")
|
||||
)
|
||||
|
||||
|
||||
@ -404,8 +400,7 @@ def state_remove_view(request: HttpRequest, id: str, state_id: str):
|
||||
form = RemoveModalForm(request.POST or None, instance=state, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
msg_success=_("State removed"),
|
||||
redirect_url=reverse("compensation:acc:detail", args=(id,)) + "#related_data"
|
||||
msg_success=_("State removed")
|
||||
)
|
||||
|
||||
|
||||
@ -427,31 +422,7 @@ def action_remove_view(request: HttpRequest, id: str, action_id: str):
|
||||
form = RemoveModalForm(request.POST or None, instance=action, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
msg_success=_("Action removed"),
|
||||
redirect_url=reverse("compensation:acc:detail", args=(id,)) + "#related_data"
|
||||
)
|
||||
|
||||
|
||||
@login_required
|
||||
@default_group_required
|
||||
@shared_access_required(EcoAccount, "id")
|
||||
def deadline_remove_view(request: HttpRequest, id: str, deadline_id: str):
|
||||
""" Renders a form for removing deadlines from a compensation
|
||||
|
||||
Args:
|
||||
request (HttpRequest): The incoming request
|
||||
id (str): The compensation's id
|
||||
deadline_id (str): The deadline's id
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
deadline = get_object_or_404(Deadline, id=deadline_id)
|
||||
form = RemoveModalForm(request.POST or None, instance=deadline, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
msg_success=_("Deadline removed"),
|
||||
redirect_url=reverse("compensation:acc:detail", args=(id,)) + "#related_data"
|
||||
msg_success=_("Action removed")
|
||||
)
|
||||
|
||||
|
||||
@ -472,8 +443,7 @@ def deadline_new_view(request: HttpRequest, id: str):
|
||||
form = NewDeadlineModalForm(request.POST or None, instance=acc, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
msg_success=_("Deadline added"),
|
||||
redirect_url=reverse("compensation:acc:detail", args=(id,)) + "#related_data"
|
||||
msg_success=_("Deadline added")
|
||||
)
|
||||
|
||||
|
||||
@ -493,8 +463,7 @@ def new_document_view(request: HttpRequest, id: str):
|
||||
form = NewEcoAccountDocumentForm(request.POST or None, request.FILES or None, instance=acc, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
msg_success=_("Document added"),
|
||||
redirect_url=reverse("compensation:acc:detail", args=(id,)) + "#related_data",
|
||||
msg_success=_("Document added")
|
||||
)
|
||||
|
||||
|
||||
@ -521,7 +490,7 @@ def get_document_view(request: HttpRequest, doc_id: str):
|
||||
request,
|
||||
DATA_UNSHARED
|
||||
)
|
||||
return redirect("compensation:acc:detail", id=instance.id)
|
||||
return redirect("compensation:acc-detail", id=instance.id)
|
||||
return get_document(doc)
|
||||
|
||||
|
||||
@ -564,8 +533,7 @@ def new_deduction_view(request: HttpRequest, id: str):
|
||||
form = NewDeductionModalForm(request.POST or None, instance=acc, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
msg_success=DEDUCTION_ADDED,
|
||||
redirect_url=reverse("compensation:acc:detail", args=(id,)) + "#related_data"
|
||||
msg_success=_("Deduction added")
|
||||
)
|
||||
|
||||
|
||||
@ -664,7 +632,7 @@ def share_view(request: HttpRequest, id: str, token: str):
|
||||
_("{} has been shared with you").format(obj.identifier)
|
||||
)
|
||||
obj.share_with(user)
|
||||
return redirect("compensation:acc:detail", id=id)
|
||||
return redirect("compensation:acc-detail", id=id)
|
||||
else:
|
||||
messages.error(
|
||||
request,
|
||||
|
@ -5,7 +5,6 @@ Contact: michel.peltriaux@sgdnord.rlp.de
|
||||
Created on: 09.08.21
|
||||
|
||||
"""
|
||||
from django.urls import reverse
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.http import HttpRequest
|
||||
@ -16,7 +15,6 @@ from compensation.models import Payment
|
||||
from intervention.models import Intervention
|
||||
from konova.decorators import default_group_required
|
||||
from konova.forms import RemoveModalForm
|
||||
from konova.utils.message_templates import PAYMENT_ADDED, PAYMENT_REMOVED
|
||||
|
||||
|
||||
@login_required
|
||||
@ -35,8 +33,7 @@ def new_payment_view(request: HttpRequest, intervention_id: str):
|
||||
form = NewPaymentForm(request.POST or None, instance=intervention, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
msg_success=PAYMENT_ADDED,
|
||||
redirect_url=reverse("intervention:detail", args=(intervention_id,)) + "#related_data"
|
||||
msg_success=_("Payment added")
|
||||
)
|
||||
|
||||
|
||||
@ -56,7 +53,6 @@ def payment_remove_view(request: HttpRequest, id: str):
|
||||
form = RemoveModalForm(request.POST or None, instance=payment, request=request)
|
||||
return form.process_request(
|
||||
request=request,
|
||||
msg_success=PAYMENT_REMOVED,
|
||||
redirect_url=reverse("intervention:detail", args=(payment.intervention_id,)) + "#related_data"
|
||||
msg_success=_("Payment removed"),
|
||||
)
|
||||
|
||||
|
@ -11,7 +11,6 @@ from django.contrib import messages
|
||||
from django.db import models
|
||||
from django.db.models import QuerySet
|
||||
from django.http import HttpRequest
|
||||
from django.urls import reverse
|
||||
|
||||
from compensation.models import AbstractCompensation
|
||||
from ema.managers import EmaManager
|
||||
@ -120,14 +119,6 @@ class Ema(AbstractCompensation, ShareableObjectMixin, RecordableObjectMixin):
|
||||
is_ready = is_recorded
|
||||
return is_ready
|
||||
|
||||
def get_share_link(self):
|
||||
""" Returns the share url for the object
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
return reverse("ema:share", args=(self.id, self.access_token))
|
||||
|
||||
|
||||
class EmaDocument(AbstractDocument):
|
||||
"""
|
||||
|
@ -1,4 +1,4 @@
|
||||
{% load i18n l10n fontawesome_5 humanize ksp_filters %}
|
||||
{% load i18n l10n fontawesome_5 humanize %}
|
||||
<div id="actions" class="card">
|
||||
<div class="card-header rlp-r">
|
||||
<div class="row">
|
||||
@ -20,13 +20,16 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body scroll-300 p-2">
|
||||
<div class="card-body scroll-300">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="w-25" scope="col">
|
||||
{% trans 'Action type' %}
|
||||
</th>
|
||||
<th class="w-25" scope="col">
|
||||
{% trans 'Action type details' %}
|
||||
</th>
|
||||
<th scope="col">
|
||||
{% trans 'Amount' context 'Compensation' %}
|
||||
</th>
|
||||
@ -34,33 +37,26 @@
|
||||
{% trans 'Comment' %}
|
||||
</th>
|
||||
<th scope="col">
|
||||
<span class="float-right">
|
||||
{% trans 'Action' %}
|
||||
</span>
|
||||
{% trans 'Action' %}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for action in obj.actions.all %}
|
||||
<tr>
|
||||
<td class="">
|
||||
<span>{{ action.action_type }}</span>
|
||||
{% if action.action_type_details.count > 0 %}
|
||||
<br>
|
||||
{% for detail in action.action_type_details.all %}
|
||||
<span class="badge badge-pill rlp-r" title="{{detail}}">{{detail.long_name}}</span>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
<td class="align-middle">
|
||||
{{ action.action_type }}
|
||||
</td>
|
||||
<td class="">{{ action.amount|floatformat:2|intcomma }} {{ action.unit_humanize }}</td>
|
||||
<td class="">
|
||||
<div class="scroll-150">
|
||||
{{ action.comment }}
|
||||
</div>
|
||||
<td class="align-middle">
|
||||
{% for detail in action.action_type_details.all %}
|
||||
<div class="mb-2" title="{{detail}}">{{detail.long_name}}</div>
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td class="">
|
||||
<td class="align-middle">{{ action.amount|floatformat:2|intcomma }} {{ action.unit_humanize }}</td>
|
||||
<td class="align-middle">{{ action.comment|default_if_none:"" }}</td>
|
||||
<td class="align-middle">
|
||||
{% if is_default_member and has_access %}
|
||||
<button data-form-url="{% url 'ema:action-remove' obj.id action.id %}" class="btn btn-default btn-modal float-right" title="{% trans 'Remove action' %}">
|
||||
<button data-form-url="{% url 'ema:action-remove' obj.id action.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove action' %}">
|
||||
{% fa5_icon 'trash' %}
|
||||
</button>
|
||||
{% endif %}
|
||||
|
@ -20,7 +20,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body scroll-300 p-2">
|
||||
<div class="card-body scroll-300">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
@ -34,9 +34,7 @@
|
||||
{% trans 'Comment' %}
|
||||
</th>
|
||||
<th scope="col">
|
||||
<span class="float-right">
|
||||
{% trans 'Action' %}
|
||||
</span>
|
||||
{% trans 'Action' %}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -47,14 +45,10 @@
|
||||
{% trans deadline.type_humanized %}
|
||||
</td>
|
||||
<td class="align-middle">{{ deadline.date|default_if_none:"---" }}</td>
|
||||
<td class="align-middle">
|
||||
<div class="scroll-150">
|
||||
{{ deadline.comment }}
|
||||
</div>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<td class="align-middle">{{ deadline.comment }}</td>
|
||||
<td>
|
||||
{% if is_default_member and has_access %}
|
||||
<button data-form-url="{% url 'ema:deadline-remove' obj.id deadline.id %}" class="btn btn-default btn-modal float-right" title="{% trans 'Remove deadline' %}">
|
||||
<button data-form-url="{% url 'deadline-remove' deadline.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove deadline' %}">
|
||||
{% fa5_icon 'trash' %}
|
||||
</button>
|
||||
{% endif %}
|
||||
|
@ -20,7 +20,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body scroll-300 p-2">
|
||||
<div class="card-body scroll-300">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
@ -31,9 +31,7 @@
|
||||
{% trans 'Comment' %}
|
||||
</th>
|
||||
<th scope="col">
|
||||
<span class="float-right">
|
||||
{% trans 'Action' %}
|
||||
</span>
|
||||
{% trans 'Action' %}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -45,14 +43,10 @@
|
||||
{{ doc.title }}
|
||||
</a>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<div class="scroll-150">
|
||||
{{ doc.comment }}
|
||||
</div>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<td class="align-middle">{{ doc.comment }}</td>
|
||||
<td>
|
||||
{% if is_default_member and has_access %}
|
||||
<button data-form-url="{% url 'ema:remove-doc' doc.id %}" class="btn btn-default btn-modal float-right" title="{% trans 'Remove document' %}">
|
||||
<button data-form-url="{% url 'ema:remove-doc' doc.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove document' %}">
|
||||
{% fa5_icon 'trash' %}
|
||||
</button>
|
||||
{% endif %}
|
||||
|
@ -20,44 +20,46 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% if sum_before_states > sum_after_states %}
|
||||
<div class="alert alert-danger mb-0">
|
||||
{% trans 'Missing surfaces according to states before: ' %}{{ diff_states|floatformat:2 }} m²
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="card-body scroll-300 p-2">
|
||||
<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 class="w-50" scope="col">
|
||||
<th class="w-25" scope="col">
|
||||
{% trans 'Biotope type' %}
|
||||
</th>
|
||||
<th class="w-25" scope="col">
|
||||
{% trans 'Biotope additional type' %}
|
||||
</th>
|
||||
<th scope="col">
|
||||
{% trans 'Surface' %}
|
||||
</th>
|
||||
<th scope="col">
|
||||
<span class="float-right">
|
||||
{% trans 'Action' %}
|
||||
</span>
|
||||
{% trans 'Action' %}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for state in after_states %}
|
||||
<tr>
|
||||
<td>
|
||||
<span>{{ state.biotope_type }}</span>
|
||||
{% if state.biotope_type_details.count > 0 %}
|
||||
<br>
|
||||
{% for detail in state.biotope_type_details.all %}
|
||||
<span class="badge badge-pill rlp-r" title="{{detail}}">{{detail.long_name}}</span>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
<td class="align-middle">
|
||||
{{ state.biotope_type }}
|
||||
</td>
|
||||
<td>{{ state.surface|floatformat:2 }} m²</td>
|
||||
<td>
|
||||
<td class="align-middle">
|
||||
{% for biotope_extra in state.biotope_type_details.all %}
|
||||
<div class="mb-2" title="{{ biotope_extra }}">
|
||||
{{ biotope_extra.long_name }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td class="align-middle">{{ state.surface|floatformat:2 }} m²</td>
|
||||
<td class="align-middle">
|
||||
{% if is_default_member and has_access %}
|
||||
<button data-form-url="{% url 'ema:state-remove' obj.id state.id %}" class="btn btn-default btn-modal float-right" title="{% trans 'Remove state' %}">
|
||||
<button data-form-url="{% url 'ema:state-remove' obj.id state.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove state' %}">
|
||||
{% fa5_icon 'trash' %}
|
||||
</button>
|
||||
{% endif %}
|
||||
|
@ -20,44 +20,46 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% if sum_before_states < sum_after_states %}
|
||||
<div class="alert alert-danger mb-0">
|
||||
{% trans 'Missing surfaces according to states after: ' %}{{ diff_states|floatformat:2 }} m²
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="card-body scroll-300 p-2">
|
||||
<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 class="w-50" scope="col">
|
||||
<th class="w-25" scope="col">
|
||||
{% trans 'Biotope type' %}
|
||||
</th>
|
||||
<th class="w-25" scope="col">
|
||||
{% trans 'Biotope additional type' %}
|
||||
</th>
|
||||
<th scope="col">
|
||||
{% trans 'Surface' %}
|
||||
</th>
|
||||
<th scope="col">
|
||||
<span class="float-right">
|
||||
{% trans 'Action' %}
|
||||
</span>
|
||||
{% trans 'Action' %}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for state in before_states %}
|
||||
<tr>
|
||||
<td>
|
||||
<span>{{ state.biotope_type }}</span>
|
||||
{% if state.biotope_type_details.count > 0 %}
|
||||
<br>
|
||||
{% for detail in state.biotope_type_details.all %}
|
||||
<span class="badge badge-pill rlp-r" title="{{detail}}">{{detail.long_name}}</span>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
<td class="align-middle">
|
||||
{{ state.biotope_type }}
|
||||
</td>
|
||||
<td>{{ state.surface|floatformat:2 }} m²</td>
|
||||
<td>
|
||||
<td class="align-middle">
|
||||
{% for biotope_extra in state.biotope_type_details.all %}
|
||||
<div class="mb-2" title="{{ biotope_extra }}">
|
||||
{{ biotope_extra.long_name }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td class="align-middle">{{ state.surface|floatformat:2 }} m²</td>
|
||||
<td class="align-middle">
|
||||
{% if is_default_member and has_access %}
|
||||
<button data-form-url="{% url 'ema:state-remove' obj.id state.id %}" class="btn btn-default btn-modal float-right" title="{% trans 'Remove state' %}">
|
||||
<button data-form-url="{% url 'ema:state-remove' obj.id state.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove state' %}">
|
||||
{% fa5_icon 'trash' %}
|
||||
</button>
|
||||
{% endif %}
|
||||
|
@ -95,27 +95,26 @@
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div id="related_data">
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'ema/detail/includes/states-before.html' %}
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'ema/detail/includes/states-after.html' %}
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'ema/detail/includes/states-before.html' %}
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'ema/detail/includes/actions.html' %}
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'ema/detail/includes/deadlines.html' %}
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'ema/detail/includes/states-after.html' %}
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'ema/detail/includes/documents.html' %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'ema/detail/includes/actions.html' %}
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'ema/detail/includes/deadlines.html' %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'ema/detail/includes/documents.html' %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -23,12 +23,12 @@ urlpatterns = [
|
||||
path('<id>/action/new', action_new_view, name='new-action'),
|
||||
path('<id>/state/<state_id>/remove', state_remove_view, name='state-remove'),
|
||||
path('<id>/action/<action_id>/remove', action_remove_view, name='action-remove'),
|
||||
path('<id>/deadline/<deadline_id>/remove', deadline_remove_view, name='deadline-remove'),
|
||||
path('<id>/deadline/new', deadline_new_view, name="new-deadline"),
|
||||
path('<id>/share/<token>', share_view, name='share'),
|
||||
path('<id>/share', create_share_view, name='share-create'),
|
||||
|
||||
# Documents
|
||||
# Document remove route can be found in konova/urls.py
|
||||
path('<id>/document/new/', document_new_view, name='new-doc'),
|
||||
path('document/<doc_id>', get_document_view, name='get-doc'),
|
||||
path('document/<doc_id>/remove/', remove_document_view, name='remove-doc'),
|
||||
|
42
ema/views.py
42
ema/views.py
@ -15,7 +15,6 @@ from konova.contexts import BaseContext
|
||||
from konova.decorators import conservation_office_group_required, shared_access_required
|
||||
from ema.models import Ema, EmaDocument
|
||||
from konova.forms import RemoveModalForm, SimpleGeomForm, RecordModalForm
|
||||
from konova.models import Deadline
|
||||
from konova.settings import DEFAULT_GROUP, ZB_GROUP, ETS_GROUP
|
||||
from konova.sub_settings.context_settings import TAB_TITLE_IDENTIFIER
|
||||
from konova.utils.documents import get_document, remove_document
|
||||
@ -291,8 +290,7 @@ def state_new_view(request: HttpRequest, id: str):
|
||||
form = NewStateModalForm(request.POST or None, instance=ema, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
msg_success=_("State added"),
|
||||
redirect_url=reverse("ema:detail", args=(id,)) + "#related_data"
|
||||
msg_success=_("State added")
|
||||
)
|
||||
|
||||
|
||||
@ -313,8 +311,7 @@ def action_new_view(request: HttpRequest, id: str):
|
||||
form = NewActionModalForm(request.POST or None, instance=ema, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
msg_success=_("Action added"),
|
||||
redirect_url=reverse("ema:detail", args=(id,)) + "#related_data"
|
||||
msg_success=_("Action added")
|
||||
)
|
||||
|
||||
|
||||
@ -335,8 +332,7 @@ def deadline_new_view(request: HttpRequest, id: str):
|
||||
form = NewDeadlineModalForm(request.POST or None, instance=ema, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
msg_success=_("Deadline added"),
|
||||
redirect_url=reverse("ema:detail", args=(id,)) + "#related_data"
|
||||
msg_success=_("Deadline added")
|
||||
)
|
||||
|
||||
|
||||
@ -356,8 +352,7 @@ def document_new_view(request: HttpRequest, id: str):
|
||||
form = NewEmaDocumentForm(request.POST or None, request.FILES or None, instance=ema, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
msg_success=_("Document added"),
|
||||
redirect_url=reverse("ema:detail", args=(id,)) + "#related_data"
|
||||
msg_success=_("Document added")
|
||||
)
|
||||
|
||||
|
||||
@ -427,8 +422,7 @@ def state_remove_view(request: HttpRequest, id: str, state_id: str):
|
||||
form = RemoveModalForm(request.POST or None, instance=state, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
msg_success=_("State removed"),
|
||||
redirect_url=reverse("ema:detail", args=(id,)) + "#related_data"
|
||||
msg_success=_("State removed")
|
||||
)
|
||||
|
||||
|
||||
@ -450,8 +444,7 @@ def action_remove_view(request: HttpRequest, id: str, action_id: str):
|
||||
form = RemoveModalForm(request.POST or None, instance=action, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
msg_success=_("Action removed"),
|
||||
redirect_url=reverse("ema:detail", args=(id,)) + "#related_data"
|
||||
msg_success=_("Action removed")
|
||||
)
|
||||
|
||||
|
||||
@ -572,26 +565,3 @@ def create_share_view(request: HttpRequest, id: str):
|
||||
request,
|
||||
msg_success=_("Share settings updated")
|
||||
)
|
||||
|
||||
|
||||
@login_required
|
||||
@conservation_office_group_required
|
||||
@shared_access_required(Ema, "id")
|
||||
def deadline_remove_view(request: HttpRequest, id: str, deadline_id: str):
|
||||
""" Renders a form for removing deadlines from a compensation
|
||||
|
||||
Args:
|
||||
request (HttpRequest): The incoming request
|
||||
id (str): The compensation's id
|
||||
deadline_id (str): The deadline's id
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
deadline = get_object_or_404(Deadline, id=deadline_id)
|
||||
form = RemoveModalForm(request.POST or None, instance=deadline, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
msg_success=_("Deadline removed"),
|
||||
redirect_url=reverse("ema:detail", args=(id,)) + "#related_data"
|
||||
)
|
@ -7,8 +7,6 @@ Created on: 02.12.20
|
||||
"""
|
||||
from dal import autocomplete
|
||||
from django import forms
|
||||
|
||||
from konova.utils.message_templates import EDITED_GENERAL_DATA
|
||||
from user.models import User
|
||||
from django.db import transaction
|
||||
from django.urls import reverse, reverse_lazy
|
||||
@ -335,7 +333,7 @@ class EditInterventionForm(NewInterventionForm):
|
||||
self.instance.responsible.conservation_file_number = conservation_file_number
|
||||
self.instance.responsible.save()
|
||||
|
||||
user_action = self.instance.mark_as_edited(user, edit_comment=EDITED_GENERAL_DATA)
|
||||
user_action = UserActionLogEntry.get_edited_action(user)
|
||||
|
||||
geometry = geom_form.save(user_action)
|
||||
self.instance.geometry = geometry
|
||||
@ -349,5 +347,8 @@ class EditInterventionForm(NewInterventionForm):
|
||||
self.instance.modified = user_action
|
||||
self.instance.save()
|
||||
|
||||
# Uncheck and unrecord intervention due to changed data
|
||||
self.instance.mark_as_edited(user)
|
||||
|
||||
return self.instance
|
||||
|
||||
|
@ -6,14 +6,13 @@ Created on: 27.09.21
|
||||
|
||||
"""
|
||||
from dal import autocomplete
|
||||
|
||||
from konova.utils.message_templates import DEDUCTION_ADDED
|
||||
from user.models import User, UserActionLogEntry
|
||||
from user.models import User
|
||||
from django.db import transaction
|
||||
from django import forms
|
||||
from django.urls import reverse
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from compensation.models import EcoAccount, EcoAccountDeduction
|
||||
from compensation.models import EcoAccount
|
||||
from intervention.inputs import TextToClipboardInput
|
||||
from intervention.models import Intervention, InterventionDocument
|
||||
from konova.forms import BaseModalForm, NewDocumentForm
|
||||
@ -81,8 +80,10 @@ class ShareModalForm(BaseModalForm):
|
||||
|
||||
"""
|
||||
# Initialize share_link field
|
||||
share_link = self.instance.get_share_link()
|
||||
self.share_link = self.request.build_absolute_uri(share_link)
|
||||
url_name = f"{self.instance._meta.app_label}:share"
|
||||
self.share_link = self.request.build_absolute_uri(
|
||||
reverse(url_name, args=(self.instance.id, self.instance.access_token,))
|
||||
)
|
||||
self.initialize_form_field(
|
||||
"url",
|
||||
self.share_link
|
||||
@ -367,26 +368,9 @@ class NewDeductionModalForm(BaseModalForm):
|
||||
)
|
||||
return is_valid_surface and super_result
|
||||
|
||||
def __create_deduction(self):
|
||||
""" Creates the deduction
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
with transaction.atomic():
|
||||
user_action_create = UserActionLogEntry.get_created_action(self.user)
|
||||
deduction = EcoAccountDeduction.objects.create(
|
||||
intervention=self.cleaned_data["intervention"],
|
||||
account=self.cleaned_data["account"],
|
||||
surface=self.cleaned_data["surface"],
|
||||
created=user_action_create,
|
||||
)
|
||||
return deduction
|
||||
|
||||
def save(self):
|
||||
deduction = self.__create_deduction()
|
||||
self.cleaned_data["intervention"].mark_as_edited(self.user, edit_comment=DEDUCTION_ADDED)
|
||||
self.cleaned_data["account"].mark_as_edited(self.user, edit_comment=DEDUCTION_ADDED, reset_recorded=False)
|
||||
deduction = self.instance.add_deduction(self)
|
||||
self.instance.mark_as_edited(self.user, self.request, reset_recorded=False)
|
||||
return deduction
|
||||
|
||||
|
||||
|
@ -8,7 +8,6 @@ Created on: 15.11.21
|
||||
import shutil
|
||||
|
||||
from django.contrib import messages
|
||||
from django.urls import reverse
|
||||
from django.utils import timezone
|
||||
|
||||
from user.models import User
|
||||
@ -26,7 +25,7 @@ from konova.models import generate_document_file_upload_path, AbstractDocument,
|
||||
ShareableObjectMixin, \
|
||||
RecordableObjectMixin, CheckableObjectMixin, GeoReferencedMixin
|
||||
from konova.settings import LANIS_LINK_TEMPLATE, LANIS_ZOOM_LUT, DEFAULT_SRID_RLP
|
||||
from konova.utils.message_templates import DATA_UNSHARED_EXPLANATION, DEDUCTION_ADDED
|
||||
from konova.utils.message_templates import DATA_UNSHARED_EXPLANATION
|
||||
from user.models import UserActionLogEntry
|
||||
|
||||
|
||||
@ -229,6 +228,28 @@ class Intervention(BaseObject, ShareableObjectMixin, RecordableObjectMixin, Chec
|
||||
)
|
||||
return revocation
|
||||
|
||||
def add_deduction(self, form):
|
||||
""" Adds a new deduction to the intervention
|
||||
|
||||
Args:
|
||||
form (NewDeductionModalForm): The form holding the data
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
form_data = form.cleaned_data
|
||||
user = form.user
|
||||
|
||||
with transaction.atomic():
|
||||
user_action_create = UserActionLogEntry.get_created_action(user)
|
||||
deduction = EcoAccountDeduction.objects.create(
|
||||
intervention=self,
|
||||
account=form_data["account"],
|
||||
surface=form_data["surface"],
|
||||
created=user_action_create,
|
||||
)
|
||||
return deduction
|
||||
|
||||
def mark_as_edited(self, performing_user: User, request: HttpRequest = None, edit_comment: str = None, reset_recorded: bool = True):
|
||||
""" In case the object or a related object changed, internal processes need to be started, such as
|
||||
unrecord and uncheck
|
||||
@ -242,10 +263,9 @@ class Intervention(BaseObject, ShareableObjectMixin, RecordableObjectMixin, Chec
|
||||
Returns:
|
||||
|
||||
"""
|
||||
action = super().mark_as_edited(performing_user, request, edit_comment, reset_recorded)
|
||||
super().mark_as_edited(performing_user, request, edit_comment, reset_recorded)
|
||||
if self.checked:
|
||||
self.set_unchecked()
|
||||
return action
|
||||
|
||||
def set_status_messages(self, request: HttpRequest):
|
||||
""" Setter for different information that need to be rendered
|
||||
@ -279,14 +299,6 @@ class Intervention(BaseObject, ShareableObjectMixin, RecordableObjectMixin, Chec
|
||||
and is_free_of_revocations
|
||||
return is_ready
|
||||
|
||||
def get_share_link(self):
|
||||
""" Returns the share url for the object
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
return reverse("intervention:share", args=(self.id, self.access_token))
|
||||
|
||||
|
||||
class InterventionDocument(AbstractDocument):
|
||||
"""
|
||||
|
@ -26,10 +26,6 @@ class Revocation(BaseResource):
|
||||
self.document.delete(*args, **kwargs)
|
||||
super().delete()
|
||||
|
||||
@property
|
||||
def intervention(self):
|
||||
return self.legal.intervention
|
||||
|
||||
|
||||
class RevocationDocument(AbstractDocument):
|
||||
"""
|
||||
|
@ -22,11 +22,11 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body scroll-300 p-2">
|
||||
<div class="card-body scroll-300">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="w-25" scope="col">
|
||||
<th scope="col">
|
||||
{% trans 'Identifier' %}
|
||||
</th>
|
||||
<th scope="col">
|
||||
@ -34,9 +34,7 @@
|
||||
</th>
|
||||
{% if is_default_member and has_access %}
|
||||
<th scope="col">
|
||||
<span class="float-right">
|
||||
{% trans 'Action' %}
|
||||
</span>
|
||||
{% trans 'Action' %}
|
||||
</th>
|
||||
{% endif %}
|
||||
</tr>
|
||||
@ -52,7 +50,7 @@
|
||||
<td class="align-middle">{{ comp.title }}</td>
|
||||
<td>
|
||||
{% if is_default_member and has_access %}
|
||||
<button data-form-url="{% url 'compensation:remove' comp.id %}" class="btn btn-default btn-modal float-right" title="{% trans 'Remove compensation' %}">
|
||||
<button data-form-url="{% url 'compensation:remove' comp.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove compensation' %}">
|
||||
{% fa5_icon 'trash' %}
|
||||
</button>
|
||||
{% endif %}
|
||||
|
@ -11,7 +11,7 @@
|
||||
<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 'intervention:new-deduction' obj.id %}" title="{% trans 'Add new deduction' %}">
|
||||
<button class="btn btn-outline-default btn-modal" data-form-url="{% url 'intervention:acc-new-deduction' obj.id %}" title="{% trans 'Add new deduction' %}">
|
||||
{% fa5_icon 'plus' %}
|
||||
{% fa5_icon 'tree' %}
|
||||
</button>
|
||||
@ -20,11 +20,11 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body scroll-300 p-2">
|
||||
<div class="card-body scroll-300">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="w-25" scope="col">
|
||||
<th scope="col">
|
||||
{% trans 'Account Identifier' %}
|
||||
</th>
|
||||
<th scope="col">
|
||||
@ -35,9 +35,7 @@
|
||||
</th>
|
||||
{% if is_default_member and has_access %}
|
||||
<th scope="col">
|
||||
<span class="float-right">
|
||||
{% trans 'Action' %}
|
||||
</span>
|
||||
{% trans 'Action' %}
|
||||
</th>
|
||||
{% endif %}
|
||||
</tr>
|
||||
@ -46,7 +44,7 @@
|
||||
{% for deduction in obj.deductions.all %}
|
||||
<tr {% if deduction.account.deleted %}class="align-middle alert-danger" title="{% trans 'Eco-account deleted! Deduction invalid!' %}" {% elif not deduction.account.recorded %}class="align-middle alert-danger" title="{% trans 'Eco-account not recorded! Deduction invalid!' %}" {% endif %}>
|
||||
<td class="align-middle">
|
||||
<a href="{% url 'compensation:acc:detail' deduction.account.id %}">
|
||||
<a href="{% url 'compensation:acc-detail' deduction.account.id %}">
|
||||
{% if deduction.account.deleted or not deduction.account.recorded %}
|
||||
{% fa5_icon 'exclamation-triangle' %}
|
||||
{% endif %}
|
||||
@ -57,7 +55,7 @@
|
||||
<td class="align-middle">{{ deduction.created.timestamp|default_if_none:""|naturalday}}</td>
|
||||
<td>
|
||||
{% if is_default_member and has_access %}
|
||||
<button data-form-url="{% url 'intervention:remove-deduction' obj.id deduction.id %}" class="btn btn-default btn-modal float-right" title="{% trans 'Remove Deduction' %}">
|
||||
<button data-form-url="{% url 'compensation:acc-remove-deduction' deduction.account.id deduction.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove Deduction' %}">
|
||||
{% fa5_icon 'trash' %}
|
||||
</button>
|
||||
{% endif %}
|
||||
|
@ -20,21 +20,19 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body scroll-300 p-2">
|
||||
<div class="card-body scroll-300">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">
|
||||
{% trans 'Title' %}
|
||||
</th>
|
||||
<th class="w-50" scope="col">
|
||||
<th scope="col">
|
||||
{% trans 'Comment' %}
|
||||
</th>
|
||||
{% if is_default_member and has_access %}
|
||||
<th scope="col">
|
||||
<span class="float-right">
|
||||
{% trans 'Action' %}
|
||||
</span>
|
||||
{% trans 'Action' %}
|
||||
</th>
|
||||
{% endif %}
|
||||
</tr>
|
||||
@ -42,19 +40,15 @@
|
||||
<tbody>
|
||||
{% for doc in obj.documents.all %}
|
||||
<tr>
|
||||
<td>
|
||||
<td class="align-middle">
|
||||
<a href="{% url 'intervention:get-doc' doc.id %}">
|
||||
{{ doc.title }}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<div class="scroll-150">
|
||||
{{ doc.comment }}
|
||||
</div>
|
||||
</td>
|
||||
<td class="align-middle">{{ doc.comment }}</td>
|
||||
<td>
|
||||
{% if is_default_member and has_access %}
|
||||
<button data-form-url="{% url 'intervention:remove-doc' doc.id %}" class="btn btn-default btn-modal float-right" title="{% trans 'Remove document' %}">
|
||||
<button data-form-url="{% url 'intervention:remove-doc' doc.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove document' %}">
|
||||
{% fa5_icon 'trash' %}
|
||||
</button>
|
||||
{% endif %}
|
||||
|
@ -11,7 +11,7 @@
|
||||
<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:pay:new' obj.id %}" title="{% trans 'Add new payment' %}">
|
||||
<button class="btn btn-outline-default btn-modal" data-form-url="{% url 'compensation:pay-new' obj.id %}" title="{% trans 'Add new payment' %}">
|
||||
{% fa5_icon 'plus' %}
|
||||
{% fa5_icon 'money-bill-wave' %}
|
||||
</button>
|
||||
@ -20,7 +20,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body scroll-300 p-2">
|
||||
<div class="card-body scroll-300">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
@ -30,14 +30,12 @@
|
||||
<th scope="col">
|
||||
{% trans 'Due on' %}
|
||||
</th>
|
||||
<th class="w-50" scope="col">
|
||||
<th scope="col">
|
||||
{% trans 'Comment' %}
|
||||
</th>
|
||||
{% if is_default_member and has_access %}
|
||||
<th scope="col">
|
||||
<span class="float-right">
|
||||
{% trans 'Action' %}
|
||||
</span>
|
||||
{% trans 'Action' %}
|
||||
</th>
|
||||
{% endif %}
|
||||
</tr>
|
||||
@ -49,14 +47,10 @@
|
||||
{{ pay.amount|floatformat:2 }} €
|
||||
</td>
|
||||
<td class="align-middle">{{ pay.due_on|default_if_none:"---" }}</td>
|
||||
<td class="align-middle">
|
||||
<div class="scroll-150">
|
||||
{{ pay.comment }}
|
||||
</div>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<td class="align-middle">{{ pay.comment }}</td>
|
||||
<td>
|
||||
{% if is_default_member and has_access %}
|
||||
<button data-form-url="{% url 'compensation:pay:remove' pay.id %}" class="btn btn-default btn-modal float-right" title="{% trans 'Remove payment' %}">
|
||||
<button data-form-url="{% url 'compensation:pay-remove' pay.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove payment' %}">
|
||||
{% fa5_icon 'trash' %}
|
||||
</button>
|
||||
{% endif %}
|
||||
|
@ -23,7 +23,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body scroll-300 p-2">
|
||||
<div class="card-body scroll-300">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
@ -38,9 +38,7 @@
|
||||
</th>
|
||||
{% if is_default_member and has_access %}
|
||||
<th scope="col">
|
||||
<span class="float-right">
|
||||
{% trans 'Action' %}
|
||||
</span>
|
||||
{% trans 'Action' %}
|
||||
</th>
|
||||
{% endif %}
|
||||
</tr>
|
||||
@ -58,14 +56,10 @@
|
||||
</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<div class="scroll-150">
|
||||
{{ rev.comment }}
|
||||
</div>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<td class="align-middle">{{ rev.comment }}</td>
|
||||
<td>
|
||||
{% if is_default_member and has_access %}
|
||||
<button data-form-url="{% url 'intervention:remove-revocation' rev.id %}" class="btn btn-default btn-modal float-right" title="{% trans 'Remove revocation' %}">
|
||||
<button data-form-url="{% url 'intervention:remove-revocation' rev.id %}" class="btn btn-default btn-modal" title="{% trans 'Remove revocation' %}">
|
||||
{% fa5_icon 'trash' %}
|
||||
</button>
|
||||
{% endif %}
|
||||
|
@ -136,29 +136,27 @@
|
||||
</div>
|
||||
<hr>
|
||||
|
||||
<div id="related_data">
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'intervention/detail/includes/compensations.html' %}
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'intervention/detail/includes/payments.html' %}
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'intervention/detail/includes/compensations.html' %}
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'intervention/detail/includes/deductions.html' %}
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'intervention/detail/includes/revocation.html' %}
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'intervention/detail/includes/payments.html' %}
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'intervention/detail/includes/documents.html' %}
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'intervention/detail/includes/deductions.html' %}
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'intervention/detail/includes/revocation.html' %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
{% include 'intervention/detail/includes/documents.html' %}
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-12 col-lg-6">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -62,7 +62,7 @@
|
||||
<th scope="row">{% trans 'Deductions of eco-accounts' %}</th>
|
||||
<td class="align-middle">
|
||||
{% for deduction in deductions %}
|
||||
<a href="{% url 'compensation:acc:report' deduction.account.id %}">
|
||||
<a href="{% url 'compensation:acc-report' deduction.account.id %}">
|
||||
{{deduction.account.identifier}} - {{deduction.account.title}}
|
||||
</a>
|
||||
<br>
|
||||
|
@ -210,7 +210,7 @@ class InterventionWorkflowTestCase(BaseWorkflowTestCase):
|
||||
# Attention: Despite the fact, this url refers to a compensation app route, we test it here for the interventions.
|
||||
# Reason: A payment is some kind of compensation for an intervention. Therefore it lives inside the compensation app.
|
||||
# BUT: Payments are added on the intervention detail page. Therefore it's part of a regular intervention workflow.
|
||||
new_payment_url = reverse("compensation:pay:new", args=(self.intervention.id,))
|
||||
new_payment_url = reverse("compensation:pay-new", args=(self.intervention.id,))
|
||||
|
||||
# Make sure there are no payments on the intervention, yet
|
||||
self.assertEqual(0, self.intervention.payments.count())
|
||||
@ -251,7 +251,7 @@ class InterventionWorkflowTestCase(BaseWorkflowTestCase):
|
||||
|
||||
"""
|
||||
# Create removing url for the payment
|
||||
remove_url = reverse("compensation:pay:remove", args=(payment.id,))
|
||||
remove_url = reverse("compensation:pay-remove", args=(payment.id,))
|
||||
post_data = {
|
||||
"confirm": True,
|
||||
}
|
||||
@ -390,7 +390,7 @@ class InterventionWorkflowTestCase(BaseWorkflowTestCase):
|
||||
|
||||
"""
|
||||
# Create the url for creating a new deduction
|
||||
new_url = reverse("compensation:acc:new-deduction", args=(self.eco_account.id,))
|
||||
new_url = reverse("compensation:acc-new-deduction", args=(self.eco_account.id,))
|
||||
|
||||
# Prepare the form data
|
||||
test_surface = 100.00
|
||||
@ -415,7 +415,7 @@ class InterventionWorkflowTestCase(BaseWorkflowTestCase):
|
||||
|
||||
"""
|
||||
# Prepare url for deleting of this deduction
|
||||
delete_url = reverse("compensation:acc:remove-deduction", args=(self.eco_account.id, deduction.id,))
|
||||
delete_url = reverse("compensation:acc-remove-deduction", args=(self.eco_account.id, deduction.id,))
|
||||
post_data = {
|
||||
"confirm": True
|
||||
}
|
||||
|
@ -9,8 +9,7 @@ from django.urls import path
|
||||
|
||||
from intervention.views import index_view, new_view, detail_view, edit_view, remove_view, new_document_view, share_view, \
|
||||
create_share_view, remove_revocation_view, new_revocation_view, check_view, log_view, new_deduction_view, \
|
||||
record_view, remove_document_view, get_document_view, get_revocation_view, new_id_view, report_view, \
|
||||
remove_deduction_view
|
||||
record_view, remove_document_view, get_document_view, get_revocation_view, new_id_view, report_view
|
||||
|
||||
app_name = "intervention"
|
||||
urlpatterns = [
|
||||
@ -33,8 +32,7 @@ urlpatterns = [
|
||||
path('document/<doc_id>/remove/', remove_document_view, name='remove-doc'),
|
||||
|
||||
# Deductions
|
||||
path('<id>/deduction/new', new_deduction_view, name='new-deduction'),
|
||||
path('<id>/remove/<deduction_id>', remove_deduction_view, name='remove-deduction'),
|
||||
path('<id>/deduction/new', new_deduction_view, name='acc-new-deduction'),
|
||||
|
||||
# Revocation routes
|
||||
path('<id>/revocation/new', new_revocation_view, name='new-revocation'),
|
||||
|
@ -1,7 +1,6 @@
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.core.exceptions import ObjectDoesNotExist
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.http import HttpRequest, JsonResponse, Http404
|
||||
from django.http import HttpRequest, JsonResponse
|
||||
from django.shortcuts import render
|
||||
|
||||
from intervention.forms.forms import NewInterventionForm, EditInterventionForm
|
||||
@ -16,7 +15,7 @@ from konova.sub_settings.context_settings import TAB_TITLE_IDENTIFIER
|
||||
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, \
|
||||
CHECKED_RECORDED_RESET, DEDUCTION_REMOVED, DEDUCTION_ADDED
|
||||
CHECKED_RECORDED_RESET
|
||||
from konova.utils.user_checks import in_group
|
||||
|
||||
|
||||
@ -130,8 +129,7 @@ def new_document_view(request: HttpRequest, id: str):
|
||||
form = NewInterventionDocumentForm(request.POST or None, request.FILES or None, instance=intervention, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
msg_success=_("Document added"),
|
||||
redirect_url=reverse("intervention:detail", args=(id,)) + "#related_data"
|
||||
msg_success=_("Document added")
|
||||
)
|
||||
|
||||
|
||||
@ -350,12 +348,10 @@ def remove_revocation_view(request: HttpRequest, id: str):
|
||||
|
||||
"""
|
||||
obj = Revocation.objects.get(id=id)
|
||||
|
||||
form = RemoveModalForm(request.POST or None, instance=obj, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
_("Revocation removed"),
|
||||
redirect_url=reverse("intervention:detail", args=(obj.intervention.id,)) + "#related_data"
|
||||
)
|
||||
|
||||
|
||||
@ -459,8 +455,7 @@ def new_revocation_view(request: HttpRequest, id: str):
|
||||
form = NewRevocationModalForm(request.POST or None, request.FILES or None, instance=intervention, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
msg_success=_("Revocation added"),
|
||||
redirect_url=reverse("intervention:detail", args=(id,)) + "#related_data"
|
||||
msg_success=_("Revocation added")
|
||||
)
|
||||
|
||||
|
||||
@ -507,36 +502,7 @@ def new_deduction_view(request: HttpRequest, id: str):
|
||||
form = NewDeductionModalForm(request.POST or None, instance=intervention, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
msg_success=DEDUCTION_ADDED,
|
||||
redirect_url=reverse("intervention:detail", args=(id,)) + "#related_data",
|
||||
)
|
||||
|
||||
|
||||
@login_required
|
||||
@default_group_required
|
||||
@shared_access_required(Intervention, "id")
|
||||
def remove_deduction_view(request: HttpRequest, id: str, deduction_id: str):
|
||||
""" Renders a modal view for removing deductions
|
||||
|
||||
Args:
|
||||
request (HttpRequest): The incoming request
|
||||
id (str): The intervention's id
|
||||
deduction_id (str): The deduction's id
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
intervention = get_object_or_404(Intervention, id=id)
|
||||
try:
|
||||
eco_deduction = intervention.deductions.get(id=deduction_id)
|
||||
except ObjectDoesNotExist:
|
||||
raise Http404("Unknown deduction")
|
||||
|
||||
form = RemoveModalForm(request.POST or None, instance=eco_deduction, request=request)
|
||||
return form.process_request(
|
||||
request=request,
|
||||
msg_success=DEDUCTION_REMOVED,
|
||||
redirect_url=reverse("intervention:detail", args=(id,)) + "#related_data"
|
||||
msg_success=_("Deduction added")
|
||||
)
|
||||
|
||||
|
||||
|
@ -327,7 +327,7 @@ class RemoveModalForm(BaseModalForm):
|
||||
self.instance.mark_as_deleted(self.user)
|
||||
else:
|
||||
# If the class does not provide restorable delete functionality, we must delete the entry finally
|
||||
self.instance.delete(self.user)
|
||||
self.instance.delete()
|
||||
|
||||
|
||||
class NewDocumentForm(BaseModalForm):
|
||||
|
@ -275,9 +275,9 @@ class RecordableObjectMixin(models.Model):
|
||||
Returns:
|
||||
|
||||
"""
|
||||
edit_action = UserActionLogEntry.get_edited_action(performing_user, edit_comment)
|
||||
self.modified = edit_action
|
||||
self.log.add(edit_action)
|
||||
action = UserActionLogEntry.get_edited_action(performing_user, edit_comment)
|
||||
self.modified = action
|
||||
self.log.add(action)
|
||||
self.save()
|
||||
|
||||
if self.recorded and reset_recorded:
|
||||
@ -288,7 +288,6 @@ class RecordableObjectMixin(models.Model):
|
||||
request,
|
||||
CHECKED_RECORDED_RESET
|
||||
)
|
||||
return edit_action
|
||||
|
||||
@abstractmethod
|
||||
def is_ready_for_publish(self) -> bool:
|
||||
@ -480,15 +479,6 @@ class ShareableObjectMixin(models.Model):
|
||||
"""
|
||||
return self.users.all()
|
||||
|
||||
@abstractmethod
|
||||
def get_share_url(self):
|
||||
""" Returns the share url for the object
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
raise NotImplementedError("Must be implemented in subclasses!")
|
||||
|
||||
|
||||
class GeoReferencedMixin(models.Model):
|
||||
geometry = models.ForeignKey("konova.Geometry", null=True, blank=True, on_delete=models.SET_NULL)
|
||||
|
@ -4,7 +4,7 @@
|
||||
{% trans 'Eco-account' %}
|
||||
</h4>
|
||||
<div class="row">
|
||||
<a class="text-decoration-none" href="{% url 'compensation:acc:index' %}">
|
||||
<a class="text-decoration-none" href="{% url 'compensation:acc-index' %}">
|
||||
<div class="col-sm-5">
|
||||
<div class="qs-box d-flex justify-content-center align-items-center">
|
||||
{% fa5_icon 'tree' %}
|
||||
@ -26,12 +26,12 @@
|
||||
<div class="col-sm-12 col-lg">
|
||||
<div class="col-sm">
|
||||
<div class="row my-1">
|
||||
<a href="{% url 'compensation:acc:new' %}">
|
||||
<a href="{% url 'compensation:acc-new' %}">
|
||||
<button class="btn btn-default">{% fa5_icon 'plus' %} {% trans 'Create' %}</button>
|
||||
</a>
|
||||
</div>
|
||||
<div class="row my-1">
|
||||
<a href="{% url 'compensation:acc:index' %}">
|
||||
<a href="{% url 'compensation:acc-index' %}">
|
||||
<button class="btn btn-default">{% fa5_icon 'eye' %} {% trans 'Show' %}</button>
|
||||
</a>
|
||||
</div>
|
||||
|
@ -52,19 +52,3 @@ def default_if_zero(val1, val2):
|
||||
|
||||
"""
|
||||
return val1 if val1 > 0 else val2
|
||||
|
||||
|
||||
@register.filter("shorten")
|
||||
def shorten(val, length):
|
||||
""" Returns val shortened to the first number of length character
|
||||
|
||||
Args:
|
||||
val (str): The value
|
||||
length (int): The number of characters left
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
if val is not None and len(val) > length:
|
||||
val = f"{val[:length]}..."
|
||||
return val
|
||||
|
@ -23,7 +23,7 @@ from konova.autocompletes import EcoAccountAutocomplete, \
|
||||
ShareUserAutocomplete, BiotopeExtraCodeAutocomplete, CompensationActionDetailCodeAutocomplete
|
||||
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
|
||||
from konova.views import logout_view, home_view, remove_deadline_view
|
||||
|
||||
sso_client = KonovaSSOClient(SSO_SERVER, SSO_PUBLIC_KEY, SSO_PRIVATE_KEY)
|
||||
urlpatterns = [
|
||||
@ -40,6 +40,9 @@ urlpatterns = [
|
||||
path('analysis/', include("analysis.urls")),
|
||||
path('api/', include("api.urls")),
|
||||
|
||||
# Generic deadline routes
|
||||
path('deadline/<id>/remove', remove_deadline_view, name="deadline-remove"),
|
||||
|
||||
# Autocomplete paths for all apps
|
||||
path("atcmplt/eco-accounts", EcoAccountAutocomplete.as_view(), name="accounts-autocomplete"),
|
||||
path("atcmplt/interventions", InterventionAutocomplete.as_view(), name="interventions-autocomplete"),
|
||||
|
@ -21,14 +21,6 @@ CHECKED_RECORDED_RESET = _("Status of Checked and Recorded reseted")
|
||||
# ECO ACCOUNT
|
||||
CANCEL_ACC_RECORDED_OR_DEDUCTED = _("Action canceled. Eco account is recorded or deductions exist. Only conservation office member can perform this action.")
|
||||
|
||||
# DEDUCTIONS
|
||||
DEDUCTION_ADDED = _("Deduction added")
|
||||
DEDUCTION_REMOVED = _("Deduction removed")
|
||||
|
||||
# PAYMENTS
|
||||
PAYMENT_ADDED = _("Payment added")
|
||||
PAYMENT_REMOVED = _("Payment removed")
|
||||
|
||||
# Edited
|
||||
EDITED_GENERAL_DATA = _("Edited general data")
|
||||
ADDED_COMPENSATION_STATE = _("Added compensation state")
|
||||
|
@ -99,6 +99,25 @@ def home_view(request: HttpRequest):
|
||||
return render(request, template, context)
|
||||
|
||||
|
||||
@login_required
|
||||
def remove_deadline_view(request: HttpRequest, id:str):
|
||||
""" Renders a modal form for removing a deadline object
|
||||
|
||||
Args:
|
||||
request (HttpRequest): The incoming request
|
||||
id (str): The deadline id
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
deadline = get_object_or_404(Deadline, id=id)
|
||||
form = RemoveModalForm(request.POST or None, instance=deadline, request=request)
|
||||
return form.process_request(
|
||||
request,
|
||||
msg_success=_("Deadline removed")
|
||||
)
|
||||
|
||||
|
||||
def get_404_view(request: HttpRequest, exception=None):
|
||||
""" Returns a 404 handling view
|
||||
|
||||
|
Binary file not shown.
@ -5,10 +5,10 @@
|
||||
#
|
||||
#: compensation/filters.py:122 compensation/forms/modalForms.py:35
|
||||
#: compensation/forms/modalForms.py:46 compensation/forms/modalForms.py:62
|
||||
#: compensation/forms/modalForms.py:256 compensation/forms/modalForms.py:350
|
||||
#: compensation/forms/modalForms.py:256 compensation/forms/modalForms.py:351
|
||||
#: intervention/forms/forms.py:52 intervention/forms/forms.py:154
|
||||
#: intervention/forms/forms.py:166 intervention/forms/modalForms.py:123
|
||||
#: intervention/forms/modalForms.py:136 intervention/forms/modalForms.py:149
|
||||
#: intervention/forms/forms.py:166 intervention/forms/modalForms.py:125
|
||||
#: intervention/forms/modalForms.py:138 intervention/forms/modalForms.py:151
|
||||
#: konova/filters/mixins.py:53 konova/filters/mixins.py:54
|
||||
#: konova/filters/mixins.py:81 konova/filters/mixins.py:82
|
||||
#: konova/filters/mixins.py:94 konova/filters/mixins.py:95
|
||||
@ -26,7 +26,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-02-02 14:35+0100\n"
|
||||
"POT-Creation-Date: 2022-01-31 12:41+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"
|
||||
@ -140,7 +140,7 @@ msgstr "Zuständigkeitsbereich"
|
||||
#: compensation/templates/compensation/detail/compensation/view.html:63
|
||||
#: intervention/tables.py:33
|
||||
#: intervention/templates/intervention/detail/view.html:68
|
||||
#: user/models/user_action.py:20
|
||||
#: user/models/user_action.py:18
|
||||
msgid "Checked"
|
||||
msgstr "Geprüft"
|
||||
|
||||
@ -159,7 +159,7 @@ msgstr "Geprüft"
|
||||
#: ema/tables.py:38 ema/templates/ema/detail/view.html:35
|
||||
#: intervention/tables.py:39
|
||||
#: intervention/templates/intervention/detail/view.html:82
|
||||
#: user/models/user_action.py:21
|
||||
#: user/models/user_action.py:19
|
||||
msgid "Recorded"
|
||||
msgstr "Verzeichnet"
|
||||
|
||||
@ -214,13 +214,13 @@ msgstr "Abbuchungen"
|
||||
#: analysis/templates/analysis/reports/includes/eco_account/deductions.html:9
|
||||
#: analysis/templates/analysis/reports/includes/eco_account/deductions.html:11
|
||||
#: compensation/forms/modalForms.py:151
|
||||
#: 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
|
||||
#: ema/templates/ema/detail/includes/states-after.html:36
|
||||
#: ema/templates/ema/detail/includes/states-before.html:36
|
||||
#: intervention/forms/modalForms.py:293
|
||||
#: 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/states-after.html:39
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:39
|
||||
#: ema/templates/ema/detail/includes/states-after.html:39
|
||||
#: ema/templates/ema/detail/includes/states-before.html:39
|
||||
#: intervention/forms/modalForms.py:295
|
||||
msgid "Surface"
|
||||
msgstr "Fläche"
|
||||
|
||||
@ -284,7 +284,7 @@ msgid "Type"
|
||||
msgstr "Typ"
|
||||
|
||||
#: analysis/templates/analysis/reports/includes/old_data/amount.html:24
|
||||
#: intervention/forms/modalForms.py:304 intervention/forms/modalForms.py:311
|
||||
#: intervention/forms/modalForms.py:306 intervention/forms/modalForms.py:313
|
||||
#: intervention/tables.py:89
|
||||
#: intervention/templates/intervention/detail/view.html:19
|
||||
#: konova/templates/konova/includes/quickstart/interventions.html:4
|
||||
@ -295,7 +295,7 @@ msgstr "Eingriff"
|
||||
#: analysis/templates/analysis/reports/includes/old_data/amount.html:34
|
||||
#: compensation/tables.py:226
|
||||
#: compensation/templates/compensation/detail/eco_account/view.html:19
|
||||
#: intervention/forms/modalForms.py:277 intervention/forms/modalForms.py:284
|
||||
#: intervention/forms/modalForms.py:279 intervention/forms/modalForms.py:286
|
||||
#: konova/templates/konova/includes/quickstart/ecoaccounts.html:4
|
||||
#: templates/navbars/navbar.html:34
|
||||
msgid "Eco-account"
|
||||
@ -354,8 +354,8 @@ msgid "Compensation XY; Location ABC"
|
||||
msgstr "Kompensation XY; Flur ABC"
|
||||
|
||||
#: compensation/forms/forms.py:57 compensation/forms/modalForms.py:61
|
||||
#: compensation/forms/modalForms.py:255 compensation/forms/modalForms.py:349
|
||||
#: compensation/templates/compensation/detail/compensation/includes/actions.html:35
|
||||
#: compensation/forms/modalForms.py:255 compensation/forms/modalForms.py:350
|
||||
#: compensation/templates/compensation/detail/compensation/includes/actions.html:37
|
||||
#: 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
|
||||
@ -364,7 +364,7 @@ msgstr "Kompensation XY; Flur ABC"
|
||||
#: 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:178 intervention/forms/modalForms.py:148
|
||||
#: intervention/forms/forms.py:178 intervention/forms/modalForms.py:150
|
||||
#: intervention/templates/intervention/detail/includes/documents.html:31
|
||||
#: intervention/templates/intervention/detail/includes/payments.html:34
|
||||
#: intervention/templates/intervention/detail/includes/revocation.html:38
|
||||
@ -372,8 +372,7 @@ msgstr "Kompensation XY; Flur ABC"
|
||||
msgid "Comment"
|
||||
msgstr "Kommentar"
|
||||
|
||||
#: compensation/forms/forms.py:59 compensation/forms/modalForms.py:351
|
||||
#: intervention/forms/forms.py:180
|
||||
#: compensation/forms/forms.py:59 intervention/forms/forms.py:180
|
||||
msgid "Additional comment"
|
||||
msgstr "Zusätzlicher Kommentar"
|
||||
|
||||
@ -432,7 +431,7 @@ msgstr "kompensiert Eingriff"
|
||||
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:184 compensation/views/compensation.py:92
|
||||
#: compensation/forms/forms.py:184 compensation/views/compensation.py:91
|
||||
msgid "New compensation"
|
||||
msgstr "Neue Kompensation"
|
||||
|
||||
@ -458,7 +457,7 @@ msgstr "Vereinbarungsdatum"
|
||||
msgid "When did the parties agree on this?"
|
||||
msgstr "Wann wurde dieses Ökokonto offiziell vereinbart?"
|
||||
|
||||
#: compensation/forms/forms.py:340 compensation/views/eco_account.py:102
|
||||
#: compensation/forms/forms.py:340 compensation/views/eco_account.py:101
|
||||
msgid "New Eco-Account"
|
||||
msgstr "Neues Ökokonto"
|
||||
|
||||
@ -484,7 +483,8 @@ msgid "Due on which date"
|
||||
msgstr "Zahlung wird an diesem Datum erwartet"
|
||||
|
||||
#: compensation/forms/modalForms.py:63 compensation/forms/modalForms.py:257
|
||||
#: intervention/forms/modalForms.py:150 konova/forms.py:375
|
||||
#: compensation/forms/modalForms.py:352 intervention/forms/modalForms.py:152
|
||||
#: konova/forms.py:375
|
||||
msgid "Additional comment, maximum {} letters"
|
||||
msgstr "Zusätzlicher Kommentar, maximal {} Zeichen"
|
||||
|
||||
@ -505,6 +505,12 @@ msgid "Select the biotope type"
|
||||
msgstr "Biotoptyp wählen"
|
||||
|
||||
#: compensation/forms/modalForms.py:132 compensation/forms/modalForms.py:144
|
||||
#: 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
|
||||
#: ema/templates/ema/detail/includes/states-after.html:36
|
||||
#: ema/templates/ema/detail/includes/states-before.html:36
|
||||
msgid "Biotope additional type"
|
||||
msgstr "Zusatzbezeichnung"
|
||||
|
||||
@ -512,7 +518,7 @@ msgstr "Zusatzbezeichnung"
|
||||
msgid "Select an additional biotope type"
|
||||
msgstr "Zusatzbezeichnung wählen"
|
||||
|
||||
#: compensation/forms/modalForms.py:154 intervention/forms/modalForms.py:295
|
||||
#: compensation/forms/modalForms.py:154 intervention/forms/modalForms.py:297
|
||||
msgid "in m²"
|
||||
msgstr ""
|
||||
|
||||
@ -540,7 +546,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:122
|
||||
#: intervention/forms/modalForms.py:124
|
||||
msgid "Date"
|
||||
msgstr "Datum"
|
||||
|
||||
@ -565,27 +571,27 @@ msgid "Select the action type"
|
||||
msgstr "Maßnahmentyp wählen"
|
||||
|
||||
#: compensation/forms/modalForms.py:300
|
||||
#: compensation/templates/compensation/detail/compensation/includes/actions.html:40
|
||||
#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:39
|
||||
#: compensation/templates/compensation/detail/compensation/includes/documents.html:36
|
||||
#: compensation/templates/compensation/detail/compensation/includes/states-after.html:41
|
||||
#: compensation/templates/compensation/detail/compensation/includes/states-before.html:41
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/actions.html:39
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:38
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:41
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/documents.html:35
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:41
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:41
|
||||
#: ema/templates/ema/detail/includes/actions.html:38
|
||||
#: ema/templates/ema/detail/includes/deadlines.html:38
|
||||
#: ema/templates/ema/detail/includes/documents.html:35
|
||||
#: ema/templates/ema/detail/includes/states-after.html:40
|
||||
#: ema/templates/ema/detail/includes/states-before.html:40
|
||||
#: intervention/templates/intervention/detail/includes/compensations.html:38
|
||||
#: intervention/templates/intervention/detail/includes/deductions.html:39
|
||||
#: intervention/templates/intervention/detail/includes/documents.html:36
|
||||
#: intervention/templates/intervention/detail/includes/payments.html:39
|
||||
#: intervention/templates/intervention/detail/includes/revocation.html:43
|
||||
#: compensation/templates/compensation/detail/compensation/includes/actions.html:41
|
||||
#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:38
|
||||
#: compensation/templates/compensation/detail/compensation/includes/documents.html:35
|
||||
#: compensation/templates/compensation/detail/compensation/includes/states-after.html:43
|
||||
#: compensation/templates/compensation/detail/compensation/includes/states-before.html:43
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/actions.html:38
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:37
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:40
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/documents.html:34
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:43
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:43
|
||||
#: ema/templates/ema/detail/includes/actions.html:37
|
||||
#: ema/templates/ema/detail/includes/deadlines.html:37
|
||||
#: ema/templates/ema/detail/includes/documents.html:34
|
||||
#: ema/templates/ema/detail/includes/states-after.html:42
|
||||
#: ema/templates/ema/detail/includes/states-before.html:42
|
||||
#: intervention/templates/intervention/detail/includes/compensations.html:37
|
||||
#: intervention/templates/intervention/detail/includes/deductions.html:38
|
||||
#: intervention/templates/intervention/detail/includes/documents.html:35
|
||||
#: intervention/templates/intervention/detail/includes/payments.html:38
|
||||
#: intervention/templates/intervention/detail/includes/revocation.html:42
|
||||
#: templates/log.html:10
|
||||
msgid "Action"
|
||||
msgstr "Aktionen"
|
||||
@ -610,11 +616,11 @@ msgstr "Einheit wählen"
|
||||
msgid "Insert the amount"
|
||||
msgstr "Menge eingeben"
|
||||
|
||||
#: compensation/forms/modalForms.py:362
|
||||
#: compensation/forms/modalForms.py:363
|
||||
msgid "New action"
|
||||
msgstr "Neue Maßnahme"
|
||||
|
||||
#: compensation/forms/modalForms.py:363
|
||||
#: compensation/forms/modalForms.py:364
|
||||
msgid "Insert data for the new action"
|
||||
msgstr "Geben Sie die Daten der neuen Maßnahme ein"
|
||||
|
||||
@ -646,14 +652,14 @@ msgstr "Stück"
|
||||
msgid "Added deadline"
|
||||
msgstr "Frist/Termin hinzugefügt"
|
||||
|
||||
#: compensation/models/eco_account.py:57
|
||||
#: compensation/models/eco_account.py:55
|
||||
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/eco_account.py:64
|
||||
#: compensation/models/eco_account.py:62
|
||||
msgid ""
|
||||
"Deductable surface can not be smaller than the sum of already existing "
|
||||
"deductions. Please contact the responsible users for the deductions!"
|
||||
@ -686,7 +692,7 @@ msgstr "Am {} von {} geprüft worden"
|
||||
|
||||
#: compensation/tables.py:130
|
||||
#: compensation/templates/compensation/detail/compensation/view.html:80
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:58
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:56
|
||||
#: compensation/templates/compensation/detail/eco_account/view.html:47
|
||||
#: ema/tables.py:102 ema/templates/ema/detail/view.html:38
|
||||
#: intervention/tables.py:132
|
||||
@ -724,35 +730,39 @@ msgid "Not recorded yet. Can not be used for deductions, yet."
|
||||
msgstr ""
|
||||
"Noch nicht verzeichnet. Kann noch nicht für Abbuchungen genutzt werden."
|
||||
|
||||
#: compensation/templates/compensation/detail/compensation/includes/actions.html:9
|
||||
#: compensation/templates/compensation/detail/compensation/includes/actions.html:8
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/actions.html:8
|
||||
#: ema/templates/ema/detail/includes/actions.html:8
|
||||
msgctxt "Compensation"
|
||||
msgid "Actions"
|
||||
msgstr "Maßnahmen"
|
||||
|
||||
#: compensation/templates/compensation/detail/compensation/includes/actions.html:15
|
||||
#: compensation/templates/compensation/detail/compensation/includes/actions.html:14
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/actions.html:14
|
||||
#: ema/templates/ema/detail/includes/actions.html:14
|
||||
msgid "Add new action"
|
||||
msgstr "Neue Maßnahme hinzufügen"
|
||||
|
||||
#: compensation/templates/compensation/detail/compensation/includes/actions.html:29
|
||||
#: compensation/templates/compensation/detail/compensation/includes/actions.html:28
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/actions.html:28
|
||||
#: ema/templates/ema/detail/includes/actions.html:28
|
||||
msgid "Action type"
|
||||
msgstr "Maßnahmentyp"
|
||||
|
||||
#: compensation/templates/compensation/detail/compensation/includes/actions.html:32
|
||||
#: compensation/templates/compensation/detail/compensation/includes/actions.html:31
|
||||
msgid "Action type details"
|
||||
msgstr "Zusatzmerkmale"
|
||||
|
||||
#: compensation/templates/compensation/detail/compensation/includes/actions.html:34
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/actions.html:31
|
||||
#: ema/templates/ema/detail/includes/actions.html:31
|
||||
msgctxt "Compensation"
|
||||
msgid "Amount"
|
||||
msgstr "Menge"
|
||||
|
||||
#: compensation/templates/compensation/detail/compensation/includes/actions.html:66
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/actions.html:65
|
||||
#: ema/templates/ema/detail/includes/actions.html:63
|
||||
#: compensation/templates/compensation/detail/compensation/includes/actions.html:61
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/actions.html:53
|
||||
#: ema/templates/ema/detail/includes/actions.html:51
|
||||
msgid "Remove action"
|
||||
msgstr "Maßnahme entfernen"
|
||||
|
||||
@ -804,9 +814,9 @@ msgstr "Termine und Fristen"
|
||||
msgid "Add new deadline"
|
||||
msgstr "Frist/Termin hinzufügen"
|
||||
|
||||
#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:59
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:57
|
||||
#: ema/templates/ema/detail/includes/deadlines.html:57
|
||||
#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:53
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:51
|
||||
#: ema/templates/ema/detail/includes/deadlines.html:51
|
||||
msgid "Remove deadline"
|
||||
msgstr "Frist löschen"
|
||||
|
||||
@ -825,10 +835,10 @@ msgstr "Dokumente"
|
||||
msgid "Add new document"
|
||||
msgstr "Neues Dokument hinzufügen"
|
||||
|
||||
#: compensation/templates/compensation/detail/compensation/includes/documents.html:57
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/documents.html:55
|
||||
#: ema/templates/ema/detail/includes/documents.html:55
|
||||
#: intervention/templates/intervention/detail/includes/documents.html:57
|
||||
#: compensation/templates/compensation/detail/compensation/includes/documents.html:51
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/documents.html:49
|
||||
#: ema/templates/ema/detail/includes/documents.html:49
|
||||
#: intervention/templates/intervention/detail/includes/documents.html:51
|
||||
msgid "Remove document"
|
||||
msgstr "Dokument löschen"
|
||||
|
||||
@ -845,9 +855,9 @@ msgstr "Zielzustand"
|
||||
msgid "Add new state after"
|
||||
msgstr "Neuen Zielzustand hinzufügen"
|
||||
|
||||
#: compensation/templates/compensation/detail/compensation/includes/states-after.html:25
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:25
|
||||
#: ema/templates/ema/detail/includes/states-after.html:25
|
||||
#: compensation/templates/compensation/detail/compensation/includes/states-after.html:26
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:26
|
||||
#: ema/templates/ema/detail/includes/states-after.html:26
|
||||
msgid "Missing surfaces according to states before: "
|
||||
msgstr "Fehlende Flächenmengen laut Ausgangszustand: "
|
||||
|
||||
@ -860,12 +870,12 @@ msgstr "Fehlende Flächenmengen laut Ausgangszustand: "
|
||||
msgid "Biotope type"
|
||||
msgstr "Biotoptyp"
|
||||
|
||||
#: compensation/templates/compensation/detail/compensation/includes/states-after.html:62
|
||||
#: compensation/templates/compensation/detail/compensation/includes/states-before.html:62
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:62
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:62
|
||||
#: ema/templates/ema/detail/includes/states-after.html:60
|
||||
#: ema/templates/ema/detail/includes/states-before.html:60
|
||||
#: compensation/templates/compensation/detail/compensation/includes/states-after.html:64
|
||||
#: compensation/templates/compensation/detail/compensation/includes/states-before.html:64
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:64
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:64
|
||||
#: ema/templates/ema/detail/includes/states-after.html:62
|
||||
#: ema/templates/ema/detail/includes/states-before.html:62
|
||||
msgid "Remove state"
|
||||
msgstr "Zustand entfernen"
|
||||
|
||||
@ -882,9 +892,9 @@ msgstr "Ausgangszustand"
|
||||
msgid "Add new state before"
|
||||
msgstr "Neuen Ausgangszustand hinzufügen"
|
||||
|
||||
#: compensation/templates/compensation/detail/compensation/includes/states-before.html:25
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:25
|
||||
#: ema/templates/ema/detail/includes/states-before.html:25
|
||||
#: compensation/templates/compensation/detail/compensation/includes/states-before.html:26
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:26
|
||||
#: ema/templates/ema/detail/includes/states-before.html:26
|
||||
msgid "Missing surfaces according to states after: "
|
||||
msgstr "Fehlende Flächenmengen laut Zielzustand: "
|
||||
|
||||
@ -915,7 +925,7 @@ msgstr "Geprüft am "
|
||||
|
||||
#: 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:56
|
||||
#: 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:42
|
||||
#: intervention/templates/intervention/detail/view.html:75
|
||||
@ -983,16 +993,16 @@ msgstr "Eingriffskennung"
|
||||
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:37
|
||||
#: intervention/templates/intervention/detail/includes/deductions.html:34
|
||||
#: user/models/user_action.py:23
|
||||
#: user/models/user_action.py:21
|
||||
msgid "Created"
|
||||
msgstr "Erstellt"
|
||||
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:56
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:54
|
||||
msgid "Recorded on"
|
||||
msgstr "Verzeichnet am"
|
||||
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:65
|
||||
#: intervention/templates/intervention/detail/includes/deductions.html:60
|
||||
#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:63
|
||||
#: intervention/templates/intervention/detail/includes/deductions.html:58
|
||||
msgid "Remove Deduction"
|
||||
msgstr "Abbuchung entfernen"
|
||||
|
||||
@ -1076,135 +1086,130 @@ msgstr ""
|
||||
msgid "Responsible data"
|
||||
msgstr "Daten zu den verantwortlichen Stellen"
|
||||
|
||||
#: compensation/views/compensation.py:48
|
||||
#: compensation/views/compensation.py:47
|
||||
msgid "Compensations - Overview"
|
||||
msgstr "Kompensationen - Übersicht"
|
||||
|
||||
#: compensation/views/compensation.py:82
|
||||
#: compensation/views/compensation.py:81
|
||||
msgid "Compensation {} added"
|
||||
msgstr "Kompensation {} hinzugefügt"
|
||||
|
||||
#: compensation/views/compensation.py:147
|
||||
#: compensation/views/compensation.py:146
|
||||
msgid "Compensation {} edited"
|
||||
msgstr "Kompensation {} bearbeitet"
|
||||
|
||||
#: compensation/views/compensation.py:157 compensation/views/eco_account.py:160
|
||||
#: ema/views.py:227 intervention/views.py:310
|
||||
#: compensation/views/compensation.py:156 compensation/views/eco_account.py:159
|
||||
#: ema/views.py:226 intervention/views.py:309
|
||||
msgid "Edit {}"
|
||||
msgstr "Bearbeite {}"
|
||||
|
||||
#: compensation/views/compensation.py:236 compensation/views/eco_account.py:316
|
||||
#: ema/views.py:188 intervention/views.py:486
|
||||
#: compensation/views/compensation.py:235 compensation/views/eco_account.py:314
|
||||
#: ema/views.py:187 intervention/views.py:482
|
||||
msgid "Log"
|
||||
msgstr "Log"
|
||||
|
||||
#: compensation/views/compensation.py:259
|
||||
#: compensation/views/compensation.py:258
|
||||
msgid "Compensation removed"
|
||||
msgstr "Kompensation entfernt"
|
||||
|
||||
#: compensation/views/compensation.py:280 compensation/views/eco_account.py:496
|
||||
#: ema/views.py:359 intervention/views.py:132
|
||||
#: compensation/views/compensation.py:279 compensation/views/eco_account.py:466
|
||||
#: ema/views.py:355 intervention/views.py:132
|
||||
msgid "Document added"
|
||||
msgstr "Dokument hinzugefügt"
|
||||
|
||||
#: compensation/views/compensation.py:350 compensation/views/eco_account.py:362
|
||||
#: ema/views.py:294
|
||||
#: compensation/views/compensation.py:348 compensation/views/eco_account.py:360
|
||||
#: ema/views.py:293
|
||||
msgid "State added"
|
||||
msgstr "Zustand hinzugefügt"
|
||||
|
||||
#: compensation/views/compensation.py:372 compensation/views/eco_account.py:384
|
||||
#: ema/views.py:316
|
||||
#: compensation/views/compensation.py:369 compensation/views/eco_account.py:381
|
||||
#: ema/views.py:314
|
||||
msgid "Action added"
|
||||
msgstr "Maßnahme hinzugefügt"
|
||||
|
||||
#: compensation/views/compensation.py:394 compensation/views/eco_account.py:475
|
||||
#: ema/views.py:338
|
||||
#: compensation/views/compensation.py:390 compensation/views/eco_account.py:446
|
||||
#: ema/views.py:335
|
||||
msgid "Deadline added"
|
||||
msgstr "Frist/Termin hinzugefügt"
|
||||
|
||||
#: compensation/views/compensation.py:417 compensation/views/eco_account.py:453
|
||||
#: ema/views.py:595
|
||||
msgid "Deadline removed"
|
||||
msgstr "Frist gelöscht"
|
||||
|
||||
#: compensation/views/compensation.py:440 compensation/views/eco_account.py:407
|
||||
#: ema/views.py:430
|
||||
#: compensation/views/compensation.py:412 compensation/views/eco_account.py:403
|
||||
#: ema/views.py:425
|
||||
msgid "State removed"
|
||||
msgstr "Zustand gelöscht"
|
||||
|
||||
#: compensation/views/compensation.py:463 compensation/views/eco_account.py:430
|
||||
#: ema/views.py:453
|
||||
#: compensation/views/compensation.py:434 compensation/views/eco_account.py:425
|
||||
#: ema/views.py:447
|
||||
msgid "Action removed"
|
||||
msgstr "Maßnahme entfernt"
|
||||
|
||||
#: compensation/views/compensation.py:482 compensation/views/eco_account.py:586
|
||||
#: ema/views.py:472 intervention/views.py:551
|
||||
#: compensation/views/compensation.py:452 compensation/views/eco_account.py:554
|
||||
#: ema/views.py:465 intervention/views.py:546
|
||||
msgid "Report {}"
|
||||
msgstr "Bericht {}"
|
||||
|
||||
#: compensation/views/eco_account.py:59
|
||||
#: compensation/views/eco_account.py:58
|
||||
msgid "Eco-account - Overview"
|
||||
msgstr "Ökokonten - Übersicht"
|
||||
|
||||
#: compensation/views/eco_account.py:92
|
||||
#: compensation/views/eco_account.py:91
|
||||
msgid "Eco-Account {} added"
|
||||
msgstr "Ökokonto {} hinzugefügt"
|
||||
|
||||
#: compensation/views/eco_account.py:150
|
||||
#: compensation/views/eco_account.py:149
|
||||
msgid "Eco-Account {} edited"
|
||||
msgstr "Ökokonto {} bearbeitet"
|
||||
|
||||
#: compensation/views/eco_account.py:263
|
||||
#: compensation/views/eco_account.py:262
|
||||
msgid "Eco-account removed"
|
||||
msgstr "Ökokonto entfernt"
|
||||
|
||||
#: compensation/views/eco_account.py:291
|
||||
#: compensation/views/eco_account.py:290
|
||||
msgid "Deduction removed"
|
||||
msgstr "Abbuchung entfernt"
|
||||
|
||||
#: compensation/views/eco_account.py:337 ema/views.py:269
|
||||
#: intervention/views.py:529
|
||||
#: compensation/views/eco_account.py:335 ema/views.py:268
|
||||
#: intervention/views.py:524
|
||||
msgid "{} unrecorded"
|
||||
msgstr "{} entzeichnet"
|
||||
|
||||
#: compensation/views/eco_account.py:337 ema/views.py:269
|
||||
#: intervention/views.py:529
|
||||
#: compensation/views/eco_account.py:335 ema/views.py:268
|
||||
#: intervention/views.py:524
|
||||
msgid "{} recorded"
|
||||
msgstr "{} verzeichnet"
|
||||
|
||||
#: compensation/views/eco_account.py:567 intervention/views.py:509
|
||||
#: compensation/views/eco_account.py:536 intervention/views.py:505
|
||||
msgid "Deduction added"
|
||||
msgstr "Abbuchung hinzugefügt"
|
||||
|
||||
#: compensation/views/eco_account.py:659 ema/views.py:538
|
||||
#: intervention/views.py:383
|
||||
#: compensation/views/eco_account.py:627 ema/views.py:531
|
||||
#: intervention/views.py:380
|
||||
msgid "{} has already been shared with you"
|
||||
msgstr "{} wurde bereits für Sie freigegeben"
|
||||
|
||||
#: compensation/views/eco_account.py:664 ema/views.py:543
|
||||
#: intervention/views.py:388
|
||||
#: compensation/views/eco_account.py:632 ema/views.py:536
|
||||
#: intervention/views.py:385
|
||||
msgid "{} has been shared with you"
|
||||
msgstr "{} ist nun für Sie freigegeben"
|
||||
|
||||
#: compensation/views/eco_account.py:671 ema/views.py:550
|
||||
#: intervention/views.py:395
|
||||
#: compensation/views/eco_account.py:639 ema/views.py:543
|
||||
#: intervention/views.py:392
|
||||
msgid "Share link invalid"
|
||||
msgstr "Freigabelink ungültig"
|
||||
|
||||
#: compensation/views/eco_account.py:694 ema/views.py:573
|
||||
#: intervention/views.py:418
|
||||
#: compensation/views/eco_account.py:662 ema/views.py:566
|
||||
#: intervention/views.py:415
|
||||
msgid "Share settings updated"
|
||||
msgstr "Freigabe Einstellungen aktualisiert"
|
||||
|
||||
#: compensation/views/payment.py:37
|
||||
#: compensation/views/payment.py:36
|
||||
msgid "Payment added"
|
||||
msgstr "Zahlung hinzugefügt"
|
||||
|
||||
#: compensation/views/payment.py:58
|
||||
#: compensation/views/payment.py:56
|
||||
msgid "Payment removed"
|
||||
msgstr "Zahlung gelöscht"
|
||||
|
||||
#: ema/forms.py:40 ema/views.py:92
|
||||
#: ema/forms.py:40 ema/views.py:91
|
||||
msgid "New EMA"
|
||||
msgstr "Neue EMA hinzufügen"
|
||||
|
||||
@ -1232,19 +1237,19 @@ msgstr ""
|
||||
msgid "Payment funded compensation"
|
||||
msgstr "Ersatzzahlungsmaßnahme"
|
||||
|
||||
#: ema/views.py:49
|
||||
#: ema/views.py:48
|
||||
msgid "EMAs - Overview"
|
||||
msgstr "EMAs - Übersicht"
|
||||
|
||||
#: ema/views.py:82
|
||||
#: ema/views.py:81
|
||||
msgid "EMA {} added"
|
||||
msgstr "EMA {} hinzugefügt"
|
||||
|
||||
#: ema/views.py:217
|
||||
#: ema/views.py:216
|
||||
msgid "EMA {} edited"
|
||||
msgstr "EMA {} bearbeitet"
|
||||
|
||||
#: ema/views.py:250
|
||||
#: ema/views.py:249
|
||||
msgid "EMA removed"
|
||||
msgstr "EMA entfernt"
|
||||
|
||||
@ -1313,10 +1318,6 @@ msgstr "Neuer Eingriff"
|
||||
msgid "Edit intervention"
|
||||
msgstr "Eingriff bearbeiten"
|
||||
|
||||
#: intervention/forms/forms.py:338
|
||||
msgid "General data edited"
|
||||
msgstr "Allgemeine Daten bearbeitet"
|
||||
|
||||
#: intervention/forms/modalForms.py:25
|
||||
msgid "Share link"
|
||||
msgstr "Freigabelink"
|
||||
@ -1345,38 +1346,38 @@ msgstr "Wählen Sie die Nutzer ab, die keinen Zugriff mehr haben sollen"
|
||||
msgid "Share settings for {}"
|
||||
msgstr "Freigabe Einstellungen für {}"
|
||||
|
||||
#: intervention/forms/modalForms.py:124
|
||||
#: intervention/forms/modalForms.py:126
|
||||
msgid "Date of revocation"
|
||||
msgstr "Datum des Widerspruchs"
|
||||
|
||||
#: intervention/forms/modalForms.py:135
|
||||
#: intervention/forms/modalForms.py:137
|
||||
#: intervention/templates/intervention/detail/includes/revocation.html:35
|
||||
msgid "Document"
|
||||
msgstr "Dokument"
|
||||
|
||||
#: intervention/forms/modalForms.py:138
|
||||
#: intervention/forms/modalForms.py:140
|
||||
msgid "Must be smaller than 15 Mb"
|
||||
msgstr "Muss kleiner als 15 Mb sein"
|
||||
|
||||
#: intervention/forms/modalForms.py:162
|
||||
#: intervention/forms/modalForms.py:164
|
||||
#: intervention/templates/intervention/detail/includes/revocation.html:18
|
||||
msgid "Add revocation"
|
||||
msgstr "Widerspruch hinzufügen"
|
||||
|
||||
#: intervention/forms/modalForms.py:179
|
||||
#: intervention/forms/modalForms.py:181
|
||||
msgid "Checked intervention data"
|
||||
msgstr "Eingriffsdaten geprüft"
|
||||
|
||||
#: intervention/forms/modalForms.py:185
|
||||
#: intervention/forms/modalForms.py:187
|
||||
msgid "Checked compensations data and payments"
|
||||
msgstr "Kompensationen und Zahlungen geprüft"
|
||||
|
||||
#: intervention/forms/modalForms.py:194
|
||||
#: intervention/forms/modalForms.py:196
|
||||
#: intervention/templates/intervention/detail/includes/controls.html:19
|
||||
msgid "Run check"
|
||||
msgstr "Prüfung vornehmen"
|
||||
|
||||
#: intervention/forms/modalForms.py:195 konova/forms.py:457
|
||||
#: intervention/forms/modalForms.py:197 konova/forms.py:457
|
||||
msgid ""
|
||||
"I, {} {}, confirm that all necessary control steps have been performed by "
|
||||
"myself."
|
||||
@ -1384,23 +1385,23 @@ msgstr ""
|
||||
"Ich, {} {}, bestätige, dass die notwendigen Kontrollschritte durchgeführt "
|
||||
"wurden:"
|
||||
|
||||
#: intervention/forms/modalForms.py:279
|
||||
#: intervention/forms/modalForms.py:281
|
||||
msgid "Only recorded accounts can be selected for deductions"
|
||||
msgstr "Nur verzeichnete Ökokonten können für Abbuchungen verwendet werden."
|
||||
|
||||
#: intervention/forms/modalForms.py:306
|
||||
#: intervention/forms/modalForms.py:308
|
||||
msgid "Only shared interventions can be selected"
|
||||
msgstr "Nur freigegebene Eingriffe können gewählt werden"
|
||||
|
||||
#: intervention/forms/modalForms.py:319
|
||||
#: intervention/forms/modalForms.py:321
|
||||
msgid "New Deduction"
|
||||
msgstr "Neue Abbuchung"
|
||||
|
||||
#: intervention/forms/modalForms.py:320
|
||||
#: intervention/forms/modalForms.py:322
|
||||
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:348
|
||||
#: intervention/forms/modalForms.py:350
|
||||
msgid ""
|
||||
"Eco-account {} is not recorded yet. You can only deduct from recorded "
|
||||
"accounts."
|
||||
@ -1408,7 +1409,7 @@ msgstr ""
|
||||
"Ökokonto {} ist noch nicht verzeichnet. Abbuchungen können nur von "
|
||||
"verzeichneten Ökokonten erfolgen."
|
||||
|
||||
#: intervention/forms/modalForms.py:361
|
||||
#: intervention/forms/modalForms.py:363
|
||||
msgid ""
|
||||
"The account {} has not enough surface for a deduction of {} m². There are "
|
||||
"only {} m² left"
|
||||
@ -1417,7 +1418,7 @@ msgstr ""
|
||||
"Restfläche. Es stehen noch {} m² zur Verfügung."
|
||||
|
||||
#: intervention/tables.py:45
|
||||
#: intervention/templates/intervention/detail/includes/revocation.html:58
|
||||
#: intervention/templates/intervention/detail/includes/revocation.html:56
|
||||
msgid "Revocation"
|
||||
msgstr "Widerspruch"
|
||||
|
||||
@ -1433,7 +1434,7 @@ msgstr "Widerspruch vom {}, am {} von {} hinzugefügt"
|
||||
msgid "Add new compensation"
|
||||
msgstr "Neue Kompensation hinzufügen"
|
||||
|
||||
#: intervention/templates/intervention/detail/includes/compensations.html:55
|
||||
#: intervention/templates/intervention/detail/includes/compensations.html:53
|
||||
msgid "Remove compensation"
|
||||
msgstr "Kompensation entfernen"
|
||||
|
||||
@ -1441,11 +1442,11 @@ msgstr "Kompensation entfernen"
|
||||
msgid "Account Identifier"
|
||||
msgstr "Ökokonto Kennung"
|
||||
|
||||
#: intervention/templates/intervention/detail/includes/deductions.html:47
|
||||
#: intervention/templates/intervention/detail/includes/deductions.html:45
|
||||
msgid "Eco-account deleted! Deduction invalid!"
|
||||
msgstr "Ökokonto gelöscht! Abbuchung ungültig!"
|
||||
|
||||
#: intervention/templates/intervention/detail/includes/deductions.html:47
|
||||
#: intervention/templates/intervention/detail/includes/deductions.html:45
|
||||
msgid "Eco-account not recorded! Deduction invalid!"
|
||||
msgstr "Ökokonto nicht verzeichnet! Abbuchung ungültig!"
|
||||
|
||||
@ -1463,7 +1464,7 @@ msgctxt "money"
|
||||
msgid "Amount"
|
||||
msgstr "Betrag"
|
||||
|
||||
#: intervention/templates/intervention/detail/includes/payments.html:59
|
||||
#: intervention/templates/intervention/detail/includes/payments.html:53
|
||||
msgid "Remove payment"
|
||||
msgstr "Zahlung entfernen"
|
||||
|
||||
@ -1477,7 +1478,7 @@ msgctxt "Revocation"
|
||||
msgid "From"
|
||||
msgstr "Vom"
|
||||
|
||||
#: intervention/templates/intervention/detail/includes/revocation.html:69
|
||||
#: intervention/templates/intervention/detail/includes/revocation.html:63
|
||||
msgid "Remove revocation"
|
||||
msgstr "Widerspruch entfernen"
|
||||
|
||||
@ -1519,31 +1520,31 @@ msgstr "Eingriffe - Übersicht"
|
||||
msgid "Intervention {} added"
|
||||
msgstr "Eingriff {} hinzugefügt"
|
||||
|
||||
#: intervention/views.py:249
|
||||
#: intervention/views.py:248
|
||||
msgid "This intervention has {} revocations"
|
||||
msgstr "Dem Eingriff liegen {} Widersprüche vor"
|
||||
|
||||
#: intervention/views.py:298
|
||||
#: intervention/views.py:297
|
||||
msgid "Intervention {} edited"
|
||||
msgstr "Eingriff {} bearbeitet"
|
||||
|
||||
#: intervention/views.py:334
|
||||
#: intervention/views.py:333
|
||||
msgid "{} removed"
|
||||
msgstr "{} entfernt"
|
||||
|
||||
#: intervention/views.py:356
|
||||
#: intervention/views.py:354
|
||||
msgid "Revocation removed"
|
||||
msgstr "Widerspruch entfernt"
|
||||
|
||||
#: intervention/views.py:439
|
||||
#: intervention/views.py:436
|
||||
msgid "Check performed"
|
||||
msgstr "Prüfung durchgeführt"
|
||||
|
||||
#: intervention/views.py:461
|
||||
#: intervention/views.py:458
|
||||
msgid "Revocation added"
|
||||
msgstr "Widerspruch hinzugefügt"
|
||||
|
||||
#: intervention/views.py:534
|
||||
#: intervention/views.py:529
|
||||
msgid "There are errors on this intervention:"
|
||||
msgstr "Es liegen Fehler in diesem Eingriff vor:"
|
||||
|
||||
@ -1746,11 +1747,11 @@ msgstr "Kontrolle am"
|
||||
msgid "Other"
|
||||
msgstr "Sonstige"
|
||||
|
||||
#: konova/sub_settings/django_settings.py:159
|
||||
#: konova/sub_settings/django_settings.py:155
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
|
||||
#: konova/sub_settings/django_settings.py:160
|
||||
#: konova/sub_settings/django_settings.py:156
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
@ -1812,31 +1813,31 @@ msgstr "In Zwischenablage kopiert"
|
||||
msgid "Document '{}' deleted"
|
||||
msgstr "Dokument '{}' gelöscht"
|
||||
|
||||
#: konova/utils/mailer.py:66
|
||||
#: konova/utils/mailer.py:70
|
||||
msgid "{} - Shared access removed"
|
||||
msgstr "{} - Zugriff entzogen"
|
||||
|
||||
#: konova/utils/mailer.py:88
|
||||
#: konova/utils/mailer.py:92
|
||||
msgid "{} - Shared access given"
|
||||
msgstr "{} - Zugriff freigegeben"
|
||||
|
||||
#: konova/utils/mailer.py:110
|
||||
#: konova/utils/mailer.py:114
|
||||
msgid "{} - Shared data recorded"
|
||||
msgstr "{} - Freigegebene Daten verzeichnet"
|
||||
|
||||
#: konova/utils/mailer.py:132
|
||||
#: konova/utils/mailer.py:136
|
||||
msgid "{} - Shared data unrecorded"
|
||||
msgstr "{} - Freigegebene Daten entzeichnet"
|
||||
|
||||
#: konova/utils/mailer.py:154
|
||||
#: konova/utils/mailer.py:158
|
||||
msgid "{} - Shared data deleted"
|
||||
msgstr "{} - Freigegebene Daten gelöscht"
|
||||
|
||||
#: konova/utils/mailer.py:176
|
||||
#: konova/utils/mailer.py:180
|
||||
msgid "{} - Shared data checked"
|
||||
msgstr "{} - Freigegebene Daten geprüft"
|
||||
|
||||
#: konova/utils/mailer.py:197 templates/email/api/verify_token.html:4
|
||||
#: konova/utils/mailer.py:201 templates/email/api/verify_token.html:4
|
||||
msgid "Request for new API token"
|
||||
msgstr "Anfrage für neuen API Token"
|
||||
|
||||
@ -1926,15 +1927,19 @@ msgstr "fehlt"
|
||||
msgid "Home"
|
||||
msgstr "Home"
|
||||
|
||||
#: news/models.py:12
|
||||
#: konova/views.py:117
|
||||
msgid "Deadline removed"
|
||||
msgstr "Frist gelöscht"
|
||||
|
||||
#: news/models.py:11
|
||||
msgid "Default"
|
||||
msgstr "Standard"
|
||||
|
||||
#: news/models.py:13
|
||||
#: news/models.py:12
|
||||
msgid "Info"
|
||||
msgstr ""
|
||||
|
||||
#: news/models.py:14
|
||||
#: news/models.py:13
|
||||
msgid "Warning"
|
||||
msgstr "Warnung"
|
||||
|
||||
@ -2222,10 +2227,6 @@ msgid "Timestamp"
|
||||
msgstr "Zeitpunkt"
|
||||
|
||||
#: templates/log.html:13
|
||||
msgid "Details"
|
||||
msgstr ""
|
||||
|
||||
#: templates/log.html:16
|
||||
msgid "User"
|
||||
msgstr "Nutzer"
|
||||
|
||||
@ -2314,15 +2315,15 @@ msgstr "Neuen Token generieren"
|
||||
msgid "A new token needs to be validated by an administrator!"
|
||||
msgstr "Neue Tokens müssen durch Administratoren freigeschaltet werden!"
|
||||
|
||||
#: user/models/user_action.py:22
|
||||
#: user/models/user_action.py:20
|
||||
msgid "Unrecorded"
|
||||
msgstr "Entzeichnet"
|
||||
|
||||
#: user/models/user_action.py:24
|
||||
#: user/models/user_action.py:22
|
||||
msgid "Edited"
|
||||
msgstr "Bearbeitet"
|
||||
|
||||
#: user/models/user_action.py:25
|
||||
#: user/models/user_action.py:23
|
||||
msgid "Deleted"
|
||||
msgstr "Gelöscht"
|
||||
|
||||
@ -3922,9 +3923,6 @@ msgstr ""
|
||||
msgid "Unable to connect to qpid with SASL mechanism %s"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Action type details"
|
||||
#~ msgstr "Zusatzmerkmale"
|
||||
|
||||
#~ msgid "On registered data edited"
|
||||
#~ msgstr "Wenn meine freigegebenen Daten bearbeitet wurden"
|
||||
|
||||
|
@ -23,14 +23,15 @@
|
||||
{% include 'navbars/navbar.html' %}
|
||||
{% endblock %}
|
||||
</header>
|
||||
<div class="col">
|
||||
<div class="container-fluid mt-3 px-5">
|
||||
<div class="">
|
||||
{% for message in messages %}
|
||||
<div class="row alert alert-{{ message.tags }}">
|
||||
{{ message }}
|
||||
</div>
|
||||
<div class="row alert alert-{{ message.tags }}">
|
||||
{{ message }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div class="container-fluid mt-3">
|
||||
</div>
|
||||
|
||||
{% comment %}
|
||||
The modal wrapper, which can be used on every view can stay on the base.html template
|
||||
{% endcomment %}
|
||||
|
@ -3,15 +3,12 @@
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="w-25">
|
||||
<th scope="col">
|
||||
{% trans 'Timestamp' %}
|
||||
</th>
|
||||
<th scope="col">
|
||||
{% trans 'Action' %}
|
||||
</th>
|
||||
<th scope="col">
|
||||
{% trans 'Details' %}
|
||||
</th>
|
||||
<th scope="col">
|
||||
{% trans 'User' %}
|
||||
</th>
|
||||
@ -26,9 +23,6 @@
|
||||
<td>
|
||||
{{ entry.action_humanize}}
|
||||
</td>
|
||||
<td>
|
||||
{{ entry.comment|default_if_none:"-" }}
|
||||
</td>
|
||||
<td>
|
||||
{{entry.user}}
|
||||
</td>
|
||||
|
@ -29,7 +29,7 @@
|
||||
</a>
|
||||
</li>
|
||||
<li class=" menu-elem">
|
||||
<a class="nav-btn nav-link" href="{% url 'compensation:acc:index' %}">
|
||||
<a class="nav-btn nav-link" href="{% url 'compensation:acc-index' %}">
|
||||
{% fa5_icon 'tree' %}
|
||||
{% trans 'Eco-account' %}
|
||||
</a>
|
||||
|
Loading…
Reference in New Issue
Block a user