Open
Bug 317051
Opened 20 years ago
Updated 3 years ago
Implement default component for products
Categories
(Bugzilla :: Administration, task, P1)
Bugzilla
Administration
Tracking
()
NEW
People
(Reporter: myk, Unassigned)
References
Details
Attachments
(1 file, 3 obsolete files)
|
9.37 KB,
patch
|
LpSolit
:
review-
|
Details | Diff | Splinter Review |
Per bug 36843, Bugzilla admins can specify a default component on bug entry with a template change. But it would be easier on them to be able to specify a default component per-product and to do so via the admin web interface rather than having to hack a template (and deal with conflicts when upgrading Bugzilla).
Bugzilla should let admins specify a default component for each product which applies when the user doesn't select a component on the bug entry page.
Comment 1•20 years ago
|
||
This seems more like an enhancement, to me, than a bug.
Severity: minor → enhancement
Updated•16 years ago
|
Priority: -- → P1
Assignee: administration → koosha.khajeh
Status: NEW → ASSIGNED
Attachment #670774 -
Flags: review?(glob)
Attachment #670774 -
Flags: review?(LpSolit)
Comment 5•13 years ago
|
||
Comment on attachment 670774 [details] [diff] [review]
patch - v1
You only need a default_component for products, as we do for the default milestone. It doesn't make sense to have a whole new column in the components table where it's hard to check the integrity.
Attachment #670774 -
Flags: review?(glob)
Attachment #670774 -
Flags: review?(LpSolit)
Attachment #670774 -
Flags: review-
Attachment #670774 -
Attachment is obsolete: true
Attachment #672567 -
Flags: review?(LpSolit)
Comment 7•13 years ago
|
||
Comment on attachment 672567 [details] [diff] [review]
patch (trunk) - v2
>=== modified file 'Bugzilla/DB/Schema.pm'
>+ defaultcomponent => {TYPE => 'INT2', DEFAULT => 'NULL',
No need to specify DEFAULT => NULL. That's the default behavior already. Drop this part.
Also, the column name should be default_component to follow our guidelines. I know you did it for consistency with defaultmilestone, but if we keep copying old styles, we will never improve our codebase. :)
>=== modified file 'Bugzilla/Install/DB.pm'
>+ $dbh->bz_add_column('products', 'defaultcomponent',
>+ {TYPE => 'INT2', DEFAULT => 'NULL'});
Same comments as above.
>+ $dbh->bz_add_fk('products', 'defaultcomponent',
>+ {TABLE => 'components', COLUMN => 'id', DELETE => 'SET NULL'});
Don't call bz_add_fk() yourself. This is done automatically when the DB schema has been updated.
>=== modified file 'editproducts.cgi'
> is_active => scalar $cgi->param('is_active'),
> allows_unconfirmed => scalar $cgi->param('allows_unconfirmed'),
> default_milestone => scalar $cgi->param('defaultmilestone'),
>+ default_component => scalar $cgi->param('defaultcomponent'),
Use default_component for the CGI parameter here too. While you are on it, bonus point for renaming defaultmilestone to default_milestone (CGI only, not in the DB schema).
>=== modified file 'template/en/default/admin/products/edit.html.tmpl'
>+ <option value="[% c.name FILTER html %]"
I wonder if we shouldn't pass c.id, so that the validator can immediately check that this component exists without having to create a component object. But for WS methods, we may prefer to pass the component name instead. So I suppose c.name is fine here.
>=== modified file 'template/en/default/bug/create/create.html.tmpl'
You must also select the default component when moving the bug into another product, see bug/process/verify-new-product.html.tmpl.
Otherwise looks good.
Attachment #672567 -
Flags: review?(LpSolit) → review-
Summary: let admin specify default component per-product → Implement default component for products
Attachment #672567 -
Attachment is obsolete: true
Attachment #682924 -
Flags: review?(LpSolit)
Comment 9•12 years ago
|
||
Comment on attachment 682924 [details] [diff] [review]
patch - v2.1
>=== modified file 'Bugzilla/Bug.pm'
>- component => $self->component,
>+ component => $default_component,
You must not go back to the default component if $component_ok is 1. See how this is done for the target milestone.
>=== modified file 'Bugzilla/DB/Schema.pm'
>+ default_component => {TYPE => 'INT2', DEFAULT => 'NULL',
As said in my previous comment, remove DEFAULT => 'NULL'.
>=== modified file 'Bugzilla/Product.pm'
>+sub _check_default_component {
>+ # Return NULL if the default component is not set
>+ return undef unless ($component && ref $invocant);
This code means it's not possible to set the default component on product creation. As it's mandatory to create a component on product creation, it should be possible to use it immediately.
>=== modified file 'template/en/default/admin/products/edit.html.tmpl'
>+ [% IF product.components.size -%]
No need for this check. All products must have a component.
>+ [%- " selected=\"selected\"" IF c.id == product.default_component %]>
Write ' selected="selected"' instead of escaping quotes.
>=== modified file 'template/en/default/global/select-menu.html.tmpl'
Changes in this template are not needed and have nothing to do with this bug.
You must still fix bug/process/verify-new-product.html.tmpl as we now have a default component. The logic there must be changed to match what is done for the default milestone.
Attachment #682924 -
Flags: review?(LpSolit) → review-
Updated•11 years ago
|
Target Milestone: Bugzilla 5.0 → ---
Comment 11•3 years ago
|
||
Comment 12•3 years ago
|
||
The content of attachment 9302158 [details] has been deleted for the following reason:
Spam
You need to log in
before you can comment on or make changes to this bug.
Description
•