diff --git a/intervention/forms/modalForms.py b/intervention/forms/modalForms.py index 1af0ddc..4f8fa75 100644 --- a/intervention/forms/modalForms.py +++ b/intervention/forms/modalForms.py @@ -208,13 +208,13 @@ class RunCheckModalForm(BaseModalForm): """ super_result = super().is_valid() # Perform check - msgs = self.instance.quality_check() - for msg in msgs: + checker = self.instance.quality_check() + for msg in checker.messages: self.add_error( "checked_intervention", msg ) - return super_result and (len(msgs) == 0) + return super_result and checker.valid def save(self): """ Saving logic diff --git a/intervention/models.py b/intervention/models.py index 9d0c881..7fbb922 100644 --- a/intervention/models.py +++ b/intervention/models.py @@ -16,6 +16,7 @@ from codelist.models import KonovaCode from codelist.settings import CODELIST_REGISTRATION_OFFICE_ID, CODELIST_CONSERVATION_OFFICE_ID, CODELIST_LAW_ID, \ CODELIST_PROCESS_TYPE_ID from intervention.managers import InterventionManager +from intervention.utils.quality import InterventionQualityChecker from konova.models import BaseObject, Geometry, UuidModel, BaseResource, AbstractDocument, \ generate_document_file_upload_path from konova.settings import DEFAULT_SRID_RLP, LANIS_LINK_TEMPLATE, LANIS_ZOOM_LUT @@ -56,7 +57,6 @@ class ResponsibilityData(UuidModel): conservation_file_number = models.CharField(max_length=1000, blank=True, null=True) handler = models.CharField(max_length=500, null=True, blank=True, help_text="Refers to 'Eingriffsverursacher' or 'Maßnahmenträger'") - def __str__(self): return "ZB: {} | ETS: {} | Handler: {}".format( self.registration_office, @@ -296,62 +296,15 @@ class Intervention(BaseObject): pass super().delete(using, keep_parents) - def quality_check(self) -> list: + def quality_check(self) -> InterventionQualityChecker: """ Quality check Returns: ret_msgs (list): Holds error messages """ - ret_msgs = [] - - self._check_quality_responsible_data(ret_msgs) - self._check_quality_legal_data(ret_msgs) - - # ToDo: Extend for more! - - return ret_msgs - - def _check_quality_responsible_data(self, ret_msgs: list): - """ Checks data quality of related ResponsibilityData - - Args: - ret_msgs (dict): Holds error messages - - Returns: - - """ - try: - # Check for file numbers - if not self.responsible.registration_file_number or len(self.responsible.registration_file_number) == 0: - ret_msgs.append(_("Registration office file number missing")) - - if not self.responsible.conservation_file_number or len(self.responsible.conservation_file_number) == 0: - ret_msgs.append(_("Conservation office file number missing")) - except AttributeError: - # responsible data not found - ret_msgs.append(_("Responsible data missing")) - - def _check_quality_legal_data(self, ret_msgs: list): - """ Checks data quality of related LegalData - - Args: - ret_msgs (dict): Holds error messages - - Returns: - - """ - try: - # Check for a revocation - if self.legal.revocation: - ret_msgs.append(_("Revocation exists")) - - if self.legal.registration_date is None: - ret_msgs.append(_("Registration date missing")) - - if self.legal.binding_date is None: - ret_msgs.append(_("Binding on missing")) - except AttributeError: - ret_msgs.append(_("Legal data missing")) + checker = InterventionQualityChecker(obj=self) + checker.run_check() + return checker def get_LANIS_link(self) -> str: """ Generates a link for LANIS depending on the geometry diff --git a/intervention/utils/quality.py b/intervention/utils/quality.py new file mode 100644 index 0000000..72ed2a7 --- /dev/null +++ b/intervention/utils/quality.py @@ -0,0 +1,112 @@ +""" +Author: Michel Peltriaux +Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany +Contact: michel.peltriaux@sgdnord.rlp.de +Created on: 25.10.21 + +""" +from django.utils.translation import gettext_lazy as _ +from konova.utils.quality import AbstractQualityChecker + + +class InterventionQualityChecker(AbstractQualityChecker): + def run_check(self): + """ Perform all defined data checks + + Returns: + + """ + + self._check_responsible_data() + self._check_legal_data() + self._check_compensations() + self._check_geometry() + self.valid = len(self.messages) == 0 + + def _check_responsible_data(self): + """ Checks data quality of related ResponsibilityData + + Args: + self.messages (dict): Holds error messages + + Returns: + + """ + try: + resp = self.obj.responsible + # Check for file numbers + if not resp.registration_file_number or len(resp.registration_file_number) == 0: + self._add_missing_attr_name(_("Registration office file number")) + + if not resp.conservation_file_number or len(resp.conservation_file_number) == 0: + self._add_missing_attr_name(_("Conservation office file number")) + + # Check for selected offices + if resp.registration_office is None: + self._add_missing_attr_name(_("Registration office")) + + if resp.conservation_office is None: + self._add_missing_attr_name(_("Conservation office")) + + if resp.handler is None: + self._add_missing_attr_name(_("Intervention handler")) + except AttributeError: + # responsible data not found + self._add_missing_attr_name(_("Responsible data")) + + def _check_legal_data(self): + """ Checks data quality of related LegalData + + Args: + self.messages (dict): Holds error messages + + Returns: + + """ + try: + legal = self.obj.legal + # Check for a revocation + if legal.revocation: + self.messages.append(_("Revocation exists")) + + if legal.registration_date is None: + self._add_missing_attr_name(_("Registration date")) + + if legal.binding_date is None: + self._add_missing_attr_name(_("Binding date")) + + if legal.laws.count() == 0: + self._add_missing_attr_name(_("Laws")) + + if legal.process_type is None: + self._add_missing_attr_name(_("Process type")) + except AttributeError: + self._add_missing_attr_name(_("Legal data")) + + def _check_compensations(self): + """ Checks for compensation, deduction or payment + + Returns: + + """ + c_comps = self.obj.compensations.count() + c_pays = self.obj.payments.count() + c_deducs = self.obj.deductions.count() + c_all = c_comps + c_pays + c_deducs + if c_all == 0: + self.messages.append( + _("No compensation of any type found (Compensation, Payment, Deduction)") + ) + + def _check_geometry(self): + """ Checks on the geometry + + Returns: + + """ + try: + geometry_obj = self.obj.geometry + if geometry_obj.geom.empty: + self._add_missing_attr_name(_("Geometry")) + except AttributeError: + self._add_missing_attr_name(_("Geometry")) diff --git a/konova/utils/quality.py b/konova/utils/quality.py new file mode 100644 index 0000000..b59c327 --- /dev/null +++ b/konova/utils/quality.py @@ -0,0 +1,34 @@ +""" +Author: Michel Peltriaux +Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany +Contact: michel.peltriaux@sgdnord.rlp.de +Created on: 25.10.21 + +""" +from abc import abstractmethod +from django.utils.translation import gettext_lazy as _ + +from konova.models import BaseObject + + +class AbstractQualityChecker: + valid = False + messages = [] + obj = None + + class Meta: + abstract = True + + def __init__(self, obj: BaseObject): + self.obj = obj + self.messages = [] + self.valid = False + + @abstractmethod + def run_check(self): + raise NotImplementedError + + def _add_missing_attr_name(self, attr_name: str): + missing = _('missing') + self.messages.append(f"{attr_name} {missing}") + diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index 8a1e11b..a992cbb 100644 Binary files a/locale/de/LC_MESSAGES/django.mo and b/locale/de/LC_MESSAGES/django.mo differ diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index 2ac3f91..5adae75 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -19,7 +19,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-22 13:14+0200\n" +"POT-Creation-Date: 2021-10-25 12:54+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -37,22 +37,23 @@ msgstr "Vom" msgid "To" msgstr "Bis" -#: analysis/forms.py:47 compensation/forms/forms.py:94 +#: analysis/forms.py:47 compensation/forms/forms.py:93 #: compensation/templates/compensation/detail/eco_account/view.html:58 #: compensation/templates/compensation/report/eco_account/report.html:16 #: ema/templates/ema/detail/view.html:42 #: ema/templates/ema/report/report.html:16 intervention/forms/forms.py:101 #: intervention/templates/intervention/detail/view.html:56 #: intervention/templates/intervention/report/report.html:37 +#: intervention/utils/quality.py:49 msgid "Conservation office" msgstr "Eintragungsstelle" -#: analysis/forms.py:49 compensation/forms/forms.py:96 +#: analysis/forms.py:49 compensation/forms/forms.py:95 msgid "Select the responsible office" msgstr "Verantwortliche Stelle" -#: analysis/forms.py:58 compensation/forms/forms.py:68 -#: compensation/forms/forms.py:105 compensation/forms/forms.py:156 +#: analysis/forms.py:58 compensation/forms/forms.py:67 +#: compensation/forms/forms.py:104 compensation/forms/forms.py:155 #: intervention/forms/forms.py:63 intervention/forms/forms.py:80 #: intervention/forms/forms.py:96 intervention/forms/forms.py:112 msgid "Click for selection" @@ -298,18 +299,18 @@ msgstr "Vor" msgid "Show only unrecorded" msgstr "Nur unverzeichnete anzeigen" -#: compensation/forms/forms.py:32 compensation/tables.py:25 +#: compensation/forms/forms.py:31 compensation/tables.py:25 #: compensation/tables.py:166 ema/tables.py:28 intervention/forms/forms.py:27 #: 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:30 +#: compensation/forms/forms.py:34 intervention/forms/forms.py:30 msgid "Generated automatically" msgstr "Automatisch generiert" -#: compensation/forms/forms.py:44 compensation/tables.py:30 +#: compensation/forms/forms.py:43 compensation/tables.py:30 #: compensation/tables.py:171 #: compensation/templates/compensation/detail/compensation/includes/documents.html:28 #: compensation/templates/compensation/detail/compensation/view.html:31 @@ -329,23 +330,23 @@ msgstr "Automatisch generiert" msgid "Title" msgstr "Bezeichnung" -#: compensation/forms/forms.py:46 intervention/forms/forms.py:41 +#: compensation/forms/forms.py:45 intervention/forms/forms.py:41 msgid "An explanatory name" msgstr "Aussagekräftiger Titel" -#: compensation/forms/forms.py:50 ema/forms.py:47 ema/forms.py:105 +#: compensation/forms/forms.py:49 ema/forms.py:47 ema/forms.py:105 msgid "Compensation XY; Location ABC" msgstr "Kompensation XY; Flur ABC" -#: compensation/forms/forms.py:56 +#: compensation/forms/forms.py:55 msgid "Fundings" msgstr "Förderungen" -#: compensation/forms/forms.py:59 +#: compensation/forms/forms.py:58 msgid "Select fundings for this compensation" msgstr "Wählen Sie ggf. Fördermittelprojekte" -#: compensation/forms/forms.py:74 compensation/forms/modalForms.py:61 +#: compensation/forms/forms.py:73 compensation/forms/modalForms.py:61 #: compensation/forms/modalForms.py:272 compensation/forms/modalForms.py:367 #: compensation/templates/compensation/detail/compensation/includes/actions.html:34 #: compensation/templates/compensation/detail/compensation/includes/deadlines.html:34 @@ -364,63 +365,65 @@ msgstr "Wählen Sie ggf. Fördermittelprojekte" msgid "Comment" msgstr "Kommentar" -#: compensation/forms/forms.py:76 intervention/forms/forms.py:181 +#: compensation/forms/forms.py:75 intervention/forms/forms.py:181 msgid "Additional comment" msgstr "Zusätzlicher Kommentar" -#: compensation/forms/forms.py:110 +#: compensation/forms/forms.py:109 #: compensation/templates/compensation/detail/eco_account/view.html:62 #: compensation/templates/compensation/report/eco_account/report.html:20 #: ema/templates/ema/detail/view.html:46 #: ema/templates/ema/report/report.html:20 intervention/forms/forms.py:129 #: 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:116 intervention/forms/forms.py:135 +#: compensation/forms/forms.py:115 intervention/forms/forms.py:135 msgid "ETS-123/ABC.456" msgstr "" -#: compensation/forms/forms.py:122 +#: compensation/forms/forms.py:121 msgid "Eco-account handler" msgstr "Maßnahmenträger" -#: compensation/forms/forms.py:126 +#: compensation/forms/forms.py:125 msgid "Who handles the eco-account" msgstr "Wer für die Herrichtung des Ökokontos verantwortlich ist" -#: compensation/forms/forms.py:129 intervention/forms/forms.py:148 +#: compensation/forms/forms.py:128 intervention/forms/forms.py:148 msgid "Company Mustermann" msgstr "Firma Mustermann" -#: compensation/forms/forms.py:147 +#: compensation/forms/forms.py:146 #: compensation/templates/compensation/detail/compensation/view.html:35 #: compensation/templates/compensation/report/compensation/report.html:16 msgid "compensates intervention" msgstr "kompensiert Eingriff" -#: compensation/forms/forms.py:149 +#: compensation/forms/forms.py:148 msgid "Select the intervention for which this compensation compensates" msgstr "Wählen Sie den Eingriff, für den diese Kompensation bestimmt ist" -#: compensation/forms/forms.py:174 +#: compensation/forms/forms.py:173 msgid "New compensation" msgstr "Neue Kompensation" -#: compensation/forms/forms.py:232 +#: compensation/forms/forms.py:231 msgid "Edit compensation" msgstr "Bearbeite Kompensation" -#: compensation/forms/forms.py:291 +#: compensation/forms/forms.py:290 msgid "Available Surface" msgstr "Verfügbare Fläche" -#: compensation/forms/forms.py:294 +#: compensation/forms/forms.py:293 msgid "The amount that can be used for deductions" msgstr "Die für Abbuchungen zur Verfügung stehende Menge" -#: compensation/forms/forms.py:303 +#: compensation/forms/forms.py:302 +#: compensation/templates/compensation/detail/eco_account/view.html:66 msgid "Agreement date" msgstr "Vereinbarungsdatum" @@ -876,7 +879,7 @@ msgid "Recorded on " msgstr "Verzeichnet am" #: compensation/templates/compensation/detail/compensation/view.html:71 -#: compensation/templates/compensation/detail/eco_account/view.html:70 +#: compensation/templates/compensation/detail/eco_account/view.html:74 #: compensation/templates/compensation/report/compensation/report.html:24 #: compensation/templates/compensation/report/eco_account/report.html:28 #: ema/templates/ema/detail/view.html:54 @@ -885,7 +888,7 @@ msgid "Funded by" msgstr "Gefördert mit" #: compensation/templates/compensation/detail/compensation/view.html:79 -#: compensation/templates/compensation/detail/eco_account/view.html:78 +#: compensation/templates/compensation/detail/eco_account/view.html:82 #: compensation/templates/compensation/report/compensation/report.html:31 #: compensation/templates/compensation/report/eco_account/report.html:35 #: compensation/templates/compensation/report/eco_account/report.html:49 @@ -897,7 +900,7 @@ msgid "None" msgstr "-" #: compensation/templates/compensation/detail/compensation/view.html:84 -#: compensation/templates/compensation/detail/eco_account/view.html:83 +#: compensation/templates/compensation/detail/eco_account/view.html:87 #: compensation/templates/compensation/report/compensation/report.html:37 #: compensation/templates/compensation/report/eco_account/report.html:54 #: ema/templates/ema/detail/view.html:67 @@ -908,7 +911,7 @@ msgid "Last modified" msgstr "Zuletzt bearbeitet" #: compensation/templates/compensation/detail/compensation/view.html:92 -#: compensation/templates/compensation/detail/eco_account/view.html:91 +#: compensation/templates/compensation/detail/eco_account/view.html:95 #: ema/templates/ema/detail/view.html:82 intervention/forms/modalForms.py:40 #: intervention/templates/intervention/detail/view.html:116 msgid "Shared with" @@ -962,6 +965,7 @@ msgstr "Keine Flächenmenge für Abbuchungen eingegeben. Bitte bearbeiten." #: compensation/templates/compensation/detail/eco_account/view.html:57 #: compensation/templates/compensation/detail/eco_account/view.html:61 #: compensation/templates/compensation/detail/eco_account/view.html:65 +#: compensation/templates/compensation/detail/eco_account/view.html:69 #: ema/templates/ema/detail/view.html:41 ema/templates/ema/detail/view.html:45 #: ema/templates/ema/detail/view.html:49 #: intervention/templates/intervention/detail/view.html:30 @@ -974,10 +978,10 @@ msgstr "Keine Flächenmenge für Abbuchungen eingegeben. Bitte bearbeiten." #: intervention/templates/intervention/detail/view.html:63 #: intervention/templates/intervention/detail/view.html:95 #: intervention/templates/intervention/detail/view.html:99 -msgid "Missing" -msgstr "Fehlt" +msgid "missing" +msgstr "fehlt" -#: compensation/templates/compensation/detail/eco_account/view.html:66 +#: compensation/templates/compensation/detail/eco_account/view.html:70 #: compensation/templates/compensation/report/eco_account/report.html:24 #: ema/templates/ema/detail/view.html:50 #: ema/templates/ema/report/report.html:24 @@ -1017,42 +1021,42 @@ msgstr "Kompensation {} hinzugefügt" msgid "Compensation {} edited" msgstr "Kompensation {} bearbeitet" -#: compensation/views/compensation_views.py:213 -#: compensation/views/eco_account_views.py:287 ema/views.py:175 -#: intervention/views.py:437 +#: compensation/views/compensation_views.py:216 +#: compensation/views/eco_account_views.py:290 ema/views.py:178 +#: intervention/views.py:447 msgid "Log" msgstr "Log" -#: compensation/views/compensation_views.py:234 +#: compensation/views/compensation_views.py:237 msgid "Compensation removed" msgstr "Kompensation entfernt" -#: compensation/views/compensation_views.py:253 -#: compensation/views/eco_account_views.py:386 ema/views.py:328 -#: intervention/views.py:126 +#: compensation/views/compensation_views.py:256 +#: compensation/views/eco_account_views.py:389 ema/views.py:331 +#: intervention/views.py:127 msgid "Document added" msgstr "Dokument hinzugefügt" -#: compensation/views/compensation_views.py:309 -#: compensation/views/eco_account_views.py:330 ema/views.py:272 +#: compensation/views/compensation_views.py:321 +#: compensation/views/eco_account_views.py:333 ema/views.py:275 msgid "State added" msgstr "Zustand hinzugefügt" -#: compensation/views/compensation_views.py:328 -#: compensation/views/eco_account_views.py:349 ema/views.py:291 +#: compensation/views/compensation_views.py:340 +#: compensation/views/eco_account_views.py:352 ema/views.py:294 msgid "Action added" msgstr "Maßnahme hinzugefügt" -#: compensation/views/compensation_views.py:347 -#: compensation/views/eco_account_views.py:368 ema/views.py:310 +#: compensation/views/compensation_views.py:359 +#: compensation/views/eco_account_views.py:371 ema/views.py:313 msgid "Deadline added" msgstr "Frist/Termin hinzugefügt" -#: compensation/views/compensation_views.py:366 +#: compensation/views/compensation_views.py:378 msgid "State removed" msgstr "Zustand gelöscht" -#: compensation/views/compensation_views.py:385 +#: compensation/views/compensation_views.py:397 msgid "Action removed" msgstr "Maßnahme entfernt" @@ -1064,25 +1068,25 @@ msgstr "Ökokonto {} hinzugefügt" msgid "Eco-Account {} edited" msgstr "Ökokonto {} bearbeitet" -#: compensation/views/eco_account_views.py:237 +#: compensation/views/eco_account_views.py:240 msgid "Eco-account removed" msgstr "Ökokonto entfernt" -#: compensation/views/eco_account_views.py:264 +#: compensation/views/eco_account_views.py:267 msgid "Deduction removed" msgstr "Abbuchung entfernt" -#: compensation/views/eco_account_views.py:307 ema/views.py:249 -#: intervention/views.py:477 +#: compensation/views/eco_account_views.py:310 ema/views.py:252 +#: intervention/views.py:487 msgid "{} unrecorded" msgstr "{} entzeichnet" -#: compensation/views/eco_account_views.py:307 ema/views.py:249 -#: intervention/views.py:477 +#: compensation/views/eco_account_views.py:310 ema/views.py:252 +#: intervention/views.py:487 msgid "{} recorded" msgstr "{} verzeichnet" -#: compensation/views/eco_account_views.py:443 intervention/views.py:459 +#: compensation/views/eco_account_views.py:455 intervention/views.py:469 msgid "Deduction added" msgstr "Abbuchung hinzugefügt" @@ -1126,11 +1130,11 @@ msgstr "Ersatzzahlungsmaßnahme" msgid "EMA {} added" msgstr "EMA {} hinzugefügt" -#: ema/views.py:202 +#: ema/views.py:205 msgid "EMA {} edited" msgstr "EMA {} bearbeitet" -#: ema/views.py:232 +#: ema/views.py:235 msgid "EMA removed" msgstr "EMA entfernt" @@ -1157,6 +1161,7 @@ msgstr "Bauvorhaben XY; Flur ABC" #: intervention/forms/forms.py:51 #: intervention/templates/intervention/detail/view.html:35 #: intervention/templates/intervention/report/report.html:16 +#: intervention/utils/quality.py:82 msgid "Process type" msgstr "Verfahrenstyp" @@ -1167,12 +1172,14 @@ msgstr "Mehrfachauswahl möglich" #: intervention/forms/forms.py:85 #: intervention/templates/intervention/detail/view.html:48 #: intervention/templates/intervention/report/report.html:29 +#: intervention/utils/quality.py:46 msgid "Registration office" msgstr "Zulassungsbehörde" #: intervention/forms/forms.py:117 #: 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" @@ -1183,6 +1190,7 @@ msgstr "" #: intervention/forms/forms.py:141 #: intervention/templates/intervention/detail/view.html:64 #: intervention/templates/intervention/report/report.html:45 +#: intervention/utils/quality.py:52 msgid "Intervention handler" msgstr "Eingriffsverursacher" @@ -1193,6 +1201,7 @@ msgstr "Wer führt den Eingriff durch" #: intervention/forms/forms.py:154 #: 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" @@ -1302,34 +1311,6 @@ msgstr "" "Das Ökokonto {} hat für eine Abbuchung von {} m² nicht ausreichend " "Restfläche. Es stehen noch {} m² zur Verfügung." -#: intervention/models.py:326 -msgid "Registration office file number missing" -msgstr "Aktenzeichen Zulassungsbehörde fehlt" - -#: intervention/models.py:329 -msgid "Conservation office file number missing" -msgstr "Aktenzeichen Naturschutzbehörde fehlt" - -#: intervention/models.py:332 -msgid "Responsible data missing" -msgstr "Daten zu Verantwortlichen fehlen" - -#: intervention/models.py:346 -msgid "Revocation exists" -msgstr "Widerspruch liegt vor" - -#: intervention/models.py:349 -msgid "Registration date missing" -msgstr "Datum Zulassung bzw. Satzungsbeschluss fehlt" - -#: intervention/models.py:352 -msgid "Binding on missing" -msgstr "Datum Bestandskraft fehlt" - -#: intervention/models.py:354 -msgid "Legal data missing" -msgstr "Rechtliche Daten fehlen" - #: intervention/tables.py:45 #: intervention/templates/intervention/detail/includes/revocation.html:8 #: intervention/templates/intervention/detail/includes/revocation.html:57 @@ -1404,61 +1385,80 @@ msgstr "Abbuchungen von Ökokonten" msgid "Exist" msgstr "Vorhanden" -#: intervention/views.py:79 +#: intervention/utils/quality.py:55 +msgid "Responsible data" +msgstr "Daten zu den verantwortlichen Stellen" + +#: intervention/utils/quality.py:70 +msgid "Revocation exists" +msgstr "Widerspruch liegt vor" + +#: intervention/utils/quality.py:76 +msgid "Binding date" +msgstr "Datum Bestandskraft" + +#: intervention/utils/quality.py:79 +msgid "Laws" +msgstr "Gesetze" + +#: intervention/utils/quality.py:84 +msgid "Legal data" +msgstr "Rechtliche Daten" + +#: intervention/utils/quality.py:98 +msgid "No compensation of any type found (Compensation, Payment, Deduction)" +msgstr "Kein Ausgleich jeglicher Art gefunden (Kompensation, Ersatzzahlung, Abbuchung)" + +#: intervention/utils/quality.py:110 intervention/utils/quality.py:112 +#: konova/forms.py:246 templates/form/collapsable/form.html:45 +msgid "Geometry" +msgstr "Geometrie" + +#: intervention/views.py:80 msgid "Intervention {} added" msgstr "Eingriff {} hinzugefügt" -#: intervention/views.py:221 +#: intervention/views.py:231 msgid "This intervention has a revocation from {}" msgstr "Es existiert ein Widerspruch vom {}" -#: intervention/views.py:237 -msgid "" -"Remember: This data has not been shared with you, yet. This means you can " -"only read but can not edit or perform any actions like running a check or " -"recording." -msgstr "" -"Beachten Sie: Diese Daten sind für Sie noch nicht freigegeben worden. Das " -"bedeutet, dass Sie nur lesenden Zugriff hierauf haben und weder bearbeiten, " -"noch Prüfungen durchführen oder verzeichnen können." - -#: intervention/views.py:264 +#: intervention/views.py:274 msgid "Intervention {} edited" msgstr "Eingriff {} bearbeitet" -#: intervention/views.py:296 +#: intervention/views.py:306 msgid "{} removed" msgstr "{} entfernt" -#: intervention/views.py:317 +#: intervention/views.py:327 msgid "Revocation removed" msgstr "Widerspruch entfernt" -#: intervention/views.py:343 +#: intervention/views.py:353 msgid "{} has already been shared with you" msgstr "{} wurde bereits für Sie freigegeben" -#: intervention/views.py:348 +#: intervention/views.py:358 msgid "{} has been shared with you" msgstr "{} ist nun für Sie freigegeben" -#: intervention/views.py:355 +#: intervention/views.py:365 msgid "Share link invalid" msgstr "Freigabelink ungültig" -#: intervention/views.py:376 +#: intervention/views.py:386 msgid "Share settings updated" msgstr "Freigabe Einstellungen aktualisiert" -#: intervention/views.py:395 +#: intervention/views.py:405 msgid "Check performed" msgstr "Prüfung durchgeführt" -#: intervention/views.py:415 +#: intervention/views.py:425 msgid "Revocation added" msgstr "Widerspruch hinzugefügt" -#: intervention/views.py:482 +#: intervention/views.py:492 msgid "There are errors on this intervention:" msgstr "Es liegen Fehler in diesem Eingriff vor:" @@ -1499,10 +1499,6 @@ msgstr "Löschen" msgid "You are about to remove {} {}" msgstr "Sie sind dabei {} {} zu löschen" -#: konova/forms.py:246 templates/form/collapsable/form.html:45 -msgid "Geometry" -msgstr "Geometrie" - #: konova/forms.py:322 msgid "Are you sure?" msgstr "Sind Sie sicher?" @@ -1653,6 +1649,16 @@ msgid "This data is not shared with you" msgstr "Diese Daten sind für Sie nicht freigegeben" #: konova/utils/message_templates.py:16 +msgid "" +"Remember: This data has not been shared with you, yet. This means you can " +"only read but can not edit or perform any actions like running a check or " +"recording." +msgstr "" +"Beachten Sie: Diese Daten sind für Sie noch nicht freigegeben worden. Das " +"bedeutet, dass Sie nur lesenden Zugriff hierauf haben und weder bearbeiten, " +"noch Prüfungen durchführen oder verzeichnen können." + +#: konova/utils/message_templates.py:17 msgid "You need to be part of another user group." msgstr "Hierfür müssen Sie einer anderen Nutzergruppe angehören!" @@ -3113,219 +3119,4 @@ msgstr "" #: venv/lib/python3.7/site-packages/fontawesome_5/fields.py:16 msgid "A fontawesome icon field" -msgstr "" - -#~ msgid "After" -#~ msgstr "Nach" - -#~ msgid "Total interventions" -#~ msgstr "Insgesamt" - -#~ msgid "Amount total" -#~ msgstr "Anzahl insgesamt" - -#~ msgid "Amount checked" -#~ msgstr "Anzahl geprüft" - -#~ msgid "Amount recorded" -#~ msgstr "Anzahl verzeichnet" - -#~ msgid "Funding by..." -#~ msgstr "Gefördert mit..." - -#~ msgid "Invalid input" -#~ msgstr "Eingabe fehlerhaft" - -#~ msgid "Map" -#~ msgstr "Karte" - -#~ msgid "Where does the intervention take place" -#~ msgstr "Wo findet der Eingriff statt" - -#~ msgid "Which intervention type is this" -#~ msgstr "Welcher Eingriffstyp" - -#~ msgid "Based on which law" -#~ msgstr "Basiert auf welchem Recht" - -#~ msgid "Data provider" -#~ msgstr "Datenbereitsteller" - -#~ msgid "Who provides the data for the intervention" -#~ msgstr "Wer stellt die Daten für den Eingriff zur Verfügung" - -#~ msgid "Organization" -#~ msgstr "Organisation" - -#~ msgid "Data provider details" -#~ msgstr "Datenbereitsteller Details" - -#~ msgid "Further details" -#~ msgstr "Weitere Details" - -#~ msgid "Files" -#~ msgstr "Dateien" - -#~ msgid "Transfer note" -#~ msgstr "Verwendungszweck" - -#~ msgid "Note for money transfer" -#~ msgstr "Verwendungszweck für Überweisung" - -#~ msgid "Transfer comment" -#~ msgstr "Verwendungszweck" - -#~ msgid "Edit {}" -#~ msgstr "Bearbeite {}" - -#~ msgid "Delete {}" -#~ msgstr "Lösche {}" - -#~ msgid "Actions" -#~ msgstr "Aktionen" - -#~ msgid "Missing surfaces: " -#~ msgstr "Fehlende Flächen: " - -#~ msgid "This will remove '{}'. Are you sure?" -#~ msgstr "Hiermit wird '{}' gelöscht. Sind Sie sicher?" - -#~ msgid "Your own" -#~ msgstr "Eigene" - -#~ msgid "Quickstart" -#~ msgstr "Schnellstart" - -#~ msgid "Logged in as" -#~ msgstr "Eingeloggt als" - -#~ msgid "Last login on" -#~ msgstr "Zuletzt eingeloggt am" - -#~ msgid "Add new eco account" -#~ msgstr "Neues Ökokonto hinzufügen" - -#~ msgid "Delete EMA" -#~ msgstr "Lösche EMA" - -#~ msgid "Menu" -#~ msgstr "Menü" - -#~ msgid "Process" -#~ msgstr "Vorgang" - -#~ msgid "Process management" -#~ msgstr "Vorgangsverwaltung" - -#~ msgid "New process" -#~ msgstr "Neuer Vorgang" - -#~ msgid "Intervention management" -#~ msgstr "Eingriffsverwaltung" - -#~ msgid "Show intervention" -#~ msgstr "Zeige Eingriffe" - -#~ msgid "Eco-account management" -#~ msgstr "Ökokontoverwaltung" - -#~ msgid "Show eco-accounts" -#~ msgstr "Zeige Ökokonten" - -#~ msgid "You are currently working as " -#~ msgstr "Sie arbeiten gerade als " - -#~ msgid "Change..." -#~ msgstr "Ändern..." - -#~ msgid "" -#~ "Interventions must be part of a process. Please fill in the missing data " -#~ "for the process" -#~ msgstr "" -#~ "Eingriffe müssen zu einem Vorgang gehören. Bitte geben SIe die fehlenden " -#~ "Daten für den Vorgang ein." - -#~ msgid "You are working as" -#~ msgstr "Sie arbeiten gerade als " - -#~ msgid "Role changed" -#~ msgstr "Rolle geändert" - -#~ msgid "Official" -#~ msgstr "Amtlich" - -#~ msgid "Company" -#~ msgstr "Firma" - -#~ msgid "NGO" -#~ msgstr "NGO" - -#~ msgid "Licencing Authority" -#~ msgstr "Zulassungsbehörde" - -#~ msgid "Proper title of the process" -#~ msgstr "Titel des Vorgangs" - -#~ msgid "Which process type is this" -#~ msgstr "Welcher Vorgangstyp" - -#~ msgid "Licencing document identifier" -#~ msgstr "Aktenzeichen Zulassungsbehörde" - -#~ msgid "Comment licensing authority" -#~ msgstr "Kommentar Zulassungsbehörde" - -#~ msgid "Registration document identifier" -#~ msgstr "Aktenzeichen Eintragungsstelle" - -#~ msgid "Edit process" -#~ msgstr "Vorgang bearbeiten" - -#~ msgid "private" -#~ msgstr "privat" - -#~ msgid "accessible" -#~ msgstr "bereitgestellt" - -#~ msgid "licensed" -#~ msgstr "genehmigt" - -#~ msgid "official" -#~ msgstr "bestandskräftig" - -#~ msgid "" -#~ "A process is based on an intervention. Please fill in the missing data " -#~ "for this intervention" -#~ msgstr "" -#~ "Ein Vorgang basiert immer auf einem Eingriff. Bitte geben Sie die " -#~ "fehlenden Daten für diesen Eingriff ein" - -#~ msgid "{} status changed from {} to {}" -#~ msgstr "{} Status von {} auf {} geändert" - -#~ msgid "Process {} added" -#~ msgstr "Vorgang {} hinzugefügt" - -#~ msgid "Current role" -#~ msgstr "Aktuelle Rolle" - -#~ msgid "Object title" -#~ msgstr "Objekt Titel" - -#~ msgid "Object identifier" -#~ msgstr "Objekt Identifikator" - -#~ msgid "Open process" -#~ msgstr "Vorgang öffnen" - -#~ msgid "Delete process" -#~ msgstr "Vorgang löschen" - -#~ msgid "Licensing authority document identifier" -#~ msgstr "Aktenzeichen Zulassungsbehörde" - -#~ msgid "Registration office document identifier" -#~ msgstr "Aktenzeichen Eintragungsstelle" - -#~ msgid "You have been logged out" -#~ msgstr "Sie wurden ausgeloggt" +msgstr "" \ No newline at end of file