summaryrefslogtreecommitdiff
path: root/archaeological_warehouse/wizards.py
diff options
context:
space:
mode:
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"