From 0afb4d34c3da221bcdbc81b7048d71923e3a31b4 Mon Sep 17 00:00:00 2001 From: mpeltriaux Date: Tue, 8 Feb 2022 15:25:44 +0100 Subject: [PATCH] #86 Parcel district column for all * adds parcel district column for all major data objects * adds warning about intervention-revocation on index view of compensations * adds warning about intervention-revocation on detail view of related compensations --- compensation/forms/modalForms.py | 2 +- compensation/models/compensation.py | 22 ++++++- compensation/tables.py | 76 ++++++++++++++++++++--- ema/tables.py | 29 +++++++++ intervention/models/intervention.py | 9 ++- intervention/views.py | 8 --- konova/static/css/konova.css | 7 +++ konova/utils/message_templates.py | 3 + locale/de/LC_MESSAGES/django.mo | Bin 36677 -> 36661 bytes locale/de/LC_MESSAGES/django.po | 93 ++++++++++++++-------------- 10 files changed, 184 insertions(+), 65 deletions(-) diff --git a/compensation/forms/modalForms.py b/compensation/forms/modalForms.py index ae5a6dad..18e60611 100644 --- a/compensation/forms/modalForms.py +++ b/compensation/forms/modalForms.py @@ -21,7 +21,7 @@ from konova.contexts import BaseContext from konova.forms import BaseModalForm, NewDocumentForm, RemoveModalForm from konova.models import DeadlineType from konova.utils.message_templates import FORM_INVALID, ADDED_COMPENSATION_STATE, ADDED_DEADLINE, \ - ADDED_COMPENSATION_ACTION, PAYMENT_ADDED + ADDED_COMPENSATION_ACTION class NewPaymentForm(BaseModalForm): diff --git a/compensation/models/compensation.py b/compensation/models/compensation.py index e90e1735..491a8208 100644 --- a/compensation/models/compensation.py +++ b/compensation/models/compensation.py @@ -22,7 +22,7 @@ from konova.models import BaseObject, AbstractDocument, Deadline, generate_docum from konova.settings import DEFAULT_SRID_RLP, LANIS_LINK_TEMPLATE from konova.utils.message_templates import DATA_UNSHARED_EXPLANATION, COMPENSATION_REMOVED_TEMPLATE, \ DOCUMENT_REMOVED_TEMPLATE, COMPENSATION_EDITED_TEMPLATE, DEADLINE_REMOVED, ADDED_DEADLINE, \ - COMPENSATION_ACTION_REMOVED, COMPENSATION_STATE_REMOVED + COMPENSATION_ACTION_REMOVED, COMPENSATION_STATE_REMOVED, INTERVENTION_HAS_REVOCATIONS_TEMPLATE from user.models import UserActionLogEntry @@ -390,6 +390,26 @@ class Compensation(AbstractCompensation, CEFMixin, CoherenceMixin): """ return self.intervention.is_ready_for_publish() + def set_status_messages(self, request: HttpRequest): + """ Setter for different information that need to be rendered + + Adds messages to the given HttpRequest + + Args: + request (HttpRequest): The incoming request + + Returns: + request (HttpRequest): The modified request + """ + if self.intervention.legal.revocations.exists(): + messages.error( + request, + INTERVENTION_HAS_REVOCATIONS_TEMPLATE.format(self.intervention.legal.revocations.count()), + extra_tags="danger", + ) + super().set_status_messages(request) + return request + class CompensationDocument(AbstractDocument): """ diff --git a/compensation/tables.py b/compensation/tables.py index b78b5aa9..6f29e0dd 100644 --- a/compensation/tables.py +++ b/compensation/tables.py @@ -31,6 +31,11 @@ class CompensationTable(BaseTable, TableRenderMixin): orderable=True, accessor="title", ) + d = tables.Column( + verbose_name=_("Parcel gmrkng"), + orderable=True, + accessor="geometry", + ) c = tables.Column( verbose_name=_("Checked"), orderable=True, @@ -80,14 +85,17 @@ class CompensationTable(BaseTable, TableRenderMixin): Returns: """ - html = "" - html += self.render_link( - tooltip=_("Open {}").format(_("Compensation")), - href=reverse("compensation:detail", args=(record.id,)), - txt=value, - new_tab=False, + context = { + "tooltip": _("Open {}").format(_("Intervention")), + "content": value, + "url": reverse("compensation:detail", args=(record.id,)), + "has_revocations": record.intervention.legal.revocations.exists() + } + html = render_to_string( + "table/revocation_warning_col.html", + context ) - return format_html(html) + return html def render_c(self, value, record: Compensation): """ Renders the checked column for a compensation @@ -115,6 +123,28 @@ class CompensationTable(BaseTable, TableRenderMixin): ) return format_html(html) + def render_d(self, value, record: Compensation): + """ Renders the parcel district column for a compensation + + Args: + value (str): The geometry + record (Compensation): The compensation record + + Returns: + + """ + parcels = value.parcels.values_list( + "gmrkng", + flat=True + ).distinct() + html = render_to_string( + "table/gmrkng_col.html", + { + "entries": parcels + } + ) + return html + def render_r(self, value, record: Compensation): """ Renders the registered column for a compensation @@ -173,10 +203,20 @@ class EcoAccountTable(BaseTable, TableRenderMixin): orderable=True, accessor="title", ) + d = tables.Column( + verbose_name=_("Parcel gmrkng"), + orderable=True, + accessor="geometry", + ) av = tables.Column( verbose_name=_("Available"), orderable=True, empty_values=[], + attrs={ + "th": { + "class": "w-20", + } + } ) r = tables.Column( verbose_name=_("Recorded"), @@ -244,6 +284,28 @@ class EcoAccountTable(BaseTable, TableRenderMixin): html = render_to_string("konova/widgets/progressbar.html", {"value": value_relative}) return format_html(html) + def render_d(self, value, record: Compensation): + """ Renders the parcel district column for a compensation + + Args: + value (str): The geometry + record (Compensation): The compensation record + + Returns: + + """ + parcels = value.parcels.values_list( + "gmrkng", + flat=True + ).distinct() + html = render_to_string( + "table/gmrkng_col.html", + { + "entries": parcels + } + ) + return html + def render_r(self, value, record: EcoAccount): """ Renders the recorded column for an eco account diff --git a/ema/tables.py b/ema/tables.py index d30f3e36..20ceb456 100644 --- a/ema/tables.py +++ b/ema/tables.py @@ -6,6 +6,7 @@ Created on: 19.08.21 """ from django.http import HttpRequest +from django.template.loader import render_to_string from django.utils.html import format_html from django.utils.timezone import localtime from django.utils.translation import gettext_lazy as _ @@ -34,6 +35,11 @@ class EmaTable(BaseTable, TableRenderMixin): orderable=True, accessor="title", ) + d = tables.Column( + verbose_name=_("Parcel gmrkng"), + orderable=True, + accessor="geometry", + ) r = tables.Column( verbose_name=_("Recorded"), orderable=True, @@ -87,6 +93,29 @@ class EmaTable(BaseTable, TableRenderMixin): ) return format_html(html) + def render_d(self, value, record: Ema): + """ Renders the parcel district column for a ema + + Args: + value (str): The geometry + record (Ema): The ema record + + Returns: + + """ + parcels = value.parcels.values_list( + "gmrkng", + flat=True + ).distinct() + html = render_to_string( + "table/gmrkng_col.html", + { + "entries": parcels + } + ) + return html + + def render_r(self, value, record: Ema): """ Renders the registered column for a EMA diff --git a/intervention/models/intervention.py b/intervention/models/intervention.py index 821a835f..8f54a2ae 100644 --- a/intervention/models/intervention.py +++ b/intervention/models/intervention.py @@ -26,7 +26,7 @@ from konova.models import generate_document_file_upload_path, AbstractDocument, RecordableObjectMixin, CheckableObjectMixin, GeoReferencedMixin from konova.settings import LANIS_LINK_TEMPLATE, LANIS_ZOOM_LUT, DEFAULT_SRID_RLP from konova.utils.message_templates import DATA_UNSHARED_EXPLANATION, DOCUMENT_REMOVED_TEMPLATE, \ - PAYMENT_REMOVED, PAYMENT_ADDED, REVOCATION_REMOVED + PAYMENT_REMOVED, PAYMENT_ADDED, REVOCATION_REMOVED, INTERVENTION_HAS_REVOCATIONS_TEMPLATE from user.models import UserActionLogEntry @@ -276,6 +276,13 @@ class Intervention(BaseObject, ShareableObjectMixin, RecordableObjectMixin, Chec Returns: request (HttpRequest): The modified request """ + # Inform user about revocation + if self.legal.revocations.exists(): + messages.error( + request, + INTERVENTION_HAS_REVOCATIONS_TEMPLATE.format(self.legal.revocations.count()), + extra_tags="danger", + ) if not self.is_shared_with(request.user): messages.info(request, DATA_UNSHARED_EXPLANATION) request = self.set_geometry_conflict_message(request) diff --git a/intervention/views.py b/intervention/views.py index c0317035..8a59d9a9 100644 --- a/intervention/views.py +++ b/intervention/views.py @@ -245,14 +245,6 @@ def detail_view(request: HttpRequest, id: str): parcels = intervention.get_underlying_parcels() - # Inform user about revocation - if intervention.legal.revocations.exists(): - messages.error( - request, - _("This intervention has {} revocations").format(intervention.legal.revocations.count()), - extra_tags="danger", - ) - context = { "obj": intervention, "compensations": compensations, diff --git a/konova/static/css/konova.css b/konova/static/css/konova.css index a10e124b..709d3eb3 100644 --- a/konova/static/css/konova.css +++ b/konova/static/css/konova.css @@ -219,6 +219,13 @@ Overwrites bootstrap .btn:focus box shadow color overflow: auto; } +.w-20{ + width: 20%; +} +.w-10{ + width: 20%; +} + /* Extends css for django autocomplete light (dal) No other approach worked to get the autocomplete fields to full width of parent containers diff --git a/konova/utils/message_templates.py b/konova/utils/message_templates.py index e13a9cae..87c22af2 100644 --- a/konova/utils/message_templates.py +++ b/konova/utils/message_templates.py @@ -62,3 +62,6 @@ ADDED_DEADLINE = _("Added deadline") # Geometry conflicts GEOMETRY_CONFLICT_WITH_TEMPLATE = _("Geometry conflict detected with {}") + +# INTERVENTION +INTERVENTION_HAS_REVOCATIONS_TEMPLATE = _("This intervention has {} revocations") diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index c9d4293ad8de176ef64a6005d1b1cb3428ecc471..74f794dec1833275cf54dc769ab7dab41978bbd3 100644 GIT binary patch delta 9547 zcmYM&30PKD9>?(u3W$J;fQTsYvWkF;yW%d2=7#&e@4IQ1Yd6b%*Vk!qLsQE#%gjB^ z+_KC@6KhJ#G_}k$Czo8tvibfvr)Tane?RA(d+*uLeQ7?<_uZZEyR5f6%W<5Q>5fwY zqcR+)7S_gK9E+uK8iwE!n_r9mFVT#oAa8r1vmpx)bMJ%Yu_ zpSJn)E(ulelP!3PdNC-|ahN@)G{$3NEQy0K04HJ!PD71&6KZNdM9t7i>qRU^{toKB z|DtBVx0)Ha8$m)nOhhd~CaQuKs6EjWLvb=j-~!ahH=sJc7d0biP*Z*p)zAaf(mcgd z7*gHT8-wM@SHoC`^>0f;4UIv)xDeH2ug$N;F!GyG9odJPq0dkipGCcQ1vRz5pgQzB z7R4ep%!rGj%A-*oOT|*O@6;iowQGfHxD&R<-dG#o#D#bnwFIMUnvP6IHMj&-;VRU~ z-b8ii7^YQ*uVhHIeKI2*NOxu_BKvG+$| z8S>Lm_g7$fT#w;+5F_xcy?-5DRd}C78Psr7AQHo{5vF4&n|}%0lV6FN+H0s0-9RnH zT~vpQ)G2knDLQ7@jvXe>Z=;5KRi z_fRwV7wWkZbKHCVRk+jo z0cr`3pc*)1{SxVma~?Zj>3S?54o2;nRj9qP*(EWa#7D>~I90P8r#lYAv3M9`uu6T$ ziNkiN(=rYp%FDkO-&AZuotSL z8K|{efg0gz>w44@ZN|bSLrv*HR6{3FU(_#c`8TNdub^h&y1DN=Br=oQYbyRj3EIqZ-_WYT!7kfwQQFzeVkxTd4OEnwSpPMJ-_tYH53;W@tQWATGL^ zs<|Xo;VM)IHep#jfZ9A?T5sC>zD>f4sHxtI>cDZEFF;jv303h=sD|#^{1eoB0WHkbhofdV z6}1Fe7>n&OAIG^Q{7IC^F>4utYA_koumn5@VBTv^SjmcZ)tXMB&vaU)C1K}ABbkCk#@EDfvAcnVG(q(7`}o1T^y-+hT6m`6&pc-6i^KYO= zc+mO<>eyXFJ@*)cuv8l}!{t#km5!mb?_`oFhRskfwn6QI0oHMtN`3}vt+!w>?nhO8 z0`+`>Ex&B@zoPcY6HLb9ZOxKpqL!#8x&b8Wljw!nSP3`a3_OML*s7iR6&sDJ=#ceC zj3Xc1-k5=!`gWLzL$L-fM4kV`sDb>6{V*k$`PU|z%VE?EEW|)uiCThu^u^7Xf?H5~ z;*7n28}^L*P#lU{`^l&Z z7NRO#g_`<}w)|aG2M(e-bR0F1PcZ=tuogZ*eXue*n$6hCC7~CF*@981DVvX4ibI%= zH?TC8>10f`)<T&bE92YAJ_c8V)zQ&Poy*;bE+fzhY(dbTKdFqBcz@ zY>6{a9XWyeE?lzt|60Skn(s+EYN}hH)_fppDaK$GTwZve^*=&FYk3j%;0@GT-^Zpt zbfO#g$T#oK2E>FOjilmd5r*gNjq9jQ_88R>-@e9DScZHI=3z}#MW<0qb{X~jJ=6$&IAfZjOss%yP%}5u zmcN3o9>}*h_M;vwK=t@H)Ojx5-%M#GR0py#9DAWY-QzI=7oeWsfLh~ysE%Djovw$d z@5djgJ(Vzk^RE|D2bf*i1hpAEpc)#8>hToR(yTzu)H>8A+<_YLZd-oL`ZenK-9*jM z?=~MW(3FQ_H099)UDKo56sW;1EC~Ahrp*H7S)N|`lGq?ql^!xul2|pjl`35y5-w!uEzKPmAe_2CEn2Him z71TwIJR3FQUZ@5q+53wzkbIsk--xN?KS0%c4Kr!qc|bxVt~iq40n9=*unD!v-bEd^ zgQy12qNem`)N%a-)$wwp%#5XAaq`tsd!`}Q#h$2kR$?G-L05?#Bm(dNYO0Q*rt&tp9dm?0_=~yY$fFe;dRUTJhP1L6R6lvFW zu8~kfKclAhA*zAk=S+Ed3?-k2+SLs(1Y6qsU2T2{YV%D*4diW92liq+Jcv4`L6gj0 zNJ1Z-|KTLUxG@qnbuXeiv=lY<`PdS7V`+S94Sn7mzeLpYO;H{1fLe+HsLeeB)uD-) zjxJ{4Hmt1ke}P05419qP0@lSAI0~!b`>2lni0Z%tY>a`EO#{zhRq~y&5za=f`N!7N zs4wT&s2RD7n$d??c>V*YmgL{(>EF>@>54ho>?B5fq%JKqI?`nyQDWhKf*&@)4*h_E@W8Ecr&5jQvpW z&#~pJ@L%Njqh@06470?`tea6YwQmOVUxvgZ3e-T!7fr)4)~cuuHnsWgs2LiG+KdxW z4a~suI0ut(6KVh_Q3LoEb;_<|S-gpw;i4`b&~A=G-AF-=q%rC^bwV}R6}6fAqNaK{ zszH6g)X*Z-`}wG~-iz8Z1y}*Eq6Xsgl6fx@W5~NTNN5T>VPl+%QFs8=v9C}sUbQ|( zHCS?{X~2U`$yY!B)YirN$HY`#Bgsz;-ibRPQS7SvL`i<;?==Cl4< zqt7YO=D39F>96*IN2nM47MKRhpgI(T>W~Mu*(zZ@>}~xgYS$N_p8pNw@E%sg@P+)9 zg$))m|H&k#P*4;%SYNkpwQfg^e3#AdLv`Ro)J&W}jqtR+|CRLu`cZxf_5P2j=Wp2j z9hXFL3VugzHvPGx2P04qMxi?9vE|9A3M-)+tZK_^qn^t`ZN|n}8OLH(T!(e>w9OY= zY}#?_lF<2VfE{r<>O*n{bxeN7IDCp8j9p@mXA|oX45EBKCgDF&KV}C|d+8>Yz@Vk( zxpJs{GWzISmBqi830*r4PIdAxdH2UuX)=tG666lyDk9%LQH-+2q^IBq_z5wW(50_L zXJRDx^1P|BS#B!1?&OXW`l(+|=t?A-Q??e*;#8s?5l_A<>Y8qFejxvE(wdxJq#NPO z#8T41I1j%gdJ-7~3u;zWC2k9Eb zYVT`tVQo7Vmh)|)q`iIWC7ek4*FTJN7ULQ}a&pfZk z6FnrIvZh35%4gwML>}o#)E@0ZJSEa7`v*QtbR~Kd;|N`+xwo14`wAp6fzY9>MD+E( z=1FPLnv|}sJozq`B6Lc0jj(U)JJF%A#QZ0Kl9RaC-s=}%#iygUW_*I*X3AE0`^2Zz zTu15|;uxVX*Na3qq8V>&M_rqUMdYvGN}{57e|&UQEmFD;b4MTB1Nb(v+xu&LY-U4B zdJ)%%jfAdUdcq_N|E*@z8Mx2eAR#hvnk{+X+b1D1v^%-+wnPl_&Q3`48SCAVP~ELf z{v!45!WpRR43R>*Ctk&k#5CeM`H!#z@iL)H-zZ&)kb-XW5B`c0yoEfWt%qF6F>a;EPU^sa{{DO!hS`bf&EtKnOMO-00ffzwL(w3LP0pueHT|c zDU0&Xub37Rs$#A$DH*f#NX2tScKT;zmhi4gAGI?xE61}lyw6*q-q}6p?A$YUY25z+ D)!mGV delta 9549 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\n" "Language-Team: LANGUAGE \n" @@ -136,7 +136,7 @@ msgstr "Zuständigkeitsbereich" #: analysis/templates/analysis/reports/includes/intervention/amount.html:17 #: analysis/templates/analysis/reports/includes/intervention/compensated_by.html:8 #: analysis/templates/analysis/reports/includes/intervention/laws.html:17 -#: compensation/tables.py:35 +#: compensation/tables.py:40 #: compensation/templates/compensation/detail/compensation/view.html:63 #: intervention/tables.py:39 #: intervention/templates/intervention/detail/view.html:68 @@ -152,11 +152,11 @@ msgstr "Geprüft" #: analysis/templates/analysis/reports/includes/intervention/compensated_by.html:9 #: analysis/templates/analysis/reports/includes/intervention/laws.html:20 #: analysis/templates/analysis/reports/includes/old_data/amount.html:18 -#: compensation/tables.py:41 compensation/tables.py:182 +#: compensation/tables.py:46 compensation/tables.py:219 #: compensation/templates/compensation/detail/compensation/view.html:77 #: compensation/templates/compensation/detail/eco_account/includes/deductions.html:31 #: compensation/templates/compensation/detail/eco_account/view.html:44 -#: ema/tables.py:38 ema/templates/ema/detail/view.html:35 +#: ema/tables.py:44 ema/templates/ema/detail/view.html:35 #: intervention/tables.py:45 #: intervention/templates/intervention/detail/view.html:82 #: user/models/user_action.py:21 @@ -196,7 +196,7 @@ msgid "Other registration office" msgstr "Andere Zulassungsbehörden" #: analysis/templates/analysis/reports/includes/compensation/card_compensation.html:11 -#: compensation/tables.py:62 +#: compensation/tables.py:67 #: intervention/templates/intervention/detail/includes/compensations.html:8 #: intervention/templates/intervention/report/report.html:49 msgid "Compensations" @@ -239,7 +239,7 @@ msgstr "Kompensationsart" #: analysis/templates/analysis/reports/includes/intervention/compensated_by.html:15 #: analysis/templates/analysis/reports/includes/old_data/amount.html:29 -#: compensation/tables.py:85 +#: compensation/tables.py:90 #: compensation/templates/compensation/detail/compensation/view.html:19 #: konova/templates/konova/includes/quickstart/compensations.html:4 #: templates/navbars/navbar.html:28 @@ -285,7 +285,7 @@ msgstr "Typ" #: analysis/templates/analysis/reports/includes/old_data/amount.html:24 #: intervention/forms/modalForms.py:322 intervention/forms/modalForms.py:329 -#: intervention/tables.py:89 +#: intervention/tables.py:88 #: intervention/templates/intervention/detail/view.html:19 #: konova/templates/konova/includes/quickstart/interventions.html:4 #: templates/navbars/navbar.html:22 @@ -293,7 +293,7 @@ msgid "Intervention" msgstr "Eingriff" #: analysis/templates/analysis/reports/includes/old_data/amount.html:34 -#: compensation/tables.py:226 +#: compensation/tables.py:263 #: compensation/templates/compensation/detail/eco_account/view.html:19 #: intervention/forms/modalForms.py:295 intervention/forms/modalForms.py:302 #: konova/templates/konova/includes/quickstart/ecoaccounts.html:4 @@ -314,7 +314,7 @@ 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:28 +#: compensation/tables.py:194 ema/tables.py:29 intervention/forms/forms.py:28 #: intervention/tables.py:24 #: intervention/templates/intervention/detail/includes/compensations.html:30 msgid "Identifier" @@ -326,14 +326,14 @@ msgid "Generated automatically" msgstr "Automatisch generiert" #: compensation/forms/forms.py:44 compensation/tables.py:30 -#: compensation/tables.py:172 +#: compensation/tables.py:199 #: compensation/templates/compensation/detail/compensation/includes/documents.html:28 #: 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 #: compensation/templates/compensation/report/compensation/report.html:12 #: compensation/templates/compensation/report/eco_account/report.html:12 -#: ema/tables.py:33 ema/templates/ema/detail/includes/documents.html:28 +#: ema/tables.py:34 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:40 #: intervention/tables.py:29 @@ -657,65 +657,70 @@ msgstr "" "Es wurde bereits mehr Fläche abgebucht, als Sie nun als abbuchbar einstellen " "wollen. Kontaktieren Sie die für die Abbuchungen verantwortlichen Nutzer!" -#: compensation/tables.py:47 compensation/tables.py:188 ema/tables.py:44 +#: compensation/tables.py:35 compensation/tables.py:204 ema/tables.py:39 +#: intervention/tables.py:34 konova/filters/mixins.py:98 +msgid "Parcel gmrkng" +msgstr "Gemarkung" + +#: compensation/tables.py:52 compensation/tables.py:225 ema/tables.py:50 #: intervention/tables.py:51 msgid "Editable" msgstr "Freigegeben" -#: compensation/tables.py:53 compensation/tables.py:194 ema/tables.py:50 +#: compensation/tables.py:58 compensation/tables.py:231 ema/tables.py:56 #: intervention/tables.py:57 msgid "Last edit" msgstr "Zuletzt bearbeitet" -#: compensation/tables.py:85 compensation/tables.py:226 ema/tables.py:83 -#: intervention/tables.py:89 +#: compensation/tables.py:90 compensation/tables.py:263 ema/tables.py:89 +#: intervention/tables.py:88 msgid "Open {}" msgstr "Öffne {}" -#: compensation/tables.py:106 intervention/tables.py:108 +#: compensation/tables.py:111 intervention/tables.py:111 msgid "Not checked yet" msgstr "Noch nicht geprüft" -#: compensation/tables.py:111 intervention/tables.py:113 +#: compensation/tables.py:116 intervention/tables.py:116 msgid "Checked on {} by {}" msgstr "Am {} von {} geprüft worden" -#: compensation/tables.py:130 +#: compensation/tables.py:157 #: compensation/templates/compensation/detail/compensation/view.html:80 #: compensation/templates/compensation/detail/eco_account/includes/deductions.html:58 #: compensation/templates/compensation/detail/eco_account/view.html:47 -#: ema/tables.py:102 ema/templates/ema/detail/view.html:38 -#: intervention/tables.py:146 +#: ema/tables.py:131 ema/templates/ema/detail/view.html:38 +#: intervention/tables.py:157 #: intervention/templates/intervention/detail/view.html:85 msgid "Not recorded yet" msgstr "Noch nicht verzeichnet" -#: compensation/tables.py:135 compensation/tables.py:264 ema/tables.py:107 -#: intervention/tables.py:151 +#: compensation/tables.py:162 compensation/tables.py:323 ema/tables.py:136 +#: intervention/tables.py:162 msgid "Recorded on {} by {}" msgstr "Am {} von {} verzeichnet worden" -#: compensation/tables.py:159 compensation/tables.py:286 ema/tables.py:130 -#: intervention/tables.py:174 +#: compensation/tables.py:186 compensation/tables.py:345 ema/tables.py:159 +#: intervention/tables.py:185 msgid "Full access granted" msgstr "Für Sie freigegeben - Datensatz kann bearbeitet werden" -#: compensation/tables.py:159 compensation/tables.py:286 ema/tables.py:130 -#: intervention/tables.py:174 +#: compensation/tables.py:186 compensation/tables.py:345 ema/tables.py:159 +#: intervention/tables.py:185 msgid "Access not granted" msgstr "Nicht freigegeben - Datensatz nur lesbar" -#: compensation/tables.py:177 +#: compensation/tables.py:209 #: compensation/templates/compensation/detail/eco_account/view.html:35 #: konova/templates/konova/widgets/progressbar.html:3 msgid "Available" msgstr "Verfügbar" -#: compensation/tables.py:203 +#: compensation/tables.py:240 msgid "Eco Accounts" msgstr "Ökokonten" -#: compensation/tables.py:259 +#: compensation/tables.py:318 msgid "Not recorded yet. Can not be used for deductions, yet." msgstr "" "Noch nicht verzeichnet. Kann noch nicht für Abbuchungen genutzt werden." @@ -1149,11 +1154,11 @@ msgstr "Neue EMA hinzufügen" msgid "Edit EMA" msgstr "Bearbeite EMA" -#: ema/tables.py:59 templates/navbars/navbar.html:43 +#: ema/tables.py:65 templates/navbars/navbar.html:43 msgid "Payment funded compensations" msgstr "Ersatzzahlungsmaßnahmen (EMA)" -#: ema/tables.py:60 +#: ema/tables.py:66 msgid "EMA explanation" msgstr "" "EMA sind Kompensationen, die durch Ersatzzahlungen finanziert wurden. " @@ -1161,7 +1166,7 @@ msgstr "" "Maßnahmen aus Ersatzzahlungen, die nach 2015 rechtskräftig wurden, werden " "durch die Stiftung Natur und Umwelt verwaltet." -#: ema/tables.py:83 templates/navbars/navbar.html:43 +#: ema/tables.py:89 templates/navbars/navbar.html:43 msgid "EMA" msgstr "" @@ -1349,10 +1354,6 @@ msgstr "" "Das Ökokonto {} hat für eine Abbuchung von {} m² nicht ausreichend " "Restfläche. Es stehen noch {} m² zur Verfügung." -#: intervention/tables.py:34 konova/filters/mixins.py:98 -msgid "Parcel gmrkng" -msgstr "Gemarkung" - #: intervention/templates/intervention/detail/includes/compensations.html:14 msgid "Add new compensation" msgstr "Neue Kompensation hinzufügen" @@ -1421,18 +1422,8 @@ msgstr "Abbuchungen von Ökokonten" msgid "Exist" msgstr "Vorhanden" -#: intervention/templates/intervention/table/gmrkng_col.html:6 -msgid "" -"\n" -"If the geometry is not empty, the parcels are currently recalculated. Please " -"refresh this page in a few moments." -msgstr "" -"\n" -"Falls die Geometrie nicht leer ist, werden die Flurstücke aktuell berechnet. " -"Bitte laden Sie diese Seite in ein paar Augenblicken erneut... \n" -" " - #: intervention/utils/quality.py:70 +#: templates/table/revocation_warning_col.html:5 msgid "Revocations exists" msgstr "Widersprüche liegen vor" @@ -2265,6 +2256,14 @@ msgstr "" "wieder vorbei. \n" " " +#: templates/table/gmrkng_col.html:6 +msgid "" +"If the geometry is not empty, the parcels are currently recalculated. Please " +"refresh this page in a few moments." +msgstr "" +"Falls die Geometrie nicht leer ist, werden die Flurstücke aktuell berechnet. " +"Bitte laden Sie diese Seite in ein paar Augenblicken erneut..." + #: user/forms.py:27 msgid "Notifications" msgstr "Benachrichtigungen"