Part of canonical.launchpad.browser.multistep View In Hierarchy
Known subclasses: lp.bugs.browser.bugalsoaffects.AlsoAffectsStep, lp.registry.browser.product.ProjectAddStepOne, lp.registry.browser.product.ProjectAddStepTwo, lp.registry.browser.sourcepackage.SourcePackageChangeUpstreamStepOne, lp.registry.browser.sourcepackage.SourcePackageChangeUpstreamStepTwo
Subclasses must override next_step
, step_name
and _field_names
.
They must also define a main_action()
method which processes the form
data.
If views want to do per-step validation, they should override
validateStep()
.
If views want to change the label of their Continue button, they should
override main_action_label
.
Method | extendFields | See LaunchpadFormView . |
Method | field_names | Do not override. |
Method | validateStep | Validation specific to a given step. |
Method | main_action | Undocumented |
Method | continue_action | The action of the continue button. |
Method | validate | Call self.validateStep() if the form should be processed. |
Method | injectStepNameInRequest | Inject this step's name into the request if necessary. |
Method | shouldProcess | Should this data be processed by the view's action methods? |
Method | render | Undocumented |
Method | cancel_url | Return the URL for the current context. |
To be overridden in subclasses, if necessary.
Check to see if the form should be processed. If so, then
main_action()
is called. Otherwise, it's the first time we're
showing the step view and nothing will be processed.
self.validateStep()
if the form should be processed.
Subclasses /must not/ override this method. They should override
validateStep()
if they have any custom validation they need to
perform.
It should be processed only if the user has already visited this page and submitted the form.
Since we use identical action names in all views we can't rely on that to find out whether or not to process them, so we use an extra hidden input to store the views the user has visited already.