l.b.b.b.BugAlsoAffectsProductWithProductCreationView(LinkPackgingMixin, LaunchpadFormView) : class documentation

Part of lp.bugs.browser.bugalsoaffects View In Hierarchy

Register a product and indicate this bug affects it.

If there's no bugtracker with the given URL registered in Launchpad, then a new bugtracker is created as well.

Method field_names The fields needed to choose an existing project.
Method setUpFields Setup an extra field with all products using the given bugtracker.
Method validate_existing_product Check if the chosen project is not already affected by this bug.
Method use_existing_product_action Record the chosen project as being affected by this bug.
Method continue_action Create a new product and a bugtask for this bug on that product.
Method _loadProductsUsingBugTracker Find products using the bugtracker wich runs on the given URL.
Method _createBugTaskAndWatch Create a bugtask and bugwatch on the chosen product.

Inherited from LinkPackgingMixin:

Method can_link_package Undocumented

Inherited from LaunchpadFormView:

Method __init__ Undocumented
Method initialize Undocumented
Method render Return the body of the response.
Method extendFields Allow subclasses to extend the form fields.
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 Validate the form.
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.
@property
def field_names(self):
The fields needed to choose an existing project.
def _loadProductsUsingBugTracker(self):
Find products using the bugtracker wich runs on the given URL.

These products are stored in self.existing_products.

If there are too many products using that bugtracker then we'll store only the first ones that somehow match the name given.

def setUpFields(self):
Setup an extra field with all products using the given bugtracker.

This extra field is setup only if there is one or more products using that bugtracker.

def validate_existing_product(self, action, data):
Check if the chosen project is not already affected by this bug.
@action('Use Existing Project', 'use_existing_product', validate_existing_product)
def use_existing_product_action(self, action, data):
Record the chosen project as being affected by this bug.

Also creates a bugwatch for the given remote bug.

@action('Continue', 'continue')
def continue_action(self, action, data):
Create a new product and a bugtask for this bug on that product.

If the URL of the remote bug given is of a bugtracker used by any other products registered in Launchpad, then we show these products to the user and ask if they don't want to create the task in one of them.

def _createBugTaskAndWatch(self, data, set_bugtracker=False):
Create a bugtask and bugwatch on the chosen product.

If set_bugtracker is True then the bugtracker of the newly created watch is set as the product's bugtracker.

This is done by manually calling the main_action() method of UpstreamBugTrackerCreationStep and ProductBugTaskCreationStep.

This method also sets self.next_url to the URL of the newly added bugtask.

API Documentation for Launchpad, generated by pydoctor at 2022-06-16 00:00:12.