From 98de05089e05c21590d4b5d4f53c0971e6ff112b Mon Sep 17 00:00:00 2001 From: mipel Date: Mon, 2 Aug 2021 10:14:34 +0200 Subject: [PATCH] Eco Accounts * adds related eco account withdraw detail view to intervention detail view * adds new route for removing withdraws using RemoveModalForm * adds EcoAccountWithdraw model * adds admin interfaces for EcoAccount and EcoAccountWithdraw * adds message_templates.py to konova/utils for reusable messages * splits related-documents.html and related-objects.html into separate templates for each related object type: compensations.html, documents.html, eco-account-withdraws.html and payments.html * adds translations --- compensation/admin.py | 30 ++++- compensation/models.py | 39 +++++- compensation/urls.py | 4 + compensation/views.py | 54 ++++++++- .../detail/includes/compensations.html | 49 ++++++++ .../detail/includes/documents.html | 55 +++++++++ .../includes/eco-account-withdraws.html | 57 +++++++++ .../detail/includes/payments.html | 59 +++++++++ .../detail/related-documents.html | 59 --------- .../intervention/detail/related-objects.html | 113 ------------------ .../templates/intervention/detail/view.html | 18 ++- intervention/views.py | 3 +- konova/utils/message_templates.py | 11 ++ konova/views.py | 3 +- locale/de/LC_MESSAGES/django.mo | Bin 10133 -> 10604 bytes locale/de/LC_MESSAGES/django.po | 67 ++++++----- 16 files changed, 412 insertions(+), 209 deletions(-) create mode 100644 intervention/templates/intervention/detail/includes/compensations.html create mode 100644 intervention/templates/intervention/detail/includes/documents.html create mode 100644 intervention/templates/intervention/detail/includes/eco-account-withdraws.html create mode 100644 intervention/templates/intervention/detail/includes/payments.html delete mode 100644 intervention/templates/intervention/detail/related-documents.html delete mode 100644 intervention/templates/intervention/detail/related-objects.html create mode 100644 konova/utils/message_templates.py diff --git a/compensation/admin.py b/compensation/admin.py index 656b5240..a902e1bc 100644 --- a/compensation/admin.py +++ b/compensation/admin.py @@ -1,6 +1,7 @@ from django.contrib import admin -from compensation.models import Compensation, CompensationAction, CompensationState, CompensationControl, Payment +from compensation.models import Compensation, CompensationAction, CompensationState, CompensationControl, Payment, \ + EcoAccountWithdraw, EcoAccount class CompensationControlAdmin(admin.ModelAdmin): @@ -34,9 +35,23 @@ class CompensationActionAdmin(admin.ModelAdmin): class CompensationAdmin(admin.ModelAdmin): list_display = [ "id", + "identifier", + "title", "created_on", + "created_by", ] + +class EcoAccountAdmin(admin.ModelAdmin): + list_display = [ + "id", + "identifier", + "title", + "created_on", + "created_by", + ] + + class PaymentAdmin(admin.ModelAdmin): list_display = [ "id", @@ -47,8 +62,21 @@ class PaymentAdmin(admin.ModelAdmin): ] +class EcoAccountWithdrawAdmin(admin.ModelAdmin): + list_display = [ + "id", + "account", + "intervention", + "amount", + "created_by", + "created_on", + ] + + admin.site.register(Compensation, CompensationAdmin) admin.site.register(Payment, PaymentAdmin) admin.site.register(CompensationAction, CompensationActionAdmin) admin.site.register(CompensationState, CompensationStateAdmin) admin.site.register(CompensationControl, CompensationControlAdmin) +admin.site.register(EcoAccount, EcoAccountAdmin) +admin.site.register(EcoAccountWithdraw, EcoAccountWithdrawAdmin) diff --git a/compensation/models.py b/compensation/models.py index e7c439b5..0221a7b6 100644 --- a/compensation/models.py +++ b/compensation/models.py @@ -7,7 +7,7 @@ Created on: 17.11.20 """ from django.contrib.auth.models import User from django.contrib.gis.db import models -from django.core.validators import MinValueValidator +from django.core.validators import MinValueValidator, MaxValueValidator from django.utils import timezone from django.utils.timezone import now @@ -152,3 +152,40 @@ class EcoAccount(Compensation): """ # Users having access on this object users = models.ManyToManyField(User) + + def __str__(self): + return "{}".format(self.identifier) + + +class EcoAccountWithdraw(BaseResource): + """ + A withdraw object for eco accounts + """ + account = models.ForeignKey( + EcoAccount, + on_delete=models.SET_NULL, + null=True, + blank=True, + help_text="Withdrawn from", + related_name="eco_withdraws", + ) + amount = models.FloatField( + null=True, + blank=True, + help_text="Amount withdrawn (percentage)", + validators=[ + MinValueValidator(limit_value=0.00), + MaxValueValidator(limit_value=100), + ] + ) + intervention = models.ForeignKey( + Intervention, + on_delete=models.CASCADE, + null=True, + blank=True, + help_text="Withdrawn for", + related_name="eco_withdraws", + ) + + def __str__(self): + return "{} of {}".format(self.amount, self.account) diff --git a/compensation/urls.py b/compensation/urls.py index c51d026f..f77e1a41 100644 --- a/compensation/urls.py +++ b/compensation/urls.py @@ -30,4 +30,8 @@ urlpatterns = [ path('acc/', account_open_view, name='acc-open'), path('acc//edit', account_edit_view, name='acc-edit'), path('acc//remove', account_remove_view, name='acc-remove'), + + # Eco-account withdraws + path('acc//remove/', withdraw_remove_view, name='withdraw-remove'), + ] \ No newline at end of file diff --git a/compensation/views.py b/compensation/views.py index 12f9ba19..88f9b929 100644 --- a/compensation/views.py +++ b/compensation/views.py @@ -1,5 +1,6 @@ from django.contrib.auth.decorators import login_required -from django.http import HttpRequest +from django.core.exceptions import ObjectDoesNotExist +from django.http import HttpRequest, Http404 from django.shortcuts import render, get_object_or_404 from django.utils.translation import gettext_lazy as _ @@ -10,6 +11,7 @@ from intervention.models import Intervention from konova.contexts import BaseContext from konova.decorators import * from konova.forms import RemoveModalForm +from konova.utils.message_templates import FORM_INVALID @login_required @@ -139,7 +141,7 @@ def new_payment_view(request: HttpRequest, intervention_id: str): else: messages.info( request, - _("There was an error on this form.") + FORM_INVALID ) return redirect(request.META.get("HTTP_REFERER", "home")) elif request.method == "GET": @@ -154,7 +156,7 @@ def new_payment_view(request: HttpRequest, intervention_id: str): @login_required def payment_remove_view(request: HttpRequest, id: str): - """ Renders a modal view for adding new payments + """ Renders a modal view for removing payments Args: request (HttpRequest): The incoming request @@ -177,7 +179,51 @@ def payment_remove_view(request: HttpRequest, id: str): else: messages.info( request, - _("There was an error on this form.") + FORM_INVALID + ) + return redirect(request.META.get("HTTP_REFERER", "home")) + elif request.method == "GET": + context = { + "form": form, + } + context = BaseContext(request, context).context + return render(request, template, context) + else: + raise NotImplementedError + + +@login_required +def withdraw_remove_view(request: HttpRequest, id: str, withdraw_id: str): + """ Renders a modal view for removing withdraws + + Args: + request (HttpRequest): The incoming request + id (str): The eco account's id + withdraw_id (str): The withdraw's id + + Returns: + + """ + acc = get_object_or_404(EcoAccount, id=id) + try: + eco_withdraw = acc.eco_withdraws.get(id=withdraw_id) + except ObjectDoesNotExist: + raise Http404("Unknown withdraw") + + form = RemoveModalForm(request.POST or None, instance=eco_withdraw, user=request.user) + template = form.template + if request.method == "POST": + if form.is_valid(): + form.save() + messages.success( + request, + _("Withdraw removed") + ) + return redirect(request.META.get("HTTP_REFERER", "home")) + else: + messages.info( + request, + FORM_INVALID ) return redirect(request.META.get("HTTP_REFERER", "home")) elif request.method == "GET": diff --git a/intervention/templates/intervention/detail/includes/compensations.html b/intervention/templates/intervention/detail/includes/compensations.html new file mode 100644 index 00000000..3703ac0d --- /dev/null +++ b/intervention/templates/intervention/detail/includes/compensations.html @@ -0,0 +1,49 @@ +{% load i18n l10n fontawesome_5 %} + \ No newline at end of file diff --git a/intervention/templates/intervention/detail/includes/documents.html b/intervention/templates/intervention/detail/includes/documents.html new file mode 100644 index 00000000..18c66ea9 --- /dev/null +++ b/intervention/templates/intervention/detail/includes/documents.html @@ -0,0 +1,55 @@ +{% load i18n l10n fontawesome_5 %} + \ No newline at end of file diff --git a/intervention/templates/intervention/detail/includes/eco-account-withdraws.html b/intervention/templates/intervention/detail/includes/eco-account-withdraws.html new file mode 100644 index 00000000..5de071e7 --- /dev/null +++ b/intervention/templates/intervention/detail/includes/eco-account-withdraws.html @@ -0,0 +1,57 @@ +{% load i18n l10n fontawesome_5 %} + \ No newline at end of file diff --git a/intervention/templates/intervention/detail/includes/payments.html b/intervention/templates/intervention/detail/includes/payments.html new file mode 100644 index 00000000..146f7cb7 --- /dev/null +++ b/intervention/templates/intervention/detail/includes/payments.html @@ -0,0 +1,59 @@ +{% load i18n l10n fontawesome_5 %} + diff --git a/intervention/templates/intervention/detail/related-documents.html b/intervention/templates/intervention/detail/related-documents.html deleted file mode 100644 index 4a246df0..00000000 --- a/intervention/templates/intervention/detail/related-documents.html +++ /dev/null @@ -1,59 +0,0 @@ -{% load i18n l10n fontawesome_5 %} - \ No newline at end of file diff --git a/intervention/templates/intervention/detail/related-objects.html b/intervention/templates/intervention/detail/related-objects.html deleted file mode 100644 index bca9f45e..00000000 --- a/intervention/templates/intervention/detail/related-objects.html +++ /dev/null @@ -1,113 +0,0 @@ -{% load i18n l10n fontawesome_5 %} - diff --git a/intervention/templates/intervention/detail/view.html b/intervention/templates/intervention/detail/view.html index ae4006a1..f7540b0e 100644 --- a/intervention/templates/intervention/detail/view.html +++ b/intervention/templates/intervention/detail/view.html @@ -146,8 +146,22 @@
- {% include 'intervention/detail/related-objects.html' %} - {% include 'intervention/detail/related-documents.html' %} +
+
+ {% include 'intervention/detail/includes/compensations.html' %} +
+
+ {% include 'intervention/detail/includes/payments.html' %} +
+
+
+
+ {% include 'intervention/detail/includes/eco-account-withdraws.html' %} +
+
+ {% include 'intervention/detail/includes/documents.html' %} +
+
{% with 'btn-modal' as btn_class %} diff --git a/intervention/views.py b/intervention/views.py index 9dd360e4..473cb2f4 100644 --- a/intervention/views.py +++ b/intervention/views.py @@ -10,6 +10,7 @@ from intervention.tables import InterventionTable from konova.contexts import BaseContext from konova.decorators import * from konova.forms import RemoveForm, SimpleGeomForm, NewDocumentForm +from konova.utils.message_templates import FORM_INVALID @login_required @@ -98,7 +99,7 @@ def new_document_view(request: HttpRequest, id: str): else: messages.info( request, - _("There was an error on this form.") + FORM_INVALID ) return redirect(request.META.get("HTTP_REFERER", "home")) elif request.method == "GET": diff --git a/konova/utils/message_templates.py b/konova/utils/message_templates.py new file mode 100644 index 00000000..ca701dcf --- /dev/null +++ b/konova/utils/message_templates.py @@ -0,0 +1,11 @@ +""" +Author: Michel Peltriaux +Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany +Contact: michel.peltriaux@sgdnord.rlp.de +Created on: 02.08.21 + +""" +from django.utils.translation import gettext_lazy as _ + + +FORM_INVALID = _("There was an error on this form.") diff --git a/konova/views.py b/konova/views.py index e857d092..28ad4f93 100644 --- a/konova/views.py +++ b/konova/views.py @@ -18,6 +18,7 @@ from intervention.models import Intervention from konova.contexts import BaseContext from konova.forms import RemoveModalForm from konova.models import Document +from konova.utils.message_templates import FORM_INVALID from news.models import ServerMessage from konova.settings import SSO_SERVER_BASE @@ -150,7 +151,7 @@ def remove_document_view(request: HttpRequest, id: str): else: messages.info( request, - _("There was an error on this form.") + FORM_INVALID ) return redirect(request.META.get("HTTP_REFERER", "home")) elif request.method == "GET": diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index 8419c790f01d54f152e6dc56873bbe60434d435b..90c3fce3ff4dcfbd4547900db94595f6d6d1391c 100644 GIT binary patch delta 3897 zcmYk-dvKK18OQOnAq0s8lTboT#2iZ#E(%c~Qc(!uR*@t`kV`?tP4-Q)-Q?Y{7w)>K zTojNN)>u#kk#W2-)4C(Jj-z;sw{|*J{_p~Irc}ilt<@=o;-&rmvM1^pp8cHnyzhI? zbIyBC=$`l4{M6rybGr@Y5OEPPvA;1NVtqb8l-CQ4N#h$>jLQdS?ZP~+@4x}L4M*T^ z{0SbxLVOD^z~fkfpJ6{7L?iF#n?fqInPI#BIwYkL>S)m5H)NkMD{w5=t@u;C2Q}g| zcs{;>L+~xv{vi(H`V%B+^KaLlLppjcANBslcpg@vGOI2$son?X(NIJ~3u=l8&J>hK|Y^(0F}TYWb)=29F4D`68IAJ{8{I>s0rq1{gp`p>LZq+ zGOR|;e3o+oYQ{l#9YKB6wWtAZao3wr{oRR5xEnR_ek{X7sP~>n^_O~y3aexOgnIA< z4#U5rW^xYIVLsENYKEcik3l6m9hK-3)C5{l9k0g{+>HD)`}nyKe}|>`CUQSzPEt{a z=TIFL(~FkeV(&L{*EOj7Q&5S`Ma^&->ba1+ztUZ&P%Ez=YNz}maqK?lgRHA24EBHUu%nRvVD_MqmzXH{Nm2)yq;kprj z!T4qe6=iq~wV6(!HpfZSlK&Iw+XPr9s%9AK7>+|FG#NGEb*L4Z=Uk3jnFv~3gX({; z^8lul`NLH7;t^Cwub>io1Fyulu?h$B;j}`R<8W-kG3cY7-|N~R!iiiTb@xx>Wn5b} zKn^yb5^1`S^;d?AXwcHNp#G$FqK?@voE|XdFh0Wdzu3Z~a1S>*LFPr&!0$MZV>QR%7&5kb7WEB}p%OiXjA6b) zt;}FXQzA8}2~9sFmD~dVe>n|NET>@qC^CN2qAP4CBlc;Zf7HhC%R5pQn zv|KMl{+U%Ney^r-07=SxfEpl&4WR+@Fb|7RD^Q9ohN(h*qIwLViuzI6OW+u(Y{zt zut$5#Rs3pGtF-F;Z=!NDF`XDsXt`$+D!a0nRhT5SH-78d#6V)JyPk-@Avi?lPGSM^ z5V3}sOQ_tJ<@?{2I{!Cvd4p>@hz*3k-5A%_$9b-D7v4j(69}g zWZX^soX}=f>HYtI4wX7$9T6rtMZHDec^)x@XeL5L1#vr}vWL*7Q(@cm?hhT`Lu#OG zCt|&|AAatqI>2528ks-;`M8E(;;&r2AL>5}9ltAy`Gg+6h3G4@U8Ms%iP1!Y7)MMX zt|fL5D*FhJxQyr~Ruh}m<$fv)36=Fk7jX^2$uafBO~fo>BcY?FKfPm#MxvPLPv~z& z6A>Z$%2Fy15R-_KzDCR?Hn{6$IumU_x~b|EVl9y-rV%Q)5v9aXVhf?NjTk{h)0G8> z3tOT|KVj#DJUh zEgTRiYe>cuw%N1s&R|D}7qf}>pl`3Ju?@|co}$wJ6MWkqjMEy9+tzT0$D^KaTVh@? z;e~4LoX)OjED>b%)@aOjwMP@t__)mbC5?eWol)Ogn_JhZ+%h9eSL77Ed~YNgiTa7C zo$L92(r-&|E_Vc=kq$5HlXS2np3T|DX~;~i_+#ExLEpElld+IzLt!uO*_mVpF delta 3483 zcmZA3c~I149LMozxjaA(2n0b`(O}mzz&inv!omy{QY`UC^Q07`yjDz5)9_d+GIT~~ zC}(O=+pNfr(V3)U%to|hP#gbHXOhY656wxd_h1%+1Kyd=lK4fAKE^puF!KS zDx}V^HIPJdH^i7$ywHU&Hdi-eyy(U#`~t)9N9=?@V_*CYAI9MB#yo^^*aO{|jH56Z zr=xyfihMj~KHm|XSc&Rj19n9(>c;&z2pcg4TTva~!f^Z-qp>T!>3kBZy;NjOCexnJ zMcwz5Jub!0^l!@8(Fm8@8)`9<%XIlbrU<|Kd6pED1+{c zLtP(?YHuW}{Tz&-e>0gK&15E0eY4o!P>!ld6>4UCP#rX20ybhOo86s1X;TX1d5)iJC#RJ>G$Omitg09I(fSQ0;wy8fY`B z;b@N!hcn=lq@ zQ59*#cx=WvY_-?hQSAjsQ-3v-z}+gb8~qir$Jwas`KW;vqh>ZAb>A|3eYHK_f~rUz z`X7}&--sI6hsYewx5&q|dHB}iyMg<$2h&jlO*jCLp*p^dEOc`dHBgm7CG3ovc|59; zeNn%6p*k31&BH8?r{Q?4Lk-Y#ksU3ftEffMj#S6oMn0x1!`8^1d})!6Kn*Al)nO5; zLM7G(sLE8J6RS||AG97q4ZI2YoyUB|jv6|R8qrxy#WqxBf_PB9F$MeMSk!$>?D+~D z%JFV{y#)ty{1*mcG7nw@NI_M~h5Cb)feCv5r?NB7Vay7Aj|<0GF)l3a73iqOx&w!B zz8*E8Z;+3<$`?O14&F)nG`&z0%0NAe5vWI(jjG&4)S@g!tv^%Ajz+c(`ItJsRDq+Y znf`(*>1EWP=s!^RhjXCwF{lnwP>(Pj_3X!>*2*N*KuXYwvrq%rfF8|YFFSglkD)qj zMy-L9sO#tL`9Dz|+(8W>gfi%Qcht<6XU}zed`?2|nfs zUz*VmsKwTXT7=h7Gr5N&Ff=Jp$}H3)nTWc+4)v_7QIBAoJ--t*v3leMG6ztP?BgWr zuMwZ&gl7D!wcYw3s&rATL^TkP{>5Z~Hk$Cy5We#WCF zT!N~!XD&M`T{)^Wm8ic^+fl1^KWZjTs7LWRYG7wkGrD5EiJIv>WUMBFS!jR*QTG?2 z&M&~zSc6p5V~Tkhb2w3o>Uf{^FskGy?D2P~hAyCHa0B&d?w|%{`UMtaENaH-n2qyL z6F7)!?+9w<%^0iq{}eksW^)l~%iKjh5+_Sn6-h_^Fdx-XA@T;AGE_rV=)_u7MGm6| zcpTNv*VdmfnB!}xx8ph{(!aUIjyj5_UV6qZ9ESO*j@P0StI>t;;$wIQ`IzvuK*JfR zhKHkOoQpJV3Q?tBg$~p@d6uX;p6z@+L(0hpGMhZO)o|i@^45J9USz+XtRh;;8jvQl zmuM>^j}uKm>qw8JkPIaANfCKTKY4{6z0=xq$s+%rF>m5<;v{Y|i)4TeQz3#q~ zD)UC7$68H>5N#6!n0(Z0xI#k?VMl+xRPvX}9P;3%GL9pYNhh+2WRQhKo7Tf(@`euB zrVu?UZR1H0(c4i$I<^!I_Wswn4*9pkW2Uk*os^O>L@T#ro5#*r5<`}e{-iJILk1Bq(UwLE z$W|TLZI4xN)TE7p6d z+a7Oq_a\n" "Language-Team: LANGUAGE \n" @@ -24,16 +24,16 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: compensation/forms.py:26 -#: intervention/templates/intervention/detail/related-objects.html:78 +#: intervention/templates/intervention/detail/includes/eco-account-withdraws.html:31 msgid "Amount" -msgstr "Betrag" +msgstr "Menge" #: compensation/forms.py:28 msgid "Amount in Euro" msgstr "Betrag in Euro" #: compensation/forms.py:31 -#: intervention/templates/intervention/detail/related-objects.html:81 +#: intervention/templates/intervention/detail/includes/payments.html:29 msgid "Due on" msgstr "Fällig am" @@ -59,14 +59,14 @@ msgstr "Neue Ersatzzahlung zu Eingriff '{}' hinzufügen" #: compensation/tables.py:24 compensation/tables.py:164 #: intervention/forms.py:26 intervention/tables.py:23 -#: intervention/templates/intervention/detail/related-objects.html:30 +#: intervention/templates/intervention/detail/includes/compensations.html:28 msgid "Identifier" msgstr "Kennung" #: compensation/tables.py:29 compensation/tables.py:169 #: intervention/forms.py:33 intervention/tables.py:28 -#: intervention/templates/intervention/detail/related-documents.html:28 -#: intervention/templates/intervention/detail/related-objects.html:33 +#: intervention/templates/intervention/detail/includes/compensations.html:31 +#: intervention/templates/intervention/detail/includes/documents.html:26 #: intervention/templates/intervention/detail/view.html:60 konova/forms.py:181 msgid "Title" msgstr "Bezeichnung" @@ -90,7 +90,7 @@ msgid "Last edit" msgstr "Zuletzt bearbeitet" #: compensation/tables.py:61 -#: intervention/templates/intervention/detail/related-objects.html:10 +#: intervention/templates/intervention/detail/includes/compensations.html:8 msgid "Compensations" msgstr "Kompensationen" @@ -253,8 +253,7 @@ msgstr "Freigabelink" #: intervention/forms.py:241 msgid "Send this link to users who you want to have writing access on the data" -msgstr "" -"Andere Nutzer erhalten über diesen Link Zugriff auf die Daten" +msgstr "Andere Nutzer erhalten über diesen Link Zugriff auf die Daten" #: intervention/forms.py:250 msgid "Shared with" @@ -283,46 +282,60 @@ msgstr "Eingriffe" msgid "Intervention" msgstr "Eingriff" -#: intervention/templates/intervention/detail/related-documents.html:10 +#: intervention/templates/intervention/detail/includes/compensations.html:13 +#: intervention/templates/intervention/detail/includes/eco-account-withdraws.html:13 +msgid "Add new compensation" +msgstr "Neue Kompensation hinzufügen" + +#: intervention/templates/intervention/detail/includes/documents.html:8 msgid "Documents" msgstr "Dokumente" -#: intervention/templates/intervention/detail/related-documents.html:15 +#: intervention/templates/intervention/detail/includes/documents.html:13 #: konova/forms.py:222 msgid "Add new document" msgstr "Neues Dokument hinzufügen" -#: intervention/templates/intervention/detail/related-documents.html:31 +#: intervention/templates/intervention/detail/includes/documents.html:29 #: konova/forms.py:209 msgid "Comment" msgstr "Kommentar" -#: intervention/templates/intervention/detail/related-documents.html:34 -#: intervention/templates/intervention/detail/related-objects.html:87 +#: intervention/templates/intervention/detail/includes/documents.html:32 +#: intervention/templates/intervention/detail/includes/payments.html:35 msgid "Action" msgstr "Aktionen" -#: intervention/templates/intervention/detail/related-documents.html:48 +#: intervention/templates/intervention/detail/includes/documents.html:46 msgid "Remove document" msgstr "Dokument löschen" -#: intervention/templates/intervention/detail/related-objects.html:15 -msgid "Add new compensation" -msgstr "Neue Kompensation hinzufügen" +#: intervention/templates/intervention/detail/includes/eco-account-withdraws.html:8 +msgid "Eco Account Withdraws" +msgstr "Ökokonto Abbuchungen" -#: intervention/templates/intervention/detail/related-objects.html:60 +#: intervention/templates/intervention/detail/includes/eco-account-withdraws.html:28 +msgid "Account Identifier" +msgstr "Ökokonto Kennung" + +#: intervention/templates/intervention/detail/includes/payments.html:8 msgid "Payments" msgstr "Ersatzzahlungen" -#: intervention/templates/intervention/detail/related-objects.html:65 +#: intervention/templates/intervention/detail/includes/payments.html:13 msgid "Add new payment" msgstr "Neue Zahlung hinzufügen" -#: intervention/templates/intervention/detail/related-objects.html:84 +#: intervention/templates/intervention/detail/includes/payments.html:26 +msgctxt "money" +msgid "Amount" +msgstr "Betrag" + +#: intervention/templates/intervention/detail/includes/payments.html:32 msgid "Transfer comment" msgstr "Verwendungszweck" -#: intervention/templates/intervention/detail/related-objects.html:102 +#: intervention/templates/intervention/detail/includes/payments.html:50 msgid "Remove payment" msgstr "Zahlung entfernen" @@ -473,20 +486,20 @@ msgstr "Sie sind dabei {} {} zu löschen" #: konova/forms.py:164 msgid "Are you sure?" -msgstr "" +msgstr "Sind Sie sicher?" #: konova/forms.py:188 msgid "When has this file been created? Important for photos." -msgstr "" +msgstr "Wann wurde diese Datei erstellt oder das Foto aufgenommen?" #: konova/forms.py:198 #: venv/lib/python3.7/site-packages/django/db/models/fields/files.py:231 msgid "File" -msgstr "" +msgstr "Datei" #: konova/forms.py:200 msgid "Must be smaller than 15 Mb" -msgstr "" +msgstr "Muss kleiner als 15 Mb sein" #: konova/forms.py:211 msgid "Additional comment on this file"