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.py26
1 files changed, 24 insertions, 2 deletions
diff --git a/archaeological_warehouse/wizards.py b/archaeological_warehouse/wizards.py
index 0adb06f75..571e56b1b 100644
--- a/archaeological_warehouse/wizards.py
+++ b/archaeological_warehouse/wizards.py
@@ -64,6 +64,20 @@ class WarehouseModificationWizard(Wizard):
model = models.Warehouse
modification = True
wizard_done_window = reverse_lazy('show-warehouse')
+ wizard_templates = {
+ 'divisions-warehouse_modification':
+ 'ishtar/wizard/wizard_warehouse_divisions.html',
+ }
+
+ def get_form_kwargs(self, step=None):
+ kwargs = super(WarehouseModificationWizard, self).get_form_kwargs(step)
+ if step == "divisions-warehouse_modification":
+ current_warehouse = self.get_current_object()
+ q = models.ContainerLocalisation.objects.filter(
+ division__warehouse=current_warehouse)
+ if q.count():
+ kwargs['readonly'] = True
+ return kwargs
class WarehouseDeletionWizard(DeletionWizard):
@@ -73,10 +87,13 @@ class WarehouseDeletionWizard(DeletionWizard):
class ContainerWizard(Wizard):
model = models.Container
wizard_templates = {
- 'localisation-container_localisation':
+ 'localisation-container_creation':
+ 'ishtar/wizard/wizard_containerlocalisation.html',
+ 'localisation-container_modification':
'ishtar/wizard/wizard_containerlocalisation.html',
}
ignore_init_steps = ['localisation']
+ wizard_done_window = reverse_lazy('show-container')
def get_form_kwargs(self, step=None):
kwargs = super(ContainerWizard, self).get_form_kwargs(step)
@@ -98,6 +115,7 @@ class ContainerWizard(Wizard):
Save the localisation
"""
super(ContainerWizard, self).done(form_list)
+ dct = {}
for idx, form in enumerate(form_list):
if not form.is_valid():
return self.render(form)
@@ -119,8 +137,12 @@ class ContainerWizard(Wizard):
)
localisation.reference = form.cleaned_data[div_name]
localisation.save()
+ dct = {'item': container}
+ self.current_object = container
+ # force evaluation of lazy urls
+ dct['wizard_done_window'] = unicode(self.wizard_done_window)
return render_to_response(
- self.wizard_done_template, {},
+ self.wizard_done_template, dct,
context_instance=RequestContext(self.request))