summaryrefslogtreecommitdiff
path: root/ishtar/ishtar_base
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar/ishtar_base')
-rw-r--r--ishtar/ishtar_base/forms.py14
-rw-r--r--ishtar/ishtar_base/forms_context_records.py1
-rw-r--r--ishtar/ishtar_base/forms_items.py5
-rw-r--r--ishtar/ishtar_base/forms_operations.py5
4 files changed, 21 insertions, 4 deletions
diff --git a/ishtar/ishtar_base/forms.py b/ishtar/ishtar_base/forms.py
index 287a181f4..01b1b9dfd 100644
--- a/ishtar/ishtar_base/forms.py
+++ b/ishtar/ishtar_base/forms.py
@@ -143,8 +143,8 @@ class Wizard(NamedUrlSessionFormWizard):
context.update({'previous_steps':previous_steps,
'previous_step_counter':previous_step_counter})
# if modification: show the next steps
- next_step = step
if self.modification:
+ next_step = step
while next_step:
# check if the form is initialized otherwise initialize it
if not storage.get_step_data(next_step):
@@ -506,13 +506,23 @@ class Wizard(NamedUrlSessionFormWizard):
def render_next_step(self, request, storage, form, **kwargs):
"""
- Manage the modify or delete button in formset: next_step = current_step
+ Manage:
+ - modify or delete button in formset: next step = current step
+ - validate and end: nextstep = last step
"""
if request.POST.has_key('formset_modify') \
and request.POST['formset_modify'] \
or [key for key in request.POST.keys()
if key.endswith('DELETE') and request.POST[key]]:
return self.render(request, storage, form, **kwargs)
+ elif request.POST.has_key('validate_and_end') \
+ and request.POST['validate_and_end']:
+ last_step = self.get_last_step(request, storage)
+ new_form = self.get_form(request, storage, last_step,
+ data=storage.get_step_data(last_step),
+ files=storage.get_step_files(last_step))
+ storage.set_current_step(last_step)
+ return self.render(request, storage, new_form, **kwargs)
return super(Wizard, self).render_next_step(request, storage, form,
**kwargs)
diff --git a/ishtar/ishtar_base/forms_context_records.py b/ishtar/ishtar_base/forms_context_records.py
index c62dcb7f7..816782bd8 100644
--- a/ishtar/ishtar_base/forms_context_records.py
+++ b/ishtar/ishtar_base/forms_context_records.py
@@ -108,6 +108,7 @@ class RecordWizard(Wizard):
return form
class RecordModifWizard(RecordWizard):
+ modification = True
model = models.ContextRecord
class RecordSelect(forms.Form):
diff --git a/ishtar/ishtar_base/forms_items.py b/ishtar/ishtar_base/forms_items.py
index c6f4b05f4..b763d94b2 100644
--- a/ishtar/ishtar_base/forms_items.py
+++ b/ishtar/ishtar_base/forms_items.py
@@ -172,7 +172,10 @@ item_search_wizard = SearchWizard([
('general-item_search', ItemFormSelection)],
url_name='item_search',)
-item_modification_wizard = ItemWizard([
+class ItemModificationWizard(ItemWizard):
+ modification = True
+
+item_modification_wizard = ItemModificationWizard([
('selec-item_modification', ItemFormSelection),
('item-item_modification', ItemForm),
('dating-item_modification', DateForm),
diff --git a/ishtar/ishtar_base/forms_operations.py b/ishtar/ishtar_base/forms_operations.py
index 3d149577a..1fefa75f5 100644
--- a/ishtar/ishtar_base/forms_operations.py
+++ b/ishtar/ishtar_base/forms_operations.py
@@ -449,7 +449,10 @@ operation_creation_wizard = OperationWizard([
},
url_name='operation_creation',)
-operation_modification_wizard = OperationWizard([
+class OperationModificationWizard(OperationWizard):
+ modification = True
+
+operation_modification_wizard = OperationModificationWizard([
('selec-operation_modification', OperationFormSelection),
('general-operation_modification', OperationFormGeneral),
('refs-operation_modification', OperationFormReference),