From 9b2aaaa5fa7801a83fb103af2b84a34844821cd2 Mon Sep 17 00:00:00 2001 From: mipel Date: Tue, 24 Aug 2021 14:50:51 +0200 Subject: [PATCH] Konova code improvements * improves rendering of codes as string (short names will be used if existing) * reduces selectable konova codes to leafs (as discussed with experts) * automatically resizes the width of modal form fields to w-100 * adds/updates translations --- codelist/models.py | 7 +- compensation/forms.py | 14 ++- compensation/models.py | 17 +++- konova/autocompletes.py | 15 +-- konova/forms.py | 12 +++ locale/de/LC_MESSAGES/django.mo | Bin 19291 -> 19277 bytes locale/de/LC_MESSAGES/django.po | 156 ++++++++++++++++---------------- 7 files changed, 126 insertions(+), 95 deletions(-) diff --git a/codelist/models.py b/codelist/models.py index a4fc2906..c1d0c9f4 100644 --- a/codelist/models.py +++ b/codelist/models.py @@ -40,9 +40,10 @@ class KonovaCode(models.Model): ) def __str__(self): - if self.is_leaf and self.parent: - return "{} > {}".format(self.parent.long_name, self.long_name) - return self.long_name + if self.short_name: + return "{} ({})".format(self.long_name, self.short_name) + else: + return self.long_name class KonovaCodeList(models.Model): diff --git a/compensation/forms.py b/compensation/forms.py index ef2943be..647ca342 100644 --- a/compensation/forms.py +++ b/compensation/forms.py @@ -13,8 +13,10 @@ from django.db import transaction from django.http import HttpRequest, HttpResponseRedirect from django.shortcuts import render from django.utils.translation import gettext_lazy as _ +from django.utils.translation import pgettext_lazy as _con from codelist.models import KonovaCode +from codelist.settings import CODELIST_BIOTOPES_ID from compensation.models import Payment, CompensationState, CompensationAction, UnitChoices from konova.contexts import BaseContext from konova.forms import BaseForm, BaseModalForm @@ -41,13 +43,14 @@ class NewPaymentForm(BaseModalForm): amount = forms.DecimalField( min_value=0.00, decimal_places=2, - label=_("Amount"), + label=_con("money", "Amount"), # contextual translation label_suffix=_(""), - help_text=_("Amount in Euro"), + help_text=_("in Euro"), ) due = forms.DateField( label=_("Due on"), label_suffix=_(""), + required=False, help_text=_("Due on which date"), widget=forms.DateInput( attrs={ @@ -104,12 +107,13 @@ class NewStateModalForm(BaseModalForm): help_text=_("Select the biotope type"), queryset=KonovaCode.objects.filter( is_active=True, + is_leaf=True, + code_lists__in=[CODELIST_BIOTOPES_ID], ), widget=autocomplete.ModelSelect2( url="codes-biotope-autocomplete", attrs={ "data-placeholder": _("Biotope Type"), - "data-minimum-input-length": 3, } ), ) @@ -280,7 +284,7 @@ class NewActionModalForm(BaseModalForm): url="codes-compensation-action-autocomplete", attrs={ "data-placeholder": _("Action"), - "data-minimum-input-length": 3, + "data-class": "w-100", } ), ) @@ -312,8 +316,8 @@ class NewActionModalForm(BaseModalForm): help_text=_("Additional comment, maximum {} letters").format(200), widget=forms.Textarea( attrs={ - "cols": 30, "rows": 5, + "class": "w-100" } ) ) diff --git a/compensation/models.py b/compensation/models.py index 3393dd9b..e24c33e8 100644 --- a/compensation/models.py +++ b/compensation/models.py @@ -11,6 +11,7 @@ from django.core.validators import MinValueValidator from django.db.models import Sum from django.utils.translation import gettext_lazy as _ +from codelist.models import KonovaCode from intervention.models import Intervention, ResponsibilityData from konova.models import BaseObject, BaseResource, Geometry, UuidModel from konova.settings import DEFAULT_SRID_RLP, LANIS_LINK_TEMPLATE @@ -22,7 +23,7 @@ class Payment(BaseResource): Holds data on a payment for an intervention (alternative to a classic compensation) """ amount = models.FloatField(validators=[MinValueValidator(limit_value=0.00)]) - due_on = models.DateField(null=True) + due_on = models.DateField(null=True, blank=True) comment = models.CharField( max_length=1000, null=True, @@ -42,7 +43,12 @@ class CompensationState(UuidModel): """ Compensations must define the state of an area before and after the compensation. """ - biotope_type = models.CharField(max_length=500, null=True, blank=True) + biotope_type = models.ForeignKey( + KonovaCode, + on_delete=models.SET_NULL, + null=True, + blank=True + ) surface = models.FloatField() def __str__(self): @@ -65,7 +71,12 @@ class CompensationAction(BaseResource): """ Compensations include actions like planting trees, refreshing rivers and so on. """ - action_type = models.CharField(max_length=500, null=True, blank=True) + action_type = models.ForeignKey( + KonovaCode, + on_delete=models.SET_NULL, + null=True, + blank=True + ) amount = models.FloatField() unit = models.CharField(max_length=100, null=True, blank=True, choices=UnitChoices.choices) comment = models.TextField(blank=True, null=True, help_text="Additional comment") diff --git a/konova/autocompletes.py b/konova/autocompletes.py index dd7082cf..4a092741 100644 --- a/konova/autocompletes.py +++ b/konova/autocompletes.py @@ -6,6 +6,7 @@ Created on: 07.12.20 """ from dal_select2.views import Select2QuerySetView +from django.db.models import Q from codelist.models import KonovaCode from codelist.settings import CODELIST_COMPENSATION_ACTION_ID, CODELIST_BIOTOPES_ID @@ -92,19 +93,19 @@ class KonovaCodeAutocomplete(Select2QuerySetView): return KonovaCode.objects.none() qs = KonovaCode.objects.filter( is_active=True, - parent__isnull=False, + is_leaf=True, + ).order_by( + "long_name" ) if self.c: qs = qs.filter( code_lists__in=[self.c] ) if self.q: - qs = qs.filter( - long_name__icontains=self.q - ) - qs.order_by( - "long_name" - ) + q_or = Q() + q_or |= Q(long_name__icontains=self.q) + q_or |= Q(short_name__icontains=self.q) + qs = qs.filter(q_or) return qs diff --git a/konova/forms.py b/konova/forms.py index 7142f6cf..bff7bc16 100644 --- a/konova/forms.py +++ b/konova/forms.py @@ -155,6 +155,16 @@ class BaseModalForm(BaseForm, BSModalForm): render_submit = True template = "modal/modal_form.html" + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + # Automatically add bootstrap w-100 class for maximum width of form fields in modals + for key, val in self.fields.items(): + val.widget.attrs.update( + { + "class": "w-100" + } + ) + def process_request(self, request: HttpRequest, msg_success: str = _("Object removed"), msg_error: str = FORM_INVALID, redirect_url: str = None): """ Generic processing of request @@ -249,6 +259,8 @@ class RemoveModalForm(BaseModalForm): super().__init__(*args, **kwargs) self.form_title = _("Remove") self.form_caption = _("Are you sure?") + # Disable automatic w-100 setting for this type of modal form. Looks kinda strange + self.fields["confirm"].widget.attrs["class"] = "" def save(self): if isinstance(self.instance, BaseObject): diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index c48b2310a4f9c2fde2ef17fc2b3e03631f21b949..1e8f0b2de06e1f6833ba4f556d76c78a5690a2fd 100644 GIT binary patch delta 5946 zcmYk<33yLe8prXIO*SEsjU*z7#1dPON<&C0mYBv~Gu4J#Vl0&@wRKuoTT7!@d2RFc za%vl6cE=bKf`>5>PhmYghe3GL*6*S24~un;$6C}|VQWmqCO87?;>+ld#h8q5VFNsf z!FVRtI3}FJMSJ62R0n=>#zbH})b(Ur&p-{dKdRw;tb+v@ic?Yd&$HK8VgU7bY<)8} zqF#y`P(_^MK5&N(fyKnu{9H8>ozy zpxWDt%Ggd@FLNkpgomuhP#sjF8oG*V;4bPx|9E$xbxbWkc3=XvChhq}; z3D^pkpfXg31JF56K{H7tFUmj*)QmDv1It5oJQTAr-`3Y5t7YCrJ^wlSVL9r#W2lZQ zQ3JhA8y!#n)!ZPKYUbg##u8t#BvqQ2My zXQMjUgv!J&)WG(k_QX+pz5;dMY1H1in8^Fjn`iu*xie~lN_8q~S7)G>pcksaJX8b2 zY<--)J`HvM3#jLd?DZw68LvTY?(L|F9YRg?Tr=|Dh{DgDNXCdHW8TItsE$vgQvCy} z;~S{gNH?p26x8+Z*8Zr}jzD!-h#L5d=#Q_VGP(@4#9JK-+U5ID4IQx;PNN#QjM|j< zP)ilo+}#VYr~xLR29j*eKxLvIYDtHomTWSr;|16i*Q5G#zNgTO!gUP5bQaVPvrz-< zjT*op)MhF`HT*oPqheG;YtR?Bq9@g;_70(z;20`{=dCx8%#i<>3nWz!ZvNz1f zAnHr)^|h#(m7wn1i5l2GOvA&df!#;#siYM5L)8;Cu+gaJ7Nhpaatx(^vypZ3yh(Zn}oZ zYM4~i=FCTBa1?6Oj_W}FwJBzDLYY{AYH%rr<5pWgh)U@h>rd9}sFdD8t$j4>r-5an zGBX65VLoc$b5KjQ3iaW8&!M1(57`S}p$2jWHPR~7%&uY`^zGzc4@Wf^Z%xB+>UpR= zF%tEC7?0}k8BD-gsDZ9QP1HF=L2Ggjeee!ytWh4X!}`nGO69-yb1TtT@Bdl~gRlhqVm0cO8vK}P5f_+z*|@!gS)r`PDIVTjWx?U7#(eru@s_l5^4|3Lp8hr)o?Lt#2c)e zP#M~0>z`pu>IaZdhq;1!-Qv2sZ%1QPyIoNO&$9OKO8%AN;hfM1WW2pF!`A1cI$DYi za2;w>?M4mk7)Iea?2WgPKZ;EEOn1hktkbX|=ZjEFvJutp&P?*J*Wn;1v{^1;JB;Y& z{tcIdTDvLe*+kfr`bp$lW8%8I1L=p_8zWGgay%-7(@{$~8?`jApfbH0<8g;WA&kNa z)W|NNQg;irGELT_|cTlTb5AM?Ifo>qAi~9)*o?GHQZLFan5}CBgM5TNds-vZ-0c@~-jCwl`+xl5ld)F`ltL^!i9-av} zCWV3z7doSMZ5LDnLr^K3fEw{^REmpHnOTjxZv)2Qr>IPwwC8_B4XhfqSAuigC5%I5 zIuA4T{^wKBgR4;^-Hckp?WmdVN3B&QHpSbh24mR>8ej_Qxh&K`b5YMfiLp2yHPCss zzRF(Tg%R{`zM!CyeuG-m%cv3lg4#R*z4%p%q1YUYtRGlV~=JCSdd*^6=bD=H(=ecabA z1v^pC#Q>a*%4iWPQ)~N>{{#x9oM?_GkdK$Si%FQC>yC5;s^ih94hm5Nn1dSNLevC` zQA@c7o8kMY*S7-oHu&^)H*HhY{i%J)zjkpZC%o`a#IM9Iq64AMCJ{G@gT%jxn&WRZ z1-$n_S;Yf{FHuY^CRP%Ah}MLTb;Ms((E8UL%WYu-t^Jb^mC zBW`<2?hkF4r)>QS>eWgl1`yh`I$m)xbMQ;z16yy2?-MT(NyO8{k3?Zj{#Q|1Pkcx` zLwrVTAatB3>M*dHW3(--#m2;LVjvO6JA-U=OOT|B@2yluH0_Y(QU=Y$`TN^BcYX2cbXFl=y{sgwT=g zVoqA&F;ieGL#tcc}U&0~8XVsJ&atD~N;!*& zBwi$ROePK!O^6x9pNXFd9rInxc&oTf9DktxJmn=sJ==#a-6FOT-H1sc_ex*)_*yx%w#Vc|T F{2!#AQ=|X@ delta 5951 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 KyLfKq{{I0*ELMd8 diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index 9fedbb21..f854d82e 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -3,8 +3,8 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # -#: compensation/filters.py:71 compensation/forms.py:43 compensation/forms.py:48 -#: compensation/forms.py:61 compensation/forms.py:219 compensation/forms.py:289 +#: compensation/filters.py:71 compensation/forms.py:46 compensation/forms.py:51 +#: compensation/forms.py:65 compensation/forms.py:234 compensation/forms.py:314 #: intervention/filters.py:26 intervention/filters.py:40 #: intervention/filters.py:47 intervention/filters.py:48 #: intervention/forms.py:322 intervention/forms.py:334 @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-19 14:33+0200\n" +"POT-Creation-Date: 2021-08-24 14:26+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -30,54 +30,54 @@ msgstr "" msgid "Show only unrecorded" msgstr "Nur unverzeichnete anzeigen" -#: compensation/forms.py:42 compensation/forms.py:278 +#: compensation/forms.py:45 compensation/forms.py:303 #: compensation/templates/compensation/detail/eco_account/includes/withdraws.html:31 #: intervention/templates/intervention/detail/includes/withdraws.html:31 msgid "Amount" msgstr "Menge" -#: compensation/forms.py:44 -msgid "Amount in Euro" -msgstr "Betrag in Euro" - #: compensation/forms.py:47 +msgid "in Euro" +msgstr "in Euro" + +#: compensation/forms.py:50 #: intervention/templates/intervention/detail/includes/payments.html:31 msgid "Due on" msgstr "Fällig am" -#: compensation/forms.py:49 +#: compensation/forms.py:53 msgid "Due on which date" msgstr "Zahlung wird an diesem Datum erwartet" -#: compensation/forms.py:62 +#: compensation/forms.py:66 msgid "Transfer note" msgstr "Verwendungszweck" -#: compensation/forms.py:63 +#: compensation/forms.py:67 msgid "Note for money transfer" msgstr "Verwendungszweck für Überweisung" -#: compensation/forms.py:69 +#: compensation/forms.py:73 msgid "Payment" msgstr "Zahlung" -#: compensation/forms.py:70 +#: compensation/forms.py:74 msgid "Add a payment for intervention '{}'" msgstr "Neue Ersatzzahlung zu Eingriff '{}' hinzufügen" -#: compensation/forms.py:82 +#: compensation/forms.py:86 msgid "Added payment" msgstr "Zahlung hinzufügen" -#: compensation/forms.py:99 +#: compensation/forms.py:103 compensation/forms.py:115 msgid "Biotope Type" msgstr "Biotoptyp" -#: compensation/forms.py:102 +#: compensation/forms.py:106 msgid "Select the biotope type" msgstr "Biotoptyp wählen" -#: compensation/forms.py:107 +#: compensation/forms.py:122 #: 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 @@ -88,35 +88,35 @@ msgstr "Biotoptyp wählen" msgid "Surface" msgstr "Fläche" -#: compensation/forms.py:110 intervention/forms.py:476 +#: compensation/forms.py:125 intervention/forms.py:476 msgid "in m²" msgstr "" -#: compensation/forms.py:115 +#: compensation/forms.py:130 msgid "New state" msgstr "Neuer Zustand" -#: compensation/forms.py:116 +#: compensation/forms.py:131 msgid "Insert data for the new state" msgstr "Geben Sie die Daten des neuen Zustandes ein" -#: compensation/forms.py:124 +#: compensation/forms.py:139 msgid "Added state" msgstr "Zustand hinzugefügt" -#: compensation/forms.py:140 konova/forms.py:158 +#: compensation/forms.py:155 konova/forms.py:158 msgid "Object removed" msgstr "Objekt entfernt" -#: compensation/forms.py:191 +#: compensation/forms.py:206 msgid "Deadline Type" msgstr "Fristart" -#: compensation/forms.py:194 +#: compensation/forms.py:209 msgid "Select the deadline type" msgstr "Fristart wählen" -#: compensation/forms.py:203 +#: compensation/forms.py:218 #: 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 @@ -124,11 +124,11 @@ msgstr "Fristart wählen" msgid "Date" msgstr "Datum" -#: compensation/forms.py:206 +#: compensation/forms.py:221 msgid "Select date" msgstr "Datum wählen" -#: compensation/forms.py:218 compensation/forms.py:288 +#: compensation/forms.py:233 compensation/forms.py:313 #: compensation/templates/compensation/detail/compensation/includes/actions.html:34 #: compensation/templates/compensation/detail/compensation/includes/deadlines.html:34 #: compensation/templates/compensation/detail/compensation/includes/documents.html:31 @@ -145,52 +145,78 @@ msgstr "Datum wählen" msgid "Comment" msgstr "Kommentar" -#: compensation/forms.py:220 compensation/forms.py:290 +#: compensation/forms.py:235 compensation/forms.py:315 #: intervention/forms.py:347 konova/forms.py:305 msgid "Additional comment, maximum {} letters" msgstr "Zusätzlicher Kommentar, maximal {} Zeichen" -#: compensation/forms.py:231 +#: compensation/forms.py:246 msgid "New deadline" msgstr "Neue Frist" -#: compensation/forms.py:232 +#: compensation/forms.py:247 msgid "Insert data for the new deadline" msgstr "Geben Sie die Daten der neuen Frist ein" -#: compensation/forms.py:249 +#: compensation/forms.py:264 msgid "Added deadline" msgstr "Frist/Termin hinzugefügt" -#: compensation/forms.py:260 +#: compensation/forms.py:275 msgid "Action Type" msgstr "Maßnahmentyp" -#: compensation/forms.py:263 +#: compensation/forms.py:278 msgid "Select the action type" msgstr "Maßnahmentyp wählen" -#: compensation/forms.py:266 +#: compensation/forms.py:285 +#: compensation/templates/compensation/detail/compensation/includes/actions.html:37 +#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:37 +#: compensation/templates/compensation/detail/compensation/includes/documents.html:34 +#: compensation/templates/compensation/detail/compensation/includes/states-after.html:39 +#: compensation/templates/compensation/detail/compensation/includes/states-before.html:39 +#: compensation/templates/compensation/detail/eco_account/includes/actions.html:37 +#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:37 +#: compensation/templates/compensation/detail/eco_account/includes/documents.html:34 +#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:39 +#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:39 +#: compensation/templates/compensation/detail/eco_account/includes/withdraws.html:37 +#: 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 +#: intervention/templates/intervention/detail/includes/compensations.html:36 +#: intervention/templates/intervention/detail/includes/documents.html:34 +#: intervention/templates/intervention/detail/includes/payments.html:37 +#: intervention/templates/intervention/detail/includes/revocation.html:41 +#: intervention/templates/intervention/detail/includes/withdraws.html:37 +#: templates/log.html:10 +msgid "Action" +msgstr "Aktionen" + +#: compensation/forms.py:291 msgid "Unit" msgstr "Einheit" -#: compensation/forms.py:269 +#: compensation/forms.py:294 msgid "Select the unit" msgstr "Einheit wählen" -#: compensation/forms.py:281 +#: compensation/forms.py:306 msgid "Insert the amount" msgstr "Menge eingeben" -#: compensation/forms.py:301 +#: compensation/forms.py:326 msgid "New action" msgstr "Neue Maßnahme" -#: compensation/forms.py:302 +#: compensation/forms.py:327 msgid "Insert data for the new action" msgstr "Geben Sie die Daten der neuen Maßnahme ein" -#: compensation/forms.py:321 +#: compensation/forms.py:346 msgid "Added action" msgstr "Maßnahme hinzugefügt" @@ -226,7 +252,7 @@ msgstr "Kennung" #: compensation/tables.py:29 compensation/tables.py:169 #: compensation/templates/compensation/detail/compensation/includes/documents.html:28 -#: compensation/templates/compensation/detail/compensation/view.html:24 +#: compensation/templates/compensation/detail/compensation/view.html:31 #: compensation/templates/compensation/detail/eco_account/includes/documents.html:28 #: compensation/templates/compensation/detail/eco_account/view.html:31 #: ema/tables.py:33 ema/templates/ema/detail/includes/documents.html:28 @@ -239,14 +265,14 @@ msgid "Title" msgstr "Bezeichnung" #: compensation/tables.py:34 -#: compensation/templates/compensation/detail/compensation/view.html:36 +#: compensation/templates/compensation/detail/compensation/view.html:43 #: intervention/tables.py:33 #: intervention/templates/intervention/detail/view.html:63 user/models.py:48 msgid "Checked" msgstr "Geprüft" #: compensation/tables.py:40 compensation/tables.py:179 -#: compensation/templates/compensation/detail/compensation/view.html:50 +#: compensation/templates/compensation/detail/compensation/view.html:57 #: compensation/templates/compensation/detail/eco_account/view.html:43 #: ema/tables.py:38 ema/templates/ema/detail/view.html:28 #: intervention/tables.py:39 @@ -275,7 +301,7 @@ msgid "Open {}" msgstr "Öffne {}" #: compensation/tables.py:83 -#: compensation/templates/compensation/detail/compensation/view.html:12 +#: compensation/templates/compensation/detail/compensation/view.html:19 #: konova/templates/konova/home.html:49 templates/navbar.html:28 msgid "Compensation" msgstr "Kompensation" @@ -289,7 +315,7 @@ msgid "Checked on {} by {}" msgstr "Am {} von {} geprüft worden" #: compensation/tables.py:128 -#: compensation/templates/compensation/detail/compensation/view.html:53 +#: compensation/templates/compensation/detail/compensation/view.html:60 #: compensation/templates/compensation/detail/eco_account/view.html:46 #: ema/tables.py:101 ema/templates/ema/detail/view.html:31 #: intervention/tables.py:135 @@ -360,31 +386,6 @@ msgctxt "Compensation" msgid "Amount" msgstr "Menge" -#: compensation/templates/compensation/detail/compensation/includes/actions.html:37 -#: compensation/templates/compensation/detail/compensation/includes/deadlines.html:37 -#: compensation/templates/compensation/detail/compensation/includes/documents.html:34 -#: compensation/templates/compensation/detail/compensation/includes/states-after.html:39 -#: compensation/templates/compensation/detail/compensation/includes/states-before.html:39 -#: compensation/templates/compensation/detail/eco_account/includes/actions.html:37 -#: compensation/templates/compensation/detail/eco_account/includes/deadlines.html:37 -#: compensation/templates/compensation/detail/eco_account/includes/documents.html:34 -#: compensation/templates/compensation/detail/eco_account/includes/states-after.html:39 -#: compensation/templates/compensation/detail/eco_account/includes/states-before.html:39 -#: compensation/templates/compensation/detail/eco_account/includes/withdraws.html:37 -#: 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 -#: intervention/templates/intervention/detail/includes/compensations.html:36 -#: intervention/templates/intervention/detail/includes/documents.html:34 -#: intervention/templates/intervention/detail/includes/payments.html:37 -#: intervention/templates/intervention/detail/includes/revocation.html:41 -#: intervention/templates/intervention/detail/includes/withdraws.html:37 -#: templates/log.html:10 -msgid "Action" -msgstr "Aktionen" - #: compensation/templates/compensation/detail/compensation/includes/actions.html:51 #: compensation/templates/compensation/detail/eco_account/includes/actions.html:51 #: ema/templates/ema/detail/includes/actions.html:51 @@ -527,17 +528,17 @@ msgstr "Neuen Ausgangszustand hinzufügen" msgid "Missing surfaces according to states after: " msgstr "Fehlende Flächenmengen laut Zielzustand: " -#: compensation/templates/compensation/detail/compensation/view.html:28 +#: compensation/templates/compensation/detail/compensation/view.html:35 msgid "compensates intervention" msgstr "kompensiert Eingriff" -#: compensation/templates/compensation/detail/compensation/view.html:43 +#: compensation/templates/compensation/detail/compensation/view.html:50 #: intervention/templates/intervention/detail/view.html:70 msgid "Checked on " msgstr "Geprüft am " -#: compensation/templates/compensation/detail/compensation/view.html:43 -#: compensation/templates/compensation/detail/compensation/view.html:57 +#: compensation/templates/compensation/detail/compensation/view.html:50 +#: compensation/templates/compensation/detail/compensation/view.html:64 #: compensation/templates/compensation/detail/eco_account/view.html:50 #: ema/templates/ema/detail/view.html:35 #: intervention/templates/intervention/detail/view.html:70 @@ -545,21 +546,21 @@ msgstr "Geprüft am " msgid "by" msgstr "von" -#: compensation/templates/compensation/detail/compensation/view.html:57 +#: compensation/templates/compensation/detail/compensation/view.html:64 #: compensation/templates/compensation/detail/eco_account/view.html:50 #: ema/templates/ema/detail/view.html:35 #: intervention/templates/intervention/detail/view.html:84 msgid "Recorded on " msgstr "Verzeichnet am" -#: compensation/templates/compensation/detail/compensation/view.html:64 +#: compensation/templates/compensation/detail/compensation/view.html:71 #: compensation/templates/compensation/detail/eco_account/view.html:69 #: ema/templates/ema/detail/view.html:54 #: intervention/templates/intervention/detail/view.html:103 msgid "Last modified" msgstr "Zuletzt bearbeitet" -#: compensation/templates/compensation/detail/compensation/view.html:72 +#: compensation/templates/compensation/detail/compensation/view.html:79 #: compensation/templates/compensation/detail/eco_account/view.html:77 #: ema/templates/ema/detail/view.html:69 intervention/forms.py:255 #: intervention/templates/intervention/detail/view.html:111 @@ -903,7 +904,8 @@ msgid "" "Eco-account {} is not recorded yet. You can only withdraw from recorded " "accounts." msgstr "" -"Ökokonto {} ist noch nicht verzeichnet. Abbuchungen können nur von verzeichneten Ökokonten erfolgen." +"Ökokonto {} ist noch nicht verzeichnet. Abbuchungen können nur von " +"verzeichneten Ökokonten erfolgen." #: intervention/forms.py:544 msgid ""