diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-14 12:06:49 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-14 12:06:49 +0200 |
commit | 53653e8d74e936a89515fbaae77bbbeea578e7f5 (patch) | |
tree | 711769ac53ca16b982eab7a5f98239fe748ee802 /archaeological_warehouse/wizards.py | |
parent | 184c6960f537d315155efeb620d526c0b2022630 (diff) | |
download | Ishtar-53653e8d74e936a89515fbaae77bbbeea578e7f5.tar.bz2 Ishtar-53653e8d74e936a89515fbaae77bbbeea578e7f5.zip |
Containers, Warehouse : multiple del - redirs
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" |