summaryrefslogtreecommitdiff
path: root/archaeological_warehouse/wizards.py
diff options
context:
space:
mode:
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
commita287e2dc11534e8c66f1c6c992e2151648b00e51 (patch)
tree711769ac53ca16b982eab7a5f98239fe748ee802 /archaeological_warehouse/wizards.py
parent50c0e779c3670264f2966b4659c6a656001fcf31 (diff)
downloadIshtar-a287e2dc11534e8c66f1c6c992e2151648b00e51.tar.bz2
Ishtar-a287e2dc11534e8c66f1c6c992e2151648b00e51.zip
Containers, Warehouse : multiple del - redirs
Diffstat (limited to 'archaeological_warehouse/wizards.py')
-rw-r--r--archaeological_warehouse/wizards.py25
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"