From 0a6d5cf19b4e5eb0ceea1dce972a7468d9ad9a3a Mon Sep 17 00:00:00 2001 From: mpeltriaux Date: Thu, 3 Feb 2022 15:29:22 +0100 Subject: [PATCH] #86 Userlogs Compensation * adds log details for adding/removing of compensations for intervention * adds handy restore-deleted function for admin backend for alls BaseObject derivatives * adds/updates translations --- compensation/forms/forms.py | 70 +++-- compensation/models/compensation.py | 7 +- compensation/views/compensation.py | 6 +- .../detail/includes/compensations.html | 2 +- intervention/urls.py | 5 +- intervention/views.py | 28 +- konova/admin.py | 20 ++ konova/utils/message_templates.py | 4 + locale/de/LC_MESSAGES/django.mo | Bin 36588 -> 36530 bytes locale/de/LC_MESSAGES/django.po | 249 +++++++++--------- 10 files changed, 231 insertions(+), 160 deletions(-) diff --git a/compensation/forms/forms.py b/compensation/forms/forms.py index 7ac7f601..72b1a714 100644 --- a/compensation/forms/forms.py +++ b/compensation/forms/forms.py @@ -18,7 +18,7 @@ from compensation.models import Compensation, EcoAccount from intervention.inputs import GenerateInput from intervention.models import Intervention, Responsibility, Legal from konova.forms import BaseForm, SimpleGeomForm -from konova.utils.message_templates import EDITED_GENERAL_DATA +from konova.utils.message_templates import EDITED_GENERAL_DATA, COMPENSATION_ADDED_TEMPLATE from user.models import UserActionLogEntry @@ -200,35 +200,49 @@ class NewCompensationForm(AbstractCompensationForm, CEFCompensationFormMixin, Co self.initialize_form_field("identifier", identifier) self.fields["identifier"].widget.attrs["url"] = reverse_lazy("compensation:new-id") + def __create_comp(self, user, geom_form) -> Compensation: + """ Creates the compensation from form data + + Args: + user (User): The performing user + geom_form (SimpleGeomForm): The geometry form + + Returns: + comp (Compensation): The compensation object + """ + # Fetch data from cleaned POST values + identifier = self.cleaned_data.get("identifier", None) + title = self.cleaned_data.get("title", None) + intervention = self.cleaned_data.get("intervention", None) + is_cef = self.cleaned_data.get("is_cef", None) + is_coherence_keeping = self.cleaned_data.get("is_coherence_keeping", None) + comment = self.cleaned_data.get("comment", None) + + # Create log entry + action = UserActionLogEntry.get_created_action(user) + # Process the geometry form + geometry = geom_form.save(action) + + # Finally create main object + comp = Compensation.objects.create( + identifier=identifier, + title=title, + intervention=intervention, + created=action, + is_cef=is_cef, + is_coherence_keeping=is_coherence_keeping, + geometry=geometry, + comment=comment, + ) + + # Add the log entry to the main objects log list + comp.log.add(action) + return comp + def save(self, user: User, geom_form: SimpleGeomForm): with transaction.atomic(): - # Fetch data from cleaned POST values - identifier = self.cleaned_data.get("identifier", None) - title = self.cleaned_data.get("title", None) - intervention = self.cleaned_data.get("intervention", None) - is_cef = self.cleaned_data.get("is_cef", None) - is_coherence_keeping = self.cleaned_data.get("is_coherence_keeping", None) - comment = self.cleaned_data.get("comment", None) - - # Create log entry - action = UserActionLogEntry.get_created_action(user) - # Process the geometry form - geometry = geom_form.save(action) - - # Finally create main object - comp = Compensation.objects.create( - identifier=identifier, - title=title, - intervention=intervention, - created=action, - is_cef=is_cef, - is_coherence_keeping=is_coherence_keeping, - geometry=geometry, - comment=comment, - ) - - # Add the log entry to the main objects log list - comp.log.add(action) + comp = self.__create_comp(user, geom_form) + comp.intervention.mark_as_edited(user, edit_comment=COMPENSATION_ADDED_TEMPLATE.format(comp.identifier)) return comp diff --git a/compensation/models/compensation.py b/compensation/models/compensation.py index 788f4b4c..082131c3 100644 --- a/compensation/models/compensation.py +++ b/compensation/models/compensation.py @@ -20,7 +20,7 @@ from compensation.utils.quality import CompensationQualityChecker from konova.models import BaseObject, AbstractDocument, Deadline, generate_document_file_upload_path, \ GeoReferencedMixin from konova.settings import DEFAULT_SRID_RLP, LANIS_LINK_TEMPLATE -from konova.utils.message_templates import DATA_UNSHARED_EXPLANATION +from konova.utils.message_templates import DATA_UNSHARED_EXPLANATION, COMPENSATION_REMOVED_TEMPLATE from user.models import UserActionLogEntry @@ -235,6 +235,11 @@ class Compensation(AbstractCompensation, CEFMixin, CoherenceMixin): self.identifier = self.generate_new_identifier() super().save(*args, **kwargs) + def mark_as_deleted(self, user, send_mail: bool = True): + super().mark_as_deleted(user, send_mail) + if user is not None: + self.intervention.mark_as_edited(user, edit_comment=COMPENSATION_REMOVED_TEMPLATE.format(self.identifier)) + def is_shared_with(self, user: User): """ Access check diff --git a/compensation/views/compensation.py b/compensation/views/compensation.py index 43bdf8ce..aa2151fe 100644 --- a/compensation/views/compensation.py +++ b/compensation/views/compensation.py @@ -18,7 +18,7 @@ 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 FORM_INVALID, IDENTIFIER_REPLACED, DATA_UNSHARED_EXPLANATION, \ - CHECKED_RECORDED_RESET + CHECKED_RECORDED_RESET, COMPENSATION_ADDED_TEMPLATE, COMPENSATION_REMOVED_TEMPLATE from konova.utils.user_checks import in_group @@ -79,7 +79,7 @@ def new_view(request: HttpRequest, intervention_id: str = None): comp.identifier ) ) - messages.success(request, _("Compensation {} added").format(comp.identifier)) + messages.success(request, COMPENSATION_ADDED_TEMPLATE.format(comp.identifier)) return redirect("compensation:detail", id=comp.id) else: messages.error(request, FORM_INVALID, extra_tags="danger",) @@ -256,7 +256,7 @@ def remove_view(request: HttpRequest, id: str): form = RemoveModalForm(request.POST or None, instance=comp, request=request) return form.process_request( request=request, - msg_success=_("Compensation removed"), + msg_success=COMPENSATION_REMOVED_TEMPLATE.format(comp.identifier), redirect_url=reverse("compensation:index"), ) diff --git a/intervention/templates/intervention/detail/includes/compensations.html b/intervention/templates/intervention/detail/includes/compensations.html index 442d5d83..b7a546dd 100644 --- a/intervention/templates/intervention/detail/includes/compensations.html +++ b/intervention/templates/intervention/detail/includes/compensations.html @@ -52,7 +52,7 @@ {{ comp.title }} {% if is_default_member and has_access %} - {% endif %} diff --git a/intervention/urls.py b/intervention/urls.py index 4754eb53..1c663124 100644 --- a/intervention/urls.py +++ b/intervention/urls.py @@ -10,7 +10,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 + remove_deduction_view, remove_compensation_view app_name = "intervention" urlpatterns = [ @@ -27,6 +27,9 @@ urlpatterns = [ path('/record', record_view, name='record'), path('/report', report_view, name='report'), + # Compensations + path('/remove/', remove_compensation_view, name='remove-compensation'), + # Documents path('/document/new/', new_document_view, name='new-doc'), path('document/', get_document_view, name='get-doc'), diff --git a/intervention/views.py b/intervention/views.py index 75131f67..98654411 100644 --- a/intervention/views.py +++ b/intervention/views.py @@ -16,7 +16,8 @@ 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, REVOCATION_ADDED, REVOCATION_REMOVED + CHECKED_RECORDED_RESET, DEDUCTION_REMOVED, DEDUCTION_ADDED, REVOCATION_ADDED, REVOCATION_REMOVED, \ + COMPENSATION_REMOVED_TEMPLATE from konova.utils.user_checks import in_group @@ -564,6 +565,31 @@ def record_view(request: HttpRequest, id: str): ) +def remove_compensation_view(request:HttpRequest, id: str, comp_id: str): + """ Renders a modal view for removing the compensation + + Args: + request (HttpRequest): The incoming request + id (str): The compensation's id + + Returns: + + """ + intervention = get_object_or_404(Intervention, id=id) + try: + comp = intervention.compensations.get( + id=comp_id + ) + except ObjectDoesNotExist: + raise Http404("Unknown compensation") + form = RemoveModalForm(request.POST or None, instance=comp, request=request) + return form.process_request( + request=request, + msg_success=COMPENSATION_REMOVED_TEMPLATE.format(comp.identifier), + redirect_url=reverse("intervention:detail", args=(id,)) + "#related_data", + ) + + def report_view(request:HttpRequest, id: str): """ Renders the public report view diff --git a/konova/admin.py b/konova/admin.py index a64d5243..5970b020 100644 --- a/konova/admin.py +++ b/konova/admin.py @@ -8,6 +8,8 @@ Created on: 22.07.21 from django.contrib import admin from konova.models import Geometry, Deadline, GeometryConflict, Parcel, District +from konova.utils.message_templates import COMPENSATION_REMOVED_TEMPLATE +from user.models import UserAction class GeometryAdmin(admin.ModelAdmin): @@ -78,6 +80,9 @@ class BaseObjectAdmin(BaseResourceAdmin): "identifier", "title", ] + actions = [ + "restore_deleted_data" + ] def get_fields(self, request, obj=None): return super().get_fields(request, obj) + ["deleted"] @@ -87,6 +92,21 @@ class BaseObjectAdmin(BaseResourceAdmin): "deleted", ] + def restore_deleted_data(self, request, queryset): + queryset = queryset.filter( + deleted__isnull=False + ) + for entry in queryset: + entry.deleted.delete() + + # Remove delete log entry from related intervention log history + logs = entry.intervention.log.filter( + action=UserAction.EDITED, + comment=COMPENSATION_REMOVED_TEMPLATE.format(entry.identifier) + ) + logs.delete() + + # Outcommented for a cleaner admin backend on production #admin.site.register(Geometry, GeometryAdmin) diff --git a/konova/utils/message_templates.py b/konova/utils/message_templates.py index 04a756e7..43cdcfbd 100644 --- a/konova/utils/message_templates.py +++ b/konova/utils/message_templates.py @@ -21,6 +21,10 @@ 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.") +# COMPENSATION +COMPENSATION_ADDED_TEMPLATE = _("Compensation {} added") +COMPENSATION_REMOVED_TEMPLATE = _("Compensation {} removed") + # DEDUCTIONS DEDUCTION_ADDED = _("Deduction added") DEDUCTION_REMOVED = _("Deduction removed") diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index b708497fbae6e4a938da19633c3c7db6cd4349dd..23892cf84d1776aa8f508d127e5ea2d93a2b6cac 100644 GIT binary patch delta 10428 zcmZA6dwh@e|Htub%xsvkF~n@cPNvnEbIzx+LgWx~+MLa@)hLH6L_%tPa{6N5oRSX6 z#3-R;$ssu;2}#txUph$orGxL|`MF;H`CYf$YxmdteI4G%>+{*Twz|x=)n(iZ;eksW zj?w_fse@Tzj`Knp$9b!+Y8~gBM8^r^+$Ho;{w2wA=Hc9ijx!r8B|A=kd=V$%RqToV z8ad9hxE`Z0>0ZZahTX6d&ctxXah-)Ep;Q!l70z22M0qb(#Di9U0(IjR%*Pv88ONn~ zPDNe+9M(sl)$hb=ln-JRJcm{Bn!oHi&Oam!+6lYQaUw7pbwd-ZjOiGO1F#lO!kReW z&aW}IA|rD4VmzL(`aiHN<>31rht#Qr8sGyMLHkZ85{+yChGG_~!Cb6?&tnL#LG}Di z)C2aQ?mJ+9juj|huyQHt{##bAoa)_I8<{+(9=i2NdXt1<9+t;Bn1BmWBQ8Qs?NQVW zoi(pxFy(;8-hCBNGZ2oNxj0k@(@-R?b4uYt-~g>n??!6|qTcEo6W4AsyK)O{;a9bRYUx0*2j5maoaLLK=8HML)% z9()OP;|1R*j#~2!)J*j=N1|pr2Wy~< z!FvCfk?1vi74^W6%ui8E@Hwi1i{^Jo-<(o>80)p-6~iY`du9`AuWUzF!TAgaVo+=E zBYGI>)BPB_F(lVX^qN$Dz?-5*sGhe)^)v&u#+j%!o{C!2#i$N$z?xWuT9PBEfm}q* z$W@HR+o8Y>Qf(PN=o&j+)BBsD?(NrasT=r=aeeg&O%hJ70k6 zz!KDwtwIfG1M2zPP|qoD!~E-l_o>h(`WUs@j+z%xug_1Y4*i4dTBk}|?<2Gg>Om7w z4d$Ral#jJ>8s_3M)RI(a=UpF%8c>o;qK2EJHb*c438_c90 zXEmzflgPKX^Cfo1bEqYZY40`I0=0x)QP;aeNYwBMR6~Xvxm~aYHKGzs!oN`sCUo>V z+7wma1=Uavvag&e*aNp){Tc)-VU_ z;6l_)y^h*5#i-AR{ip{Y#aKLrz3~?2VK>&{5quB(VwEo5OlM&z?K_jL!bLr35$eG{ zR73x^^6RK2+K!s~{irGa0<{D`U^M=Pg;=Mn_q_K|OZg#cCQo8AUP4zlhIaEt7Hg)W zrlpw=`W%i}Xx3+JO6T5A@eHuC}0%zb9{7cq|V&)t}RePBeUdm~Ol zm7Ag(NXN3+2ZOOcYS#`!btDVx;sn${7N90DwsYgYfp5C`vJJf>;%wmk8e9_b|37Yy?Y=A8>4TqvW2Yjf39LHgJ8`Ysf zypx*xp%{W=u$ZX>OL`N- z@D6H8!yfkTi^Iy48)8-3cUqEY?K4mh7>at}MAXzjY4x*E9e5Gdp=GF%ti<}b0h{3= z)CZT-$J>l`P}jGza$D4l4MA6HQ9#lN-^Xw)HUBch`g)tM9#-XiGt_nIRzKLxvHCfv zkuNo0!zz?_phjMTy8ny5%)h3-l!|hA4fQ(RK=rudBer=^9_aN`j>T9@z za_hnTy@)q(5B3=1eP9JYM&pzlqLyj`CgKc?z}KvPH)@Z$M@ZC@)8=K2r2Gpm$Kavf zgVvzdtO#}eLDUFOp=KzMcP$E|Q8U*DRo~y7Z1sy!*KI&PVO{4V61~q?P*eIhR>vB{ zy-%upQS}{B^+QnC=c3kl0jgs=P_N}7)aS=B)Smhcb^V{HO&Kx5+l=)wQty8niF%xY zTAM7?ROO&H-5k`2pR@WU<|fqZw+A)VC00IbUPi6`bySB!MtU=QKWgf`VI1u{y-C!= zeAI4UjQWLRC92_K)O&vr)!;GI>+~h6;ZoFnf1(Buoav1`0yT5BP}es>J-0JzX-1%{ zkxwVld$|PFVfr9*R??{*+X`I1oDbIlO}G=)p@UckPoZu+gW5C~u{mBwHBft^ zw{&r+` z=x60&sHMqAt?>eL6~<8BY<`A8lz&DI=y&rk)Ib9!GyiI!Jc*{Pu9=Fuu`{Zn4Ah8+ zVHF&MT8gO{jMJ@tF6zNc%~h!D)?!6`&FZ(IW}tX7>tBhagbH~I!|)PnYJb5Ltdr~Q zg$z{3dZI?u5B0$_2w%oL)MgCI^BS&)YA7BxvrSRY?_u?W@_7HNQZbGS?dEA1iu3G( zSFF4awdvkLjieOSf#0wv-bTHi-JkGgC=<0OoaU_PfWq2eDCXeAf{5Dk6qE-P12Yo zV2aoCGz_QQ1>565R0AvUeq4v`@Dyt8t4;NcLVa?^qh_W9YG%8l?jMNSJ0npY&%%~V&cO8ZV9tH?r4@#Ch8(UccsJZ?rk;I!5MfJZ3@(+kbS7pOJ9X#R?tsq!Ayk7vDk6VQ+MSn+7Q@RD! zzyZ`u9z`|u4c5l%r~!qrGgXd8ElF$Cb>m!1@=*_*gBtO2)GmDk^%m^F7(9r2!1q`N zt3T^4Sxqwrc`=+sY>aDgIi5njHQ9VaW#ckTM7P{LFG;}|Dh6OOPDOQKy`A5R-6)^M z2Ql_J?;jW^;Y7+ss1C)<_cm>P)E-JfJ*Neh#m<<9=@_l|e+G#zT#b6bMhwO`P&X7| zdEAM5&|cIG9k%j$)YO)uma5$I-llDUTB>B!R6l@PqVA}@F$62<{U2`^Jc+ttHmX4% zszWO=7zbhdoX554NlKC&*kM}I{eizI@mFJ?Kw*&Qh?#4d&$0FumA0!XH;JqfJ zFoyCpjKx)0A3rd^#fp@J7JHw7;dmeA7RY9D#$sihkGgJ|mDgba<<|VTq=ci$|8p2$ z2vj^nA;eCo{@<3rVLpjZ5f^omV+>K5@*Z446cRduscVl<<1RetOO1|jCs5K$_<-&p zz9Q}(XD!b#Cz@ZP{$b!dE=(dGCI6VvH%x)u+yJ{!w+c_-G@=(#kMjMfW4iaR;{3N3 z6{o4td=DXShqH;7$SdLVc%B$c+)J>Q{#^q8MGT_upf5D$K6f+O-Q#QWPzt@R;#=HG zET(=0k!sg=pzaX)Eo_0qQAcO;Bw`Kur^s&=&L6}Mg0=ATMJpBNOtmPw=HUlexQ z37veIysr|Dhsb-|xmlP;-4{d(@tW0tLLNt4rF;fg;@bq@sm>alh5sRRln|xsm5J3vhTZxm`DXGeM4;7;*L58Fx_;Q7d4HrR&F5S% zoQn6^b*i6FzMI&nHRwRnil|GJ;iTT@6T}b1JJkI^OeW3|I_lwie3|%($hP_-^JD5> zC2vQZBvw=IL3~Jr6ElecL?_N|(HiJjN4!AAC47ZQBq~u}PqZg?Q(lESnt3?;DeDX9 zeSC{}*Xozrbstc^N!+mdwm6u$OsuuKceT6Tw1Q}C`Mr3RxM1b;7;6unW_8=}|A?;C zPa@h9Kl%#l*KpgAMG!i!n99>F|E~%hlZYu+x6pL)bIT9=ui{^_tgK>l;sWLEIMeEn zktdK3!tVl{@y?9@qfD0P{{@05?*-S3dUM_!BgfEZ=hioSNucJmoLLL9ei z9PA-JHcG&P9YMP;AsB|zVl37rsE?b%Ie-DALY9g7ZG)sn#YMy zq8qg>?Fv%o3t!dv2zMV@3AKD}`hWE(AU{C<3(?H3u1K!$(60#{1F3%k&k=gf`cwWJ zKf!rKG?7nP$BV=!;t25y^|w(+Dft$CO6b_>|HkP|&j>pKy z5>>sTbDBJxyqI{Fyk^n$#NrU&?#69HVy4ZA$sLuQlV4QYcu`Q%^DWOL`SLTnm!;k} SJTtOrZ|0KVqQ@srulGOV9oYi_ delta 10462 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 diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index 8fe01435..65808d43 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -6,9 +6,9 @@ #: 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 -#: 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:54 intervention/forms/forms.py:156 +#: intervention/forms/forms.py:168 intervention/forms/modalForms.py:124 +#: intervention/forms/modalForms.py:137 intervention/forms/modalForms.py:150 #: 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-02-03 13:37+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -49,7 +49,7 @@ msgstr "Bis" #: compensation/templates/compensation/report/eco_account/report.html:16 #: compensation/utils/quality.py:100 ema/templates/ema/detail/view.html:49 #: ema/templates/ema/report/report.html:16 ema/utils/quality.py:26 -#: intervention/forms/forms.py:100 +#: intervention/forms/forms.py:102 #: intervention/templates/intervention/detail/view.html:56 #: intervention/templates/intervention/report/report.html:37 #: intervention/utils/quality.py:49 konova/filters/mixins.py:395 @@ -61,9 +61,9 @@ msgid "Select the responsible office" msgstr "Verantwortliche Stelle" #: analysis/forms.py:58 compensation/forms/forms.py:88 -#: compensation/forms/forms.py:165 intervention/forms/forms.py:62 -#: intervention/forms/forms.py:79 intervention/forms/forms.py:95 -#: intervention/forms/forms.py:111 intervention/forms/modalForms.py:45 +#: compensation/forms/forms.py:165 intervention/forms/forms.py:64 +#: intervention/forms/forms.py:81 intervention/forms/forms.py:97 +#: intervention/forms/forms.py:113 intervention/forms/modalForms.py:46 msgid "Click for selection" msgstr "Auswählen..." @@ -220,7 +220,7 @@ msgstr "Abbuchungen" #: 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 +#: intervention/forms/modalForms.py:294 msgid "Surface" msgstr "Fläche" @@ -270,7 +270,7 @@ msgstr "" " " #: analysis/templates/analysis/reports/includes/intervention/laws.html:14 -#: intervention/forms/forms.py:67 +#: intervention/forms/forms.py:69 #: intervention/templates/intervention/detail/view.html:39 #: intervention/templates/intervention/report/report.html:20 msgid "Law" @@ -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:305 intervention/forms/modalForms.py:312 #: 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:278 intervention/forms/modalForms.py:285 #: konova/templates/konova/includes/quickstart/ecoaccounts.html:4 #: templates/navbars/navbar.html:34 msgid "Eco-account" @@ -314,13 +314,13 @@ msgid "Show only unrecorded" msgstr "Nur unverzeichnete anzeigen" #: compensation/forms/forms.py:32 compensation/tables.py:25 -#: compensation/tables.py:167 ema/tables.py:28 intervention/forms/forms.py:26 +#: compensation/tables.py:167 ema/tables.py:28 intervention/forms/forms.py:28 #: intervention/tables.py:23 #: intervention/templates/intervention/detail/includes/compensations.html:30 msgid "Identifier" msgstr "Kennung" -#: compensation/forms/forms.py:35 intervention/forms/forms.py:29 +#: compensation/forms/forms.py:35 intervention/forms/forms.py:31 #: user/forms.py:126 msgid "Generated automatically" msgstr "Automatisch generiert" @@ -335,7 +335,7 @@ msgstr "Automatisch generiert" #: compensation/templates/compensation/report/eco_account/report.html:12 #: ema/tables.py:33 ema/templates/ema/detail/includes/documents.html:28 #: ema/templates/ema/detail/view.html:31 -#: ema/templates/ema/report/report.html:12 intervention/forms/forms.py:38 +#: ema/templates/ema/report/report.html:12 intervention/forms/forms.py:40 #: intervention/tables.py:28 #: intervention/templates/intervention/detail/includes/compensations.html:33 #: intervention/templates/intervention/detail/includes/documents.html:28 @@ -345,7 +345,7 @@ msgstr "Automatisch generiert" msgid "Title" msgstr "Bezeichnung" -#: compensation/forms/forms.py:46 intervention/forms/forms.py:40 +#: compensation/forms/forms.py:46 intervention/forms/forms.py:42 msgid "An explanatory name" msgstr "Aussagekräftiger Titel" @@ -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:180 intervention/forms/modalForms.py:149 #: intervention/templates/intervention/detail/includes/documents.html:31 #: intervention/templates/intervention/detail/includes/payments.html:34 #: intervention/templates/intervention/detail/includes/revocation.html:38 @@ -373,7 +373,7 @@ msgid "Comment" msgstr "Kommentar" #: compensation/forms/forms.py:59 compensation/forms/modalForms.py:351 -#: intervention/forms/forms.py:180 +#: intervention/forms/forms.py:182 msgid "Additional comment" msgstr "Zusätzlicher Kommentar" @@ -382,14 +382,14 @@ msgstr "Zusätzlicher Kommentar" #: compensation/templates/compensation/report/eco_account/report.html:20 #: compensation/utils/quality.py:102 ema/templates/ema/detail/view.html:53 #: ema/templates/ema/report/report.html:20 ema/utils/quality.py:28 -#: intervention/forms/forms.py:128 +#: intervention/forms/forms.py:130 #: intervention/templates/intervention/detail/view.html:60 #: intervention/templates/intervention/report/report.html:41 #: intervention/utils/quality.py:42 msgid "Conservation office file number" msgstr "Aktenzeichen Eintragungsstelle" -#: compensation/forms/forms.py:99 intervention/forms/forms.py:134 +#: compensation/forms/forms.py:99 intervention/forms/forms.py:136 msgid "ETS-123/ABC.456" msgstr "" @@ -401,7 +401,7 @@ msgstr "Maßnahmenträger" msgid "Who handles the eco-account" msgstr "Wer für die Herrichtung des Ökokontos verantwortlich ist" -#: compensation/forms/forms.py:112 intervention/forms/forms.py:147 +#: compensation/forms/forms.py:112 intervention/forms/forms.py:149 msgid "Company Mustermann" msgstr "Firma Mustermann" @@ -436,37 +436,37 @@ msgstr "Wählen Sie den Eingriff, für den diese Kompensation bestimmt ist" msgid "New compensation" msgstr "Neue Kompensation" -#: compensation/forms/forms.py:241 +#: compensation/forms/forms.py:255 msgid "Edit compensation" msgstr "Bearbeite Kompensation" -#: compensation/forms/forms.py:302 compensation/utils/quality.py:84 +#: compensation/forms/forms.py:316 compensation/utils/quality.py:84 msgid "Available Surface" msgstr "Verfügbare Fläche" -#: compensation/forms/forms.py:305 +#: compensation/forms/forms.py:319 msgid "The amount that can be used for deductions" msgstr "Die für Abbuchungen zur Verfügung stehende Menge" -#: compensation/forms/forms.py:314 +#: compensation/forms/forms.py:328 #: compensation/templates/compensation/detail/eco_account/view.html:66 #: compensation/utils/quality.py:72 msgid "Agreement date" msgstr "Vereinbarungsdatum" -#: compensation/forms/forms.py:316 +#: compensation/forms/forms.py:330 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:354 compensation/views/eco_account.py:102 msgid "New Eco-Account" msgstr "Neues Ökokonto" -#: compensation/forms/forms.py:349 +#: compensation/forms/forms.py:363 msgid "Eco-Account XY; Location ABC" msgstr "Ökokonto XY; Flur ABC" -#: compensation/forms/forms.py:403 +#: compensation/forms/forms.py:417 msgid "Edit Eco-Account" msgstr "Ökokonto bearbeiten" @@ -484,7 +484,7 @@ 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 +#: intervention/forms/modalForms.py:151 konova/forms.py:375 msgid "Additional comment, maximum {} letters" msgstr "Zusätzlicher Kommentar, maximal {} Zeichen" @@ -512,7 +512,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:296 msgid "in m²" msgstr "" @@ -540,7 +540,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:123 msgid "Date" msgstr "Datum" @@ -642,18 +642,18 @@ msgstr "" msgid "Pieces" msgstr "Stück" -#: compensation/models/compensation.py:63 konova/utils/message_templates.py:27 +#: compensation/models/compensation.py:63 konova/utils/message_templates.py:43 msgid "Added deadline" msgstr "Frist/Termin hinzugefügt" -#: compensation/models/eco_account.py:57 +#: compensation/models/eco_account.py:56 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:63 msgid "" "Deductable surface can not be smaller than the sum of already existing " "deductions. Please contact the responsible users for the deductions!" @@ -943,14 +943,14 @@ msgstr "Zuletzt bearbeitet" #: compensation/templates/compensation/detail/compensation/view.html:99 #: compensation/templates/compensation/detail/eco_account/view.html:82 -#: ema/templates/ema/detail/view.html:76 intervention/forms/modalForms.py:52 +#: ema/templates/ema/detail/view.html:76 intervention/forms/modalForms.py:53 #: intervention/templates/intervention/detail/view.html:116 msgid "Shared with" msgstr "Freigegeben für" #: compensation/templates/compensation/detail/eco_account/includes/controls.html:15 #: ema/templates/ema/detail/includes/controls.html:15 -#: intervention/forms/modalForms.py:66 +#: intervention/forms/modalForms.py:67 #: intervention/templates/intervention/detail/includes/controls.html:15 msgid "Share" msgstr "Freigabe" @@ -1080,30 +1080,22 @@ msgstr "Daten zu den verantwortlichen Stellen" msgid "Compensations - Overview" msgstr "Kompensationen - Übersicht" -#: compensation/views/compensation.py:82 -msgid "Compensation {} added" -msgstr "Kompensation {} hinzugefügt" - #: compensation/views/compensation.py:147 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 +#: ema/views.py:227 intervention/views.py:311 msgid "Edit {}" msgstr "Bearbeite {}" #: compensation/views/compensation.py:236 compensation/views/eco_account.py:316 -#: ema/views.py:188 intervention/views.py:486 +#: ema/views.py:188 intervention/views.py:487 msgid "Log" msgstr "Log" -#: compensation/views/compensation.py:259 -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 +#: ema/views.py:359 intervention/views.py:133 msgid "Document added" msgstr "Dokument hinzugefügt" @@ -1138,7 +1130,7 @@ 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 +#: ema/views.py:472 intervention/views.py:580 msgid "Report {}" msgstr "Bericht {}" @@ -1158,52 +1150,36 @@ msgstr "Ökokonto {} bearbeitet" msgid "Eco-account removed" msgstr "Ökokonto entfernt" -#: compensation/views/eco_account.py:291 -msgid "Deduction removed" -msgstr "Abbuchung entfernt" - #: compensation/views/eco_account.py:337 ema/views.py:269 -#: intervention/views.py:529 +#: intervention/views.py:558 msgid "{} unrecorded" msgstr "{} entzeichnet" #: compensation/views/eco_account.py:337 ema/views.py:269 -#: intervention/views.py:529 +#: intervention/views.py:558 msgid "{} recorded" msgstr "{} verzeichnet" -#: compensation/views/eco_account.py:567 intervention/views.py:509 -msgid "Deduction added" -msgstr "Abbuchung hinzugefügt" - #: compensation/views/eco_account.py:659 ema/views.py:538 -#: intervention/views.py:383 +#: intervention/views.py:384 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 +#: intervention/views.py:389 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 +#: intervention/views.py:396 msgid "Share link invalid" msgstr "Freigabelink ungültig" #: compensation/views/eco_account.py:694 ema/views.py:573 -#: intervention/views.py:418 +#: intervention/views.py:419 msgid "Share settings updated" msgstr "Freigabe Einstellungen aktualisiert" -#: compensation/views/payment.py:37 -msgid "Payment added" -msgstr "Zahlung hinzugefügt" - -#: compensation/views/payment.py:58 -msgid "Payment removed" -msgstr "Zahlung gelöscht" - #: ema/forms.py:40 ema/views.py:92 msgid "New EMA" msgstr "Neue EMA hinzufügen" @@ -1248,88 +1224,84 @@ msgstr "EMA {} bearbeitet" msgid "EMA removed" msgstr "EMA entfernt" -#: intervention/forms/forms.py:44 +#: intervention/forms/forms.py:46 msgid "Construction XY; Location ABC" msgstr "Bauvorhaben XY; Flur ABC" -#: intervention/forms/forms.py:50 +#: intervention/forms/forms.py:52 #: intervention/templates/intervention/detail/view.html:35 #: intervention/templates/intervention/report/report.html:16 #: intervention/utils/quality.py:82 msgid "Process type" msgstr "Verfahrenstyp" -#: intervention/forms/forms.py:69 +#: intervention/forms/forms.py:71 msgid "Multiple selection possible" msgstr "Mehrfachauswahl möglich" -#: intervention/forms/forms.py:84 +#: intervention/forms/forms.py:86 #: intervention/templates/intervention/detail/view.html:48 #: intervention/templates/intervention/report/report.html:29 #: intervention/utils/quality.py:46 konova/filters/mixins.py:363 msgid "Registration office" msgstr "Zulassungsbehörde" -#: intervention/forms/forms.py:116 +#: intervention/forms/forms.py:118 #: intervention/templates/intervention/detail/view.html:52 #: intervention/templates/intervention/report/report.html:33 #: intervention/utils/quality.py:39 msgid "Registration office file number" msgstr "Aktenzeichen Zulassungsbehörde" -#: intervention/forms/forms.py:122 +#: intervention/forms/forms.py:124 msgid "ZB-123/ABC.456" msgstr "" -#: intervention/forms/forms.py:140 +#: intervention/forms/forms.py:142 #: intervention/templates/intervention/detail/view.html:64 #: intervention/templates/intervention/report/report.html:45 #: intervention/utils/quality.py:52 msgid "Intervention handler" msgstr "Eingriffsverursacher" -#: intervention/forms/forms.py:144 +#: intervention/forms/forms.py:146 msgid "Who performs the intervention" msgstr "Wer führt den Eingriff durch" -#: intervention/forms/forms.py:153 +#: intervention/forms/forms.py:155 #: intervention/templates/intervention/detail/view.html:96 #: intervention/templates/intervention/report/report.html:83 #: intervention/utils/quality.py:73 msgid "Registration date" msgstr "Datum Zulassung bzw. Satzungsbeschluss" -#: intervention/forms/forms.py:165 +#: intervention/forms/forms.py:167 #: intervention/templates/intervention/detail/view.html:100 #: intervention/templates/intervention/report/report.html:87 msgid "Binding on" msgstr "Datum Bestandskraft" -#: intervention/forms/forms.py:191 intervention/views.py:91 +#: intervention/forms/forms.py:193 intervention/views.py:92 msgid "New intervention" msgstr "Neuer Eingriff" -#: intervention/forms/forms.py:269 +#: intervention/forms/forms.py:271 msgid "Edit intervention" msgstr "Eingriff bearbeiten" -#: intervention/forms/forms.py:338 -msgid "General data edited" -msgstr "Allgemeine Daten bearbeitet" - -#: intervention/forms/modalForms.py:25 +#: intervention/forms/modalForms.py:26 msgid "Share link" msgstr "Freigabelink" -#: intervention/forms/modalForms.py:27 +#: intervention/forms/modalForms.py:28 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" -#: intervention/forms/modalForms.py:37 +#: intervention/forms/modalForms.py:38 msgid "Add user to share with" msgstr "Nutzer direkt hinzufügen" -#: intervention/forms/modalForms.py:39 +#: intervention/forms/modalForms.py:40 msgid "" "Multiple selection possible - You can only select users which do not already " "have access. Enter the full username." @@ -1337,46 +1309,46 @@ msgstr "" "Mehrfachauswahl möglich - Sie können nur Nutzer wählen, für die der Eintrag " "noch nicht freigegeben wurde. Geben Sie den ganzen Nutzernamen an." -#: intervention/forms/modalForms.py:55 +#: intervention/forms/modalForms.py:56 msgid "Remove check to remove access for this user" msgstr "Wählen Sie die Nutzer ab, die keinen Zugriff mehr haben sollen" -#: intervention/forms/modalForms.py:67 +#: intervention/forms/modalForms.py:68 msgid "Share settings for {}" msgstr "Freigabe Einstellungen für {}" -#: intervention/forms/modalForms.py:124 +#: intervention/forms/modalForms.py:125 msgid "Date of revocation" msgstr "Datum des Widerspruchs" -#: intervention/forms/modalForms.py:135 +#: intervention/forms/modalForms.py:136 #: intervention/templates/intervention/detail/includes/revocation.html:35 msgid "Document" msgstr "Dokument" -#: intervention/forms/modalForms.py:138 +#: intervention/forms/modalForms.py:139 msgid "Must be smaller than 15 Mb" msgstr "Muss kleiner als 15 Mb sein" -#: intervention/forms/modalForms.py:162 +#: intervention/forms/modalForms.py:163 #: intervention/templates/intervention/detail/includes/revocation.html:18 msgid "Add revocation" msgstr "Widerspruch hinzufügen" -#: intervention/forms/modalForms.py:179 +#: intervention/forms/modalForms.py:180 msgid "Checked intervention data" msgstr "Eingriffsdaten geprüft" -#: intervention/forms/modalForms.py:185 +#: intervention/forms/modalForms.py:186 msgid "Checked compensations data and payments" msgstr "Kompensationen und Zahlungen geprüft" -#: intervention/forms/modalForms.py:194 +#: intervention/forms/modalForms.py:195 #: 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:196 konova/forms.py:457 msgid "" "I, {} {}, confirm that all necessary control steps have been performed by " "myself." @@ -1384,23 +1356,23 @@ msgstr "" "Ich, {} {}, bestätige, dass die notwendigen Kontrollschritte durchgeführt " "wurden:" -#: intervention/forms/modalForms.py:279 +#: intervention/forms/modalForms.py:280 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:307 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:320 msgid "New Deduction" msgstr "Neue Abbuchung" -#: intervention/forms/modalForms.py:320 +#: intervention/forms/modalForms.py:321 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:349 msgid "" "Eco-account {} is not recorded yet. You can only deduct from recorded " "accounts." @@ -1408,7 +1380,7 @@ msgstr "" "Ökokonto {} ist noch nicht verzeichnet. Abbuchungen können nur von " "verzeichneten Ökokonten erfolgen." -#: intervention/forms/modalForms.py:361 +#: intervention/forms/modalForms.py:362 msgid "" "The account {} has not enough surface for a deduction of {} m². There are " "only {} m² left" @@ -1511,39 +1483,31 @@ msgstr "" "Kein Ausgleich jeglicher Art gefunden (Kompensation, Ersatzzahlung, " "Abbuchung)" -#: intervention/views.py:48 +#: intervention/views.py:49 msgid "Interventions - Overview" msgstr "Eingriffe - Übersicht" -#: intervention/views.py:81 +#: intervention/views.py:82 msgid "Intervention {} added" msgstr "Eingriff {} hinzugefügt" -#: intervention/views.py:249 +#: intervention/views.py:250 msgid "This intervention has {} revocations" msgstr "Dem Eingriff liegen {} Widersprüche vor" -#: intervention/views.py:298 +#: intervention/views.py:299 msgid "Intervention {} edited" msgstr "Eingriff {} bearbeitet" -#: intervention/views.py:334 +#: intervention/views.py:335 msgid "{} removed" msgstr "{} entfernt" -#: intervention/views.py:356 -msgid "Revocation removed" -msgstr "Widerspruch entfernt" - -#: intervention/views.py:439 +#: intervention/views.py:440 msgid "Check performed" msgstr "Prüfung durchgeführt" -#: intervention/views.py:461 -msgid "Revocation added" -msgstr "Widerspruch hinzugefügt" - -#: intervention/views.py:534 +#: intervention/views.py:563 msgid "There are errors on this intervention:" msgstr "Es liegen Fehler in diesem Eingriff vor:" @@ -1891,18 +1855,50 @@ msgstr "" "vor. Nur Eintragungsstellennutzer können diese Aktion jetzt durchführen." #: konova/utils/message_templates.py:25 +msgid "Compensation {} added" +msgstr "Kompensation {} hinzugefügt" + +#: konova/utils/message_templates.py:26 +msgid "Compensation {} removed" +msgstr "Kompensation {} entfernt" + +#: konova/utils/message_templates.py:29 +msgid "Deduction added" +msgstr "Abbuchung hinzugefügt" + +#: konova/utils/message_templates.py:30 +msgid "Deduction removed" +msgstr "Abbuchung entfernt" + +#: konova/utils/message_templates.py:33 +msgid "Payment added" +msgstr "Zahlung hinzugefügt" + +#: konova/utils/message_templates.py:34 +msgid "Payment removed" +msgstr "Zahlung gelöscht" + +#: konova/utils/message_templates.py:37 +msgid "Revocation added" +msgstr "Widerspruch hinzugefügt" + +#: konova/utils/message_templates.py:38 +msgid "Revocation removed" +msgstr "Widerspruch entfernt" + +#: konova/utils/message_templates.py:41 msgid "Edited general data" msgstr "Allgemeine Daten bearbeitet" -#: konova/utils/message_templates.py:26 +#: konova/utils/message_templates.py:42 msgid "Added compensation state" msgstr "Zustand hinzugefügt" -#: konova/utils/message_templates.py:28 +#: konova/utils/message_templates.py:44 msgid "Added compensation action" msgstr "Maßnahme hinzufügen" -#: konova/utils/message_templates.py:31 +#: konova/utils/message_templates.py:47 msgid "Geometry conflict detected with {}" msgstr "Geometriekonflikt mit folgenden Einträgen erkannt: {}" @@ -3922,6 +3918,9 @@ msgstr "" msgid "Unable to connect to qpid with SASL mechanism %s" msgstr "" +#~ msgid "General data edited" +#~ msgstr "Allgemeine Daten bearbeitet" + #~ msgid "Action type details" #~ msgstr "Zusatzmerkmale"