diff options
Diffstat (limited to 'ishtar/ishtar_base')
-rw-r--r-- | ishtar/ishtar_base/forms.py | 14 | ||||
-rw-r--r-- | ishtar/ishtar_base/forms_context_records.py | 1 | ||||
-rw-r--r-- | ishtar/ishtar_base/forms_items.py | 5 | ||||
-rw-r--r-- | ishtar/ishtar_base/forms_operations.py | 5 |
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), |