diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-03-19 11:12:38 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-03-19 11:12:38 +0100 |
commit | fd397e0752cac5328074db7aff20b6e840537fd3 (patch) | |
tree | e4410852c29e154dc6e32154e4d95375df95cbf5 /archaeological_files/wizards.py | |
parent | 29e86ff4778cb80f62091d185eefc82d32285ffc (diff) | |
download | Ishtar-fd397e0752cac5328074db7aff20b6e840537fd3.tar.bz2 Ishtar-fd397e0752cac5328074db7aff20b6e840537fd3.zip |
Format - black: files
Diffstat (limited to 'archaeological_files/wizards.py')
-rw-r--r-- | archaeological_files/wizards.py | 108 |
1 files changed, 65 insertions, 43 deletions
diff --git a/archaeological_files/wizards.py b/archaeological_files/wizards.py index c259effbe..1538a984a 100644 --- a/archaeological_files/wizards.py +++ b/archaeological_files/wizards.py @@ -23,10 +23,11 @@ from django.db.models import Max from ishtar_common.utils import ugettext_lazy as _ from ishtar_common.forms import reverse_lazy -from ishtar_common.wizards import ClosingWizard, SearchWizard, \ - MultipleDeletionWizard -from archaeological_operations.wizards import OperationWizard,\ - OperationAdministrativeActWizard +from ishtar_common.wizards import ClosingWizard, SearchWizard, MultipleDeletionWizard +from archaeological_operations.wizards import ( + OperationWizard, + OperationAdministrativeActWizard, +) from archaeological_operations.models import AdministrativeAct, Parcel from . import models @@ -37,26 +38,26 @@ class FileSearch(SearchWizard): class FileWizard(OperationWizard): model = models.File - object_parcel_type = 'associated_file' - parcel_step_key = 'parcels-' - town_step_keys = ['towns-'] - wizard_done_window = reverse_lazy('show-file') + object_parcel_type = "associated_file" + parcel_step_key = "parcels-" + town_step_keys = ["towns-"] + wizard_done_window = reverse_lazy("show-file") redirect_url = "file_modification" def get_extra_model(self, dct, m2m, form_list): dct = super(FileWizard, self).get_extra_model(dct, m2m, form_list) - if not dct.get('numeric_reference'): - current_ref = models.File.objects.filter(year=dct['year'])\ - .aggregate(Max('numeric_reference'))["numeric_reference__max"] - dct['numeric_reference'] = current_ref and current_ref + 1 or 1 + if not dct.get("numeric_reference"): + current_ref = models.File.objects.filter(year=dct["year"]).aggregate( + Max("numeric_reference") + )["numeric_reference__max"] + dct["numeric_reference"] = current_ref and current_ref + 1 or 1 return dct def done(self, form_list, **kwargs): """ Save parcels and make numeric_reference unique """ - r = super(FileWizard, self).done(form_list, return_object=True, - **kwargs) + r = super(FileWizard, self).done(form_list, return_object=True, **kwargs) if type(r) not in (list, tuple) or len(r) != 2: return r obj, res = r @@ -64,9 +65,13 @@ class FileWizard(OperationWizard): if not self.modification: numeric_reference = obj.numeric_reference changed = False - while obj.__class__.objects.filter( - numeric_reference=numeric_reference, - year=obj.year).exclude(pk=obj.pk).count(): + while ( + obj.__class__.objects.filter( + numeric_reference=numeric_reference, year=obj.year + ) + .exclude(pk=obj.pk) + .count() + ): numeric_reference += 1 changed = True if changed: @@ -74,33 +79,35 @@ class FileWizard(OperationWizard): obj.save() obj.parcels.clear() for form in form_list: - if not hasattr(form, 'prefix') \ - or not form.prefix.startswith(self.parcel_step_key) \ - or not hasattr(form, 'forms'): + if ( + not hasattr(form, "prefix") + or not form.prefix.startswith(self.parcel_step_key) + or not hasattr(form, "forms") + ): continue for frm in form.forms: if not frm.is_valid(): continue dct = frm.cleaned_data.copy() - if 'parcel' in dct: + if "parcel" in dct: try: - parcel = Parcel.objects.get(pk=dct['parcel']) + parcel = Parcel.objects.get(pk=dct["parcel"]) setattr(parcel, self.object_parcel_type, obj) parcel.save() except (ValueError, ObjectDoesNotExist): continue continue try: - dct['town'] = models.Town.objects.get(pk=int(dct['town'])) + dct["town"] = models.Town.objects.get(pk=int(dct["town"])) except (ValueError, ObjectDoesNotExist, KeyError): continue - dct['associated_file'], dct['operation'] = None, None + dct["associated_file"], dct["operation"] = None, None dct[self.object_parcel_type] = obj - if 'DELETE' in dct: - dct.pop('DELETE') + if "DELETE" in dct: + dct.pop("DELETE") parcel = Parcel.objects.filter(**dct).count() if not parcel: - dct['history_modifier'] = self.request.user + dct["history_modifier"] = self.request.user parcel = Parcel(**dct) parcel.save() return res @@ -110,18 +117,30 @@ class FileModificationWizard(FileWizard): modification = True -FILE_FIELDS = ['year', 'numeric_reference', 'internal_reference', - 'file_type', 'in_charge', 'general_contractor', 'creation_date', - 'reception_date', 'total_surface', 'total_developed_surface', - 'address', 'address_complement', 'postal_code', 'comment'] +FILE_FIELDS = [ + "year", + "numeric_reference", + "internal_reference", + "file_type", + "in_charge", + "general_contractor", + "creation_date", + "reception_date", + "total_surface", + "total_developed_surface", + "address", + "address_complement", + "postal_code", + "comment", +] class FileClosingWizard(ClosingWizard): model = models.File fields = FILE_FIELDS - if settings.COUNTRY == 'fr': - fields += ['saisine_type', 'permit_reference'] - fields += ['towns'] + if settings.COUNTRY == "fr": + fields += ["saisine_type", "permit_reference"] + fields += ["towns"] class FileDeletionWizard(MultipleDeletionWizard, FileClosingWizard): @@ -129,24 +148,28 @@ class FileDeletionWizard(MultipleDeletionWizard, FileClosingWizard): redirect_url = "file_deletion" fields = FILE_FIELDS wizard_templates = { - 'final-file_deletion': 'ishtar/wizard/wizard_file_deletion.html'} + "final-file_deletion": "ishtar/wizard/wizard_file_deletion.html" + } class FileAdministrativeActWizard(OperationAdministrativeActWizard): model = models.File - current_obj_slug = 'administrativeactfile' - ref_object_key = 'associated_file' + current_obj_slug = "administrativeactfile" + ref_object_key = "associated_file" def get_reminder(self): - form_key = 'selec-' + self.url_name - if self.url_name.endswith('_administrativeactfile'): + form_key = "selec-" + self.url_name + if self.url_name.endswith("_administrativeactfile"): # modification and deletion are suffixed with '_modification' # and '_deletion' so it is creation file_id = self.session_get_value(form_key, "pk") try: return ( - (_("Archaeological file"), - str(models.File.objects.get(pk=file_id))),) + ( + _("Archaeological file"), + str(models.File.objects.get(pk=file_id)), + ), + ) except models.File.DoesNotExist: return else: @@ -155,8 +178,7 @@ class FileAdministrativeActWizard(OperationAdministrativeActWizard): admin = AdministrativeAct.objects.get(pk=admin_id) if not admin.associated_file: return - return ((_("Archaeological file"), - str(admin.associated_file)),) + return ((_("Archaeological file"), str(admin.associated_file)),) except AdministrativeAct.DoesNotExist: return |