diff options
Diffstat (limited to 'archaeological_warehouse/wizards.py')
| -rw-r--r-- | archaeological_warehouse/wizards.py | 25 | 
1 files changed, 16 insertions, 9 deletions
diff --git a/archaeological_warehouse/wizards.py b/archaeological_warehouse/wizards.py index 7476eb2b7..302045e2f 100644 --- a/archaeological_warehouse/wizards.py +++ b/archaeological_warehouse/wizards.py @@ -17,10 +17,11 @@  # See the file COPYING for details. -from django.shortcuts import render +from django.http import HttpResponseRedirect +from django.shortcuts import render, reverse  from ishtar_common.forms import reverse_lazy -from ishtar_common.wizards import Wizard, DeletionWizard, SearchWizard +from ishtar_common.wizards import Wizard, SearchWizard, MultipleDeletionWizard  from archaeological_finds.wizards import TreatmentWizard  from archaeological_finds.models import Treatment, TreatmentType @@ -75,6 +76,7 @@ class PackagingWizard(TreatmentWizard):  class WarehouseWizard(Wizard):      model = models.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): @@ -98,6 +100,7 @@ class WarehouseModificationWizard(Wizard):          'divisions-warehouse_modification':              'ishtar/wizard/wizard_warehouse_divisions.html',      } +    redirect_url = "warehouse_modification"      def get_form_kwargs(self, step=None):          kwargs = super(WarehouseModificationWizard, self).get_form_kwargs(step) @@ -110,8 +113,9 @@ class WarehouseModificationWizard(Wizard):          return kwargs -class WarehouseDeletionWizard(DeletionWizard): +class WarehouseDeletionWizard(MultipleDeletionWizard):      model = models.Warehouse +    redirect_url = "warehouse_deletion"  class ContainerWizard(Wizard): @@ -124,6 +128,7 @@ class ContainerWizard(Wizard):      }      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) @@ -145,7 +150,7 @@ class ContainerWizard(Wizard):          Save the localisation          """          super(ContainerWizard, self).done(form_list) -        dct = {} +        obj = None          for idx, form in enumerate(form_list):              if not form.is_valid():                  return self.render(form) @@ -167,18 +172,20 @@ class ContainerWizard(Wizard):                          )                      localisation.reference = form.cleaned_data[div_name]                      localisation.save() -            dct = {'item': container} +            obj = container              self.current_object = container -            # force evaluation of lazy urls -            dct['wizard_done_window'] = str(self.wizard_done_window) -        return render(self.request, self.wizard_done_template, dct) +        url = reverse(self.redirect_url) +        if obj: +            url += "?open_item={}".format(obj.pk) +        return HttpResponseRedirect(url)  class ContainerModificationWizard(ContainerWizard):      modification = True -class ContainerDeletionWizard(DeletionWizard): +class ContainerDeletionWizard(MultipleDeletionWizard):      model = models.Container      fields = ['container_type', 'reference', 'comment', 'location', 'index',                'cached_label'] +    redirect_url = "container_deletion"  | 
