c.l.b.m.StepView(LaunchpadFormView) : class documentation

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

Base class for all steps in a multiple step view.

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.
def extendFields(self):
See LaunchpadFormView.
@property
def field_names(self):
Do not override.
def validateStep(self, data):
Validation specific to a given step.

To be overridden in subclasses, if necessary.

def main_action(self, data):
Undocumented
@action(main_action_label, 'continue')
def continue_action(self, action, data):
The action of the continue button.

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.

def validate(self, data):
Call 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.

def injectStepNameInRequest(self):
Inject this step's name into the request if necessary.
def shouldProcess(self, data):
Should this data be processed by the view's action methods?

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.

def render(self):
Undocumented
@property
def cancel_url(self):
Return the URL for the current context.
API Documentation for Launchpad, generated by pydoctor at 2010-09-27 00:00:11.