diff options
Diffstat (limited to 'archaeological_warehouse/wizards.py')
| -rw-r--r-- | archaeological_warehouse/wizards.py | 116 | 
1 files changed, 62 insertions, 54 deletions
| diff --git a/archaeological_warehouse/wizards.py b/archaeological_warehouse/wizards.py index 614e6e6be..66da94b86 100644 --- a/archaeological_warehouse/wizards.py +++ b/archaeological_warehouse/wizards.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3  # -*- coding: utf-8 -*-  # Copyright (C) 2012-2016  Étienne Loks  <etienne.loks_AT_peacefrogsDOTnet> @@ -37,52 +37,54 @@ class ContainerSearch(SearchWizard):  class PackagingWizard(TreatmentWizard): -    basket_step = 'base-packaging' +    basket_step = "base-packaging"      def get_form_initial(self, step, data=None):          initial = super(PackagingWizard, self).get_form_initial(step)          user = self.request.user -        if step != 'base-packaging' or not getattr(user, 'ishtaruser', None) \ -                or not user.ishtaruser.person: +        if ( +            step != "base-packaging" +            or not getattr(user, "ishtaruser", None) +            or not user.ishtaruser.person +        ):              return initial -        initial['person'] = user.ishtaruser.person.pk +        initial["person"] = user.ishtaruser.person.pk          return initial -    def save_model(self, dct, m2m, whole_associated_models, form_list, -                   return_object): +    def save_model(self, dct, m2m, whole_associated_models, form_list, return_object):          dct = self.get_extra_model(dct, m2m, form_list)          obj = self.get_current_saved_object() -        dct['location'] = dct['container'].location +        dct["location"] = dct["container"].location          items = None -        if 'items' in dct: -            items = dct.pop('items') -        if 'basket' in dct: +        if "items" in dct: +            items = dct.pop("items") +        if "basket" in dct:              if not items: -                items = dct.pop('basket') +                items = dct.pop("basket")              else: -                dct.pop('basket') -        if 'treatment_type_list' in dct: -            dct.pop('treatment_type_list') +                dct.pop("basket") +        if "treatment_type_list" in dct: +            dct.pop("treatment_type_list")          treatment = Treatment(**dct) -        extra_args_for_new = {"container": dct['container']} -        treatment.save(items=items, user=self.request.user, -                       extra_args_for_new=extra_args_for_new) -        packaging = TreatmentType.objects.get(txt_idx='packaging') +        extra_args_for_new = {"container": dct["container"]} +        treatment.save( +            items=items, user=self.request.user, extra_args_for_new=extra_args_for_new +        ) +        packaging = TreatmentType.objects.get(txt_idx="packaging")          treatment.treatment_types.add(packaging) -        res = render(self.request, 'ishtar/wizard/wizard_done.html', {}) +        res = render(self.request, "ishtar/wizard/wizard_done.html", {})          return return_object and (obj, res) or res  class WarehouseWizard(Wizard):      model = models.Warehouse -    wizard_done_window = reverse_lazy('show-warehouse') +    wizard_done_window = reverse_lazy("show-warehouse")      redirect_url = "warehouse_modification" -    def save_model(self, dct, m2m, whole_associated_models, form_list, -                   return_object): +    def save_model(self, dct, m2m, whole_associated_models, form_list, return_object):          create_organization = False -        if 'create_organization' in dct: -            create_organization = dct.pop('create_organization') +        if "create_organization" in dct: +            create_organization = dct.pop("create_organization")          obj, res = super(WarehouseWizard, self).save_model(              dct, m2m, whole_associated_models, form_list, True          ) @@ -95,10 +97,9 @@ class WarehouseWizard(Wizard):  class WarehouseModificationWizard(Wizard):      model = models.Warehouse      modification = True -    wizard_done_window = reverse_lazy('show-warehouse') +    wizard_done_window = reverse_lazy("show-warehouse")      wizard_templates = { -        'divisions-warehouse_modification': -            'ishtar/wizard/wizard_warehouse_divisions.html', +        "divisions-warehouse_modification": "ishtar/wizard/wizard_warehouse_divisions.html",      }      redirect_url = "warehouse_modification" @@ -111,28 +112,26 @@ class WarehouseDeletionWizard(MultipleDeletionWizard):  class ContainerWizard(Wizard):      model = models.Container      wizard_templates = { -        'container-container_creation': -            'ishtar/wizard/wizard_container.html', -        'container-container_modification': -            'ishtar/wizard/wizard_container.html', +        "container-container_creation": "ishtar/wizard/wizard_container.html", +        "container-container_modification": "ishtar/wizard/wizard_container.html",      } -    ignore_init_steps = ['localisation'] -    wizard_done_window = reverse_lazy('show-container') +    ignore_init_steps = ["localisation"] +    wizard_done_window = reverse_lazy("show-container")      redirect_url = "container_modification"      def get_form_kwargs(self, step=None):          kwargs = super(ContainerWizard, self).get_form_kwargs(step) -        if step == 'localisation-' + self.url_name: -            container_pk = self.session_get_value( -                'selec-' + self.url_name, 'pk') +        if step == "localisation-" + self.url_name: +            container_pk = self.session_get_value("selec-" + self.url_name, "pk")              q = models.Container.objects.filter(pk=container_pk)              if q.count(): -                kwargs['container'] = q.all()[0] +                kwargs["container"] = q.all()[0]              warehouse_pk = self.session_get_value( -                'container-' + self.url_name, 'location') +                "container-" + self.url_name, "location" +            )              q = models.Warehouse.objects.filter(pk=warehouse_pk)              if q.count(): -                kwargs['warehouse'] = q.all()[0] +                kwargs["warehouse"] = q.all()[0]          return kwargs      def done(self, form_list, **kwargs): @@ -144,22 +143,25 @@ class ContainerWizard(Wizard):          for idx, form in enumerate(form_list):              if not form.is_valid():                  return self.render(form) -            container = self.get_current_object() or \ -                hasattr(self, 'current_object') and self.current_object -            if container and form.prefix == 'localisation-' + self.url_name: +            container = ( +                self.get_current_object() +                or hasattr(self, "current_object") +                and self.current_object +            ) +            if container and form.prefix == "localisation-" + self.url_name:                  for div_name in form.cleaned_data:                      try:                          division = models.WarehouseDivisionLink.objects.get( -                            pk=div_name.split('_')[-1], -                            warehouse=container.location +                            pk=div_name.split("_")[-1], warehouse=container.location                          )  # check the localisation match with the container                      except models.WarehouseDivisionLink.DoesNotExist:                          return self.render(form) -                    localisation, created = \ -                        models.ContainerLocalisation.objects.get_or_create( -                            container=container, -                            division=division -                        ) +                    ( +                        localisation, +                        created, +                    ) = models.ContainerLocalisation.objects.get_or_create( +                        container=container, division=division +                    )                      localisation.reference = form.cleaned_data[div_name]                      localisation.save()              obj = container @@ -176,9 +178,15 @@ class ContainerModificationWizard(ContainerWizard):  class ContainerDeletionWizard(MultipleDeletionWizard):      model = models.Container -    fields = ['container_type', 'reference', 'comment', 'location', 'index', -              'cached_label'] +    fields = [ +        "container_type", +        "reference", +        "comment", +        "location", +        "index", +        "cached_label", +    ]      redirect_url = "container_deletion"      wizard_templates = { -        'final-container_deletion': -            'ishtar/wizard/wizard_container_deletion.html'} +        "final-container_deletion": "ishtar/wizard/wizard_container_deletion.html" +    } | 
