#88 Action detail codes

* adds codelist 1035 for compensation action detail codes
* extends CompensationAction model
* extends NewActionForm
* extends detail view of compensation action related models
* add/updates translations
* adds autocomplete tests
This commit is contained in:
mpeltriaux 2022-01-31 12:58:55 +01:00
parent 2439f37b69
commit 2b33f0e23f
13 changed files with 196 additions and 71 deletions

View File

@ -13,7 +13,8 @@ from codelist.models import KonovaCode, KonovaCodeList
from codelist.settings import CODELIST_INTERVENTION_HANDLER_ID, CODELIST_CONSERVATION_OFFICE_ID, \
CODELIST_REGISTRATION_OFFICE_ID, CODELIST_BIOTOPES_ID, CODELIST_LAW_ID, CODELIST_COMPENSATION_HANDLER_ID, \
CODELIST_COMPENSATION_ACTION_ID, CODELIST_COMPENSATION_ACTION_CLASS_ID, CODELIST_COMPENSATION_ADDITIONAL_TYPE_ID, \
CODELIST_BASE_URL, CODELIST_PROCESS_TYPE_ID, CODELIST_BIOTOPES_EXTRA_CODES_ID
CODELIST_BASE_URL, CODELIST_PROCESS_TYPE_ID, CODELIST_BIOTOPES_EXTRA_CODES_ID, \
CODELIST_COMPENSATION_ACTION_DETAIL_ID
from konova.management.commands.setup import BaseKonovaCommand
from konova.settings import PROXIES
@ -38,6 +39,7 @@ class Command(BaseKonovaCommand):
CODELIST_COMPENSATION_HANDLER_ID,
CODELIST_COMPENSATION_ACTION_ID,
CODELIST_COMPENSATION_ACTION_CLASS_ID,
CODELIST_COMPENSATION_ACTION_DETAIL_ID,
CODELIST_COMPENSATION_ADDITIONAL_TYPE_ID,
CODELIST_PROCESS_TYPE_ID,
]

View File

@ -20,6 +20,7 @@ CODELIST_PROCESS_TYPE_ID = 44382 # CLVerfahrenstyp
CODELIST_COMPENSATION_HANDLER_ID = 1052 # CLEingreifer
CODELIST_COMPENSATION_ACTION_ID = 1026 # CLMassnahmedetail
CODELIST_COMPENSATION_ACTION_DETAIL_ID = 1035 # CLZusatzmerkmal
CODELIST_COMPENSATION_ACTION_CLASS_ID = 1034 # CLMassnahmeklasse
CODELIST_COMPENSATION_ADDITIONAL_TYPE_ID = 1028 # CLMassnahmetyp, CEF and stuff
CODELIST_COMPENSATION_FUNDING_ID = 1049 # CLKombimassnahme

View File

@ -14,7 +14,8 @@ from django.shortcuts import render
from django.utils.translation import pgettext_lazy as _con, gettext_lazy as _
from codelist.models import KonovaCode
from codelist.settings import CODELIST_BIOTOPES_ID, CODELIST_COMPENSATION_ACTION_ID, CODELIST_BIOTOPES_EXTRA_CODES_ID
from codelist.settings import CODELIST_BIOTOPES_ID, CODELIST_COMPENSATION_ACTION_ID, CODELIST_BIOTOPES_EXTRA_CODES_ID, \
CODELIST_COMPENSATION_ACTION_DETAIL_ID
from compensation.models import CompensationDocument, EcoAccountDocument
from konova.contexts import BaseContext
from konova.forms import BaseModalForm, NewDocumentForm
@ -300,6 +301,23 @@ class NewActionModalForm(BaseModalForm):
}
),
)
action_type_details = forms.ModelMultipleChoiceField(
label=_("Action Type detail"),
label_suffix="",
required=False,
help_text=_("Select the action type detail"),
queryset=KonovaCode.objects.filter(
is_archived=False,
is_leaf=True,
code_lists__in=[CODELIST_COMPENSATION_ACTION_DETAIL_ID],
),
widget=autocomplete.ModelSelect2Multiple(
url="codes-compensation-action-detail-autocomplete",
attrs={
"data-placeholder": _("Action Type detail"),
}
),
)
unit = forms.ChoiceField(
label=_("Unit"),
label_suffix="",

View File

@ -9,7 +9,7 @@ from django.db import models
from django.utils.translation import gettext_lazy as _
from codelist.models import KonovaCode
from codelist.settings import CODELIST_COMPENSATION_ACTION_ID
from codelist.settings import CODELIST_COMPENSATION_ACTION_ID, CODELIST_COMPENSATION_ACTION_DETAIL_ID
from compensation.managers import CompensationActionManager
from konova.models import BaseResource
@ -39,7 +39,18 @@ class CompensationAction(BaseResource):
"code_lists__in": [CODELIST_COMPENSATION_ACTION_ID],
"is_selectable": True,
"is_archived": False,
}
},
related_name='+',
)
action_type_details = models.ManyToManyField(
KonovaCode,
blank=True,
limit_choices_to={
"code_lists__in": [CODELIST_COMPENSATION_ACTION_DETAIL_ID],
"is_selectable": True,
"is_archived": False,
},
related_name='+',
)
amount = models.FloatField()
unit = models.CharField(max_length=100, null=True, blank=True, choices=UnitChoices.choices)

View File

@ -95,6 +95,8 @@ class AbstractCompensation(BaseObject, GeoReferencedMixin):
comment=form_data["comment"],
created=user_action,
)
comp_action_details = form_data["action_type_details"]
comp_action.action_type_details.set(comp_action_details)
self.actions.add(comp_action)
return comp_action

View File

@ -24,9 +24,12 @@
<table class="table table-hover">
<thead>
<tr>
<th 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>
@ -46,9 +49,14 @@
<td class="align-middle">
{{ action.action_type }}
</td>
<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="align-middle">{{ action.amount|floatformat:2|intcomma }} {{ action.unit_humanize }}</td>
<td class="align-middle">{{ action.comment|default_if_none:"" }}</td>
<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" title="{% trans 'Remove action' %}">
{% fa5_icon 'trash' %}

View File

@ -24,9 +24,12 @@
<table class="table table-hover">
<thead>
<tr>
<th 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>
@ -46,9 +49,14 @@
<td class="align-middle">
{{ action.action_type }}
</td>
<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="align-middle">{{ action.amount|floatformat:2|intcomma }} {{ action.unit_humanize }}</td>
<td class="align-middle">{{ action.comment|default_if_none:"" }}</td>
<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" title="{% trans 'Remove action' %}">
{% fa5_icon 'trash' %}

View File

@ -24,9 +24,12 @@
<table class="table table-hover">
<thead>
<tr>
<th 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>
@ -44,9 +47,14 @@
<td class="align-middle">
{{ action.action_type }}
</td>
<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="align-middle">{{ action.amount|floatformat:2|intcomma }} {{ action.unit_humanize }}</td>
<td class="align-middle">{{ action.comment|default_if_none:"" }}</td>
<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" title="{% trans 'Remove action' %}">
{% fa5_icon 'trash' %}

View File

@ -12,7 +12,7 @@ from django.db.models import Q
from codelist.models import KonovaCode
from codelist.settings import CODELIST_COMPENSATION_ACTION_ID, CODELIST_BIOTOPES_ID, CODELIST_LAW_ID, \
CODELIST_REGISTRATION_OFFICE_ID, CODELIST_CONSERVATION_OFFICE_ID, CODELIST_PROCESS_TYPE_ID, \
CODELIST_BIOTOPES_EXTRA_CODES_ID
CODELIST_BIOTOPES_EXTRA_CODES_ID, CODELIST_COMPENSATION_ACTION_DETAIL_ID
from compensation.models import EcoAccount
from intervention.models import Intervention
@ -164,6 +164,24 @@ class CompensationActionCodeAutocomplete(KonovaCodeAutocomplete):
)
class CompensationActionDetailCodeAutocomplete(KonovaCodeAutocomplete):
"""
Due to limitations of the django dal package, we need to subclass for each code list
"""
group_by_related = "parent"
related_field_name = "long_name"
paginate_by = 200
def __init__(self, *args, **kwargs):
self.c = CODELIST_COMPENSATION_ACTION_DETAIL_ID
super().__init__(*args, **kwargs)
def order_by(self, qs):
return qs.order_by(
"parent__long_name"
)
class BiotopeCodeAutocomplete(KonovaCodeAutocomplete):
"""
Due to limitations of the django dal package, we need to subclass for each code list

View File

@ -57,3 +57,33 @@ class AutocompleteTestCase(BaseTestCase):
)
content = json.loads(response.content)
self.assertEqual([], content["results"])
def test_all_autocompletes(self):
tests = [
"accounts-autocomplete",
"interventions-autocomplete",
"codes-compensation-action-autocomplete",
"codes-compensation-action-detail-autocomplete",
"codes-biotope-autocomplete",
"codes-biotope-extra-type-autocomplete",
"codes-law-autocomplete",
"codes-process-type-autocomplete",
"codes-registration-office-autocomplete",
"codes-conservation-office-autocomplete",
"share-user-autocomplete",
]
for test in tests:
self.client.login(username=self.superuser.username, password=self.superuser_pw)
user_autocomplete_url = reverse(test)
data = {
"q": ""
}
response = self.client.get(
user_autocomplete_url,
data,
)
content = json.loads(response.content)
try:
content["results"]
except KeyError:
self.fail(f"No results returned for autocomplete {test}")

View File

@ -20,7 +20,7 @@ from django.urls import path, include
from konova.autocompletes import EcoAccountAutocomplete, \
InterventionAutocomplete, CompensationActionCodeAutocomplete, BiotopeCodeAutocomplete, LawCodeAutocomplete, \
RegistrationOfficeCodeAutocomplete, ConservationOfficeCodeAutocomplete, ProcessTypeCodeAutocomplete, \
ShareUserAutocomplete, BiotopeExtraCodeAutocomplete
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, remove_deadline_view
@ -47,6 +47,7 @@ urlpatterns = [
path("atcmplt/eco-accounts", EcoAccountAutocomplete.as_view(), name="accounts-autocomplete"),
path("atcmplt/interventions", InterventionAutocomplete.as_view(), name="interventions-autocomplete"),
path("atcmplt/codes/comp/action", CompensationActionCodeAutocomplete.as_view(), name="codes-compensation-action-autocomplete"),
path("atcmplt/codes/comp/action/detail", CompensationActionDetailCodeAutocomplete.as_view(), name="codes-compensation-action-detail-autocomplete"),
path("atcmplt/codes/biotope", BiotopeCodeAutocomplete.as_view(), name="codes-biotope-autocomplete"),
path("atcmplt/codes/biotope/extra", BiotopeExtraCodeAutocomplete.as_view(), name="codes-biotope-extra-type-autocomplete"),
path("atcmplt/codes/law", LawCodeAutocomplete.as_view(), name="codes-law-autocomplete"),

Binary file not shown.

View File

@ -3,9 +3,9 @@
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#: compensation/filters.py:122 compensation/forms/modalForms.py:34
#: compensation/forms/modalForms.py:45 compensation/forms/modalForms.py:61
#: compensation/forms/modalForms.py:255 compensation/forms/modalForms.py:333
#: 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:351
#: intervention/forms/forms.py:52 intervention/forms/forms.py:154
#: intervention/forms/forms.py:166 intervention/forms/modalForms.py:125
#: intervention/forms/modalForms.py:138 intervention/forms/modalForms.py:151
@ -26,7 +26,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-31 10:52+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"
@ -95,7 +95,7 @@ msgstr ""
#: analysis/templates/analysis/reports/includes/eco_account/amount.html:3
#: analysis/templates/analysis/reports/includes/intervention/amount.html:3
#: analysis/templates/analysis/reports/includes/old_data/amount.html:3
#: compensation/forms/modalForms.py:316
#: compensation/forms/modalForms.py:334
#: compensation/templates/compensation/detail/eco_account/includes/deductions.html:34
#: intervention/templates/intervention/detail/includes/deductions.html:31
msgid "Amount"
@ -213,13 +213,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:150
#: 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
#: compensation/forms/modalForms.py:151
#: 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"
@ -247,7 +247,7 @@ msgid "Compensation"
msgstr "Kompensation"
#: analysis/templates/analysis/reports/includes/intervention/compensated_by.html:21
#: compensation/forms/modalForms.py:74
#: compensation/forms/modalForms.py:75
msgid "Payment"
msgstr "Zahlung"
@ -353,9 +353,9 @@ msgstr "Aussagekräftiger Titel"
msgid "Compensation XY; Location ABC"
msgstr "Kompensation XY; Flur ABC"
#: compensation/forms/forms.py:57 compensation/forms/modalForms.py:60
#: compensation/forms/modalForms.py:254 compensation/forms/modalForms.py:332
#: compensation/templates/compensation/detail/compensation/includes/actions.html:34
#: compensation/forms/forms.py:57 compensation/forms/modalForms.py:61
#: 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
@ -469,74 +469,80 @@ msgstr "Ökokonto XY; Flur ABC"
msgid "Edit Eco-Account"
msgstr "Ökokonto bearbeiten"
#: compensation/forms/modalForms.py:35
#: compensation/forms/modalForms.py:36
msgid "in Euro"
msgstr "in Euro"
#: compensation/forms/modalForms.py:44
#: compensation/forms/modalForms.py:45
#: intervention/templates/intervention/detail/includes/payments.html:31
msgid "Due on"
msgstr "Fällig am"
#: compensation/forms/modalForms.py:47
#: compensation/forms/modalForms.py:48
msgid "Due on which date"
msgstr "Zahlung wird an diesem Datum erwartet"
#: compensation/forms/modalForms.py:62 compensation/forms/modalForms.py:256
#: compensation/forms/modalForms.py:334 intervention/forms/modalForms.py:152
#: compensation/forms/modalForms.py:63 compensation/forms/modalForms.py:257
#: 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"
#: compensation/forms/modalForms.py:75
#: compensation/forms/modalForms.py:76
msgid "Add a payment for intervention '{}'"
msgstr "Neue Ersatzzahlung zu Eingriff '{}' hinzufügen"
#: compensation/forms/modalForms.py:95
#: compensation/forms/modalForms.py:96
msgid "If there is no date you can enter, please explain why."
msgstr "Falls Sie kein Datum angeben können, erklären Sie bitte weshalb."
#: compensation/forms/modalForms.py:114 compensation/forms/modalForms.py:126
#: compensation/forms/modalForms.py:115 compensation/forms/modalForms.py:127
msgid "Biotope Type"
msgstr "Biotoptyp"
#: compensation/forms/modalForms.py:117
#: compensation/forms/modalForms.py:118
msgid "Select the biotope type"
msgstr "Biotoptyp wählen"
#: compensation/forms/modalForms.py:131 compensation/forms/modalForms.py:143
#: 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"
#: compensation/forms/modalForms.py:134
#: compensation/forms/modalForms.py:135
msgid "Select an additional biotope type"
msgstr "Zusatzbezeichnung wählen"
#: compensation/forms/modalForms.py:153 intervention/forms/modalForms.py:297
#: compensation/forms/modalForms.py:154 intervention/forms/modalForms.py:297
msgid "in m²"
msgstr ""
#: compensation/forms/modalForms.py:164
#: compensation/forms/modalForms.py:165
msgid "New state"
msgstr "Neuer Zustand"
#: compensation/forms/modalForms.py:165
#: compensation/forms/modalForms.py:166
msgid "Insert data for the new state"
msgstr "Geben Sie die Daten des neuen Zustandes ein"
#: compensation/forms/modalForms.py:172 konova/forms.py:190
#: compensation/forms/modalForms.py:173 konova/forms.py:190
msgid "Object removed"
msgstr "Objekt entfernt"
#: compensation/forms/modalForms.py:226
#: compensation/forms/modalForms.py:227
msgid "Deadline Type"
msgstr "Fristart"
#: compensation/forms/modalForms.py:229
#: compensation/forms/modalForms.py:230
msgid "Select the deadline type"
msgstr "Fristart wählen"
#: compensation/forms/modalForms.py:238
#: compensation/forms/modalForms.py:239
#: 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
@ -544,43 +550,43 @@ msgstr "Fristart wählen"
msgid "Date"
msgstr "Datum"
#: compensation/forms/modalForms.py:241
#: compensation/forms/modalForms.py:242
msgid "Select date"
msgstr "Datum wählen"
#: compensation/forms/modalForms.py:268
#: compensation/forms/modalForms.py:269
msgid "New deadline"
msgstr "Neue Frist"
#: compensation/forms/modalForms.py:269
#: compensation/forms/modalForms.py:270
msgid "Insert data for the new deadline"
msgstr "Geben Sie die Daten der neuen Frist ein"
#: compensation/forms/modalForms.py:287
#: compensation/forms/modalForms.py:288
msgid "Action Type"
msgstr "Maßnahmentyp"
#: compensation/forms/modalForms.py:290
#: compensation/forms/modalForms.py:291
msgid "Select the action type"
msgstr "Maßnahmentyp wählen"
#: compensation/forms/modalForms.py:299
#: compensation/templates/compensation/detail/compensation/includes/actions.html:38
#: compensation/forms/modalForms.py:300
#: 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:40
#: compensation/templates/compensation/detail/compensation/includes/states-before.html:40
#: 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:40
#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:40
#: 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:39
#: ema/templates/ema/detail/includes/states-before.html:39
#: 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
@ -590,23 +596,31 @@ msgstr "Maßnahmentyp wählen"
msgid "Action"
msgstr "Aktionen"
#: compensation/forms/modalForms.py:304
#: compensation/forms/modalForms.py:305 compensation/forms/modalForms.py:317
msgid "Action Type detail"
msgstr "Zusatzmerkmal"
#: compensation/forms/modalForms.py:308
msgid "Select the action type detail"
msgstr "Zusatzmerkmal wählen"
#: compensation/forms/modalForms.py:322
msgid "Unit"
msgstr "Einheit"
#: compensation/forms/modalForms.py:307
#: compensation/forms/modalForms.py:325
msgid "Select the unit"
msgstr "Einheit wählen"
#: compensation/forms/modalForms.py:319
#: compensation/forms/modalForms.py:337
msgid "Insert the amount"
msgstr "Menge eingeben"
#: compensation/forms/modalForms.py:345
#: compensation/forms/modalForms.py:363
msgid "New action"
msgstr "Neue Maßnahme"
#: compensation/forms/modalForms.py:346
#: compensation/forms/modalForms.py:364
msgid "Insert data for the new action"
msgstr "Geben Sie die Daten der neuen Maßnahme ein"
@ -736,13 +750,17 @@ msgid "Action type"
msgstr "Maßnahmentyp"
#: 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:53
#: 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"
@ -852,12 +870,12 @@ msgstr "Fehlende Flächenmengen laut Ausgangszustand: "
msgid "Biotope type"
msgstr "Biotoptyp"
#: compensation/templates/compensation/detail/compensation/includes/states-after.html:54
#: compensation/templates/compensation/detail/compensation/includes/states-before.html:54
#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:54
#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:54
#: ema/templates/ema/detail/includes/states-after.html:52
#: ema/templates/ema/detail/includes/states-before.html:52
#: 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"