Part of lp.app.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 | Return the body of the response. |
Method | cancel_url | Return the URL for the current context. |
Inherited from LaunchpadFormView:
Method | __init__ | Undocumented |
Method | initialize | Undocumented |
Method | setUpFields | Undocumented |
Method | setUpWidgets | Set up the widgets using the view's form fields and the context. |
Method | help_links | Dictionary mapping field names to help links. |
Method | adapters | Provide custom adapters for use when setting up the widgets. |
Method | action_url | Set the default action URL for the form. |
Method | has_available_actions | Does the view have any available actions that will render? |
Method | initial_values | Override this in your subclass if you want any widgets to have |
Method | addError | Add a form wide error. |
Method | getFieldError | Get the error associated with a particular field. |
Method | setFieldError | Set the error associated with a particular field. |
Static Method | validate_none | Do not do any validation. |
Method | validate_widgets | Validate the named form widgets. |
Method | error_count | Undocumented |
Method | ajax_failure_handler | Called by the form if validate() finds any errors. |
Method | validate_cancel | Noop validation in case we cancel. |
Method | focusedElementScript | Helper function to construct the script element content. |
Method | isSingleLineLayout | Undocumented |
Method | isMultiLineLayout | Undocumented |
Method | isCheckBoxLayout | Undocumented |
Method | showOptionalMarker | Should the (Optional) marker be shown? |
Method | _processNotifications | Add any notification messages to the response headers. |
Method | _abort | Abort the form edit. |
Method | _validate | Check all widgets and perform any custom validation. |
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.
By default, this method will execute the template attribute to render the content. But if an action handler was executed and it returned a value other than None, that value will be used as the rendered content.
See LaunchpadView.render() for other information.