Opened 10 years ago

Last modified 10 years ago

#21644 closed New feature

FormWizard needs confirmation step logic — at Version 4

Reported by: nickname123 Owned by: nobody
Component: contrib.formtools Version: 1.6
Severity: Normal Keywords:
Cc: bnafta@…, albrecht.andi@… Triage Stage: Accepted
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by Aymeric Augustin)

The FormWizard needs to handle a confirmation step that is capable of easily outputting a readonly copy of all step data. It is currently very difficult to support a confirmation step in the FormWizard workflow. The confirmation step needs access to the "final_form_list" created in the render_done() method and passed to the done() method. This is important so the user can see the data he is confirming.

I.e. the confirmation step as presented in the documentation https://docs.djangoproject.com/en/1.6/ref/contrib/formtools/form-wizard/#using-a-different-template-for-each-form does not satisfy the requirements for confirmation since the user cannot actually see his order that he is supposed to confirm.

This could be worked into the render_done() method, or broken into two steps. However, currently, one must duplicate a ton of code to render a confirmation view that outputs a readonly copy of the previous steps.

This could be implemented in a way that allows the developer to "opt out" of the confirmation if the specific FormWizard in question does not need a confirmation step.

EDIT: this cannot currently be performed easily in the done() method override because render_done() calls self.storage.reset() after it calls the done() method.

Change History (4)

comment:1 by nickname123, 10 years ago

Type: UncategorizedBug

comment:2 by nickname123, 10 years ago

Type: BugNew feature

comment:3 by nickname123, 10 years ago

I forgot to explain that this cannot currently be performed easily in the done() method override because render_done() calls self.storage.reset() after it calls the done() method.

If someone could add this to the ticket description I would be grateful. Thanks

comment:4 by Aymeric Augustin, 10 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.
Back to Top