summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorghendricks%novell.com <>2009-05-21 01:09:55 +0200
committerghendricks%novell.com <>2009-05-21 01:09:55 +0200
commite39a1db4115cfd721fa65c746e7699e79cda87ae (patch)
treed993a0a28a9d277d37ac5f0173810e3d48f93d7e
parente82fe9ae884fa439494a4755cfcc218481ae094d (diff)
downloadbugzilla-e39a1db4115cfd721fa65c746e7699e79cda87ae.tar.gz
bugzilla-e39a1db4115cfd721fa65c746e7699e79cda87ae.tar.xz
Bug 493090 - Product disallownew should be converted to isactive
patch by ghendricks r=mkanat a=mkanat
-rw-r--r--Bugzilla/DB/Schema.pm4
-rw-r--r--Bugzilla/Install/DB.pm29
-rw-r--r--Bugzilla/Product.pm12
-rw-r--r--Bugzilla/User.pm2
-rw-r--r--contrib/gnats2bz.pl4
-rwxr-xr-xcontrib/gnatsparse/gnatsparse.py4
-rwxr-xr-xeditproducts.cgi4
-rw-r--r--template/en/default/admin/products/confirm-delete.html.tmpl6
-rw-r--r--template/en/default/admin/products/create.html.tmpl1
-rw-r--r--template/en/default/admin/products/edit-common.html.tmpl7
-rw-r--r--template/en/default/admin/products/list.html.tmpl17
-rw-r--r--template/en/default/admin/products/updated.html.tmpl8
12 files changed, 53 insertions, 45 deletions
diff --git a/Bugzilla/DB/Schema.pm b/Bugzilla/DB/Schema.pm
index aacbe386b..f31a312cf 100644
--- a/Bugzilla/DB/Schema.pm
+++ b/Bugzilla/DB/Schema.pm
@@ -1176,8 +1176,8 @@ use constant ABSTRACT_SCHEMA => {
description => {TYPE => 'MEDIUMTEXT'},
milestoneurl => {TYPE => 'TINYTEXT', NOTNULL => 1,
DEFAULT => "''"},
- disallownew => {TYPE => 'BOOLEAN', NOTNULL => 1,
- DEFAULT => 0},
+ isactive => {TYPE => 'BOOLEAN', NOTNULL => 1,
+ DEFAULT => 1},
votesperuser => {TYPE => 'INT2', NOTNULL => 1,
DEFAULT => 0},
maxvotesperbug => {TYPE => 'INT2', NOTNULL => 1,
diff --git a/Bugzilla/Install/DB.pm b/Bugzilla/Install/DB.pm
index 2247e58b3..0c9181655 100644
--- a/Bugzilla/Install/DB.pm
+++ b/Bugzilla/Install/DB.pm
@@ -459,8 +459,10 @@ sub update_table_definitions {
# The products table lacked sensible defaults.
$dbh->bz_alter_column('products', 'milestoneurl',
{TYPE => 'TINYTEXT', NOTNULL => 1, DEFAULT => "''"});
- $dbh->bz_alter_column('products', 'disallownew',
- {TYPE => 'BOOLEAN', NOTNULL => 1, DEFAULT => 0});
+ if ($dbh->bz_column_info('products', 'disallownew')){
+ $dbh->bz_alter_column('products', 'disallownew',
+ {TYPE => 'BOOLEAN', NOTNULL => 1, DEFAULT => 0});
+ }
$dbh->bz_alter_column('products', 'votesperuser',
{TYPE => 'INT2', NOTNULL => 1, DEFAULT => 0});
$dbh->bz_alter_column('products', 'votestoconfirm',
@@ -567,6 +569,8 @@ sub update_table_definitions {
# 2009-01-16 oreomike@gmail.com - Bug 302420
$dbh->bz_add_column('whine_events', 'mailifnobugs',
{ TYPE => 'BOOLEAN', NOTNULL => 1, DEFAULT => 'FALSE'});
+
+ _convert_disallownew_to_isactive();
################################################################
# New --TABLE-- changes should go *** A B O V E *** this point #
@@ -591,8 +595,11 @@ sub _update_pre_checksetup_bugzillas {
$dbh->bz_add_column('bugs', 'qa_contact', {TYPE => 'INT3'});
$dbh->bz_add_column('bugs', 'status_whiteboard',
{TYPE => 'MEDIUMTEXT', NOTNULL => 1, DEFAULT => "''"});
- $dbh->bz_add_column('products', 'disallownew',
- {TYPE => 'BOOLEAN', NOTNULL => 1}, 0);
+ if (!$dbh->bz_column_info('products', 'isactive')){
+ $dbh->bz_add_column('products', 'disallownew',
+ {TYPE => 'BOOLEAN', NOTNULL => 1}, 0);
+ }
+
$dbh->bz_add_column('products', 'milestoneurl',
{TYPE => 'TINYTEXT', NOTNULL => 1}, '');
$dbh->bz_add_column('components', 'initialqacontact',
@@ -3149,6 +3156,20 @@ sub _add_visiblity_value_to_value_tables {
}
}
+sub _convert_disallownew_to_isactive {
+ my $dbh = Bugzilla->dbh;
+ if ($dbh->bz_column_info('products', 'disallownew')){
+ $dbh->bz_add_column('products', 'isactive',
+ { TYPE => 'BOOLEAN', NOTNULL => 1, DEFAULT => 'TRUE'});
+
+ # isactive is the boolean reverse of disallownew.
+ $dbh->do('UPDATE products SET isactive = 0 WHERE disallownew = 1');
+ $dbh->do('UPDATE products SET isactive = 1 WHERE disallownew = 0');
+
+ $dbh->bz_drop_column('products','disallownew');
+ }
+}
+
1;
__END__
diff --git a/Bugzilla/Product.pm b/Bugzilla/Product.pm
index 488624c43..4d0082006 100644
--- a/Bugzilla/Product.pm
+++ b/Bugzilla/Product.pm
@@ -53,7 +53,7 @@ use constant DB_COLUMNS => qw(
classification_id
description
milestoneurl
- disallownew
+ isactive
votesperuser
maxvotesperbug
votestoconfirm
@@ -71,7 +71,7 @@ use constant UPDATE_COLUMNS => qw(
description
defaultmilestone
milestoneurl
- disallownew
+ isactive
votesperuser
maxvotesperbug
votestoconfirm
@@ -84,7 +84,7 @@ use constant VALIDATORS => {
version => \&_check_version,
defaultmilestone => \&_check_default_milestone,
milestoneurl => \&_check_milestone_url,
- disallownew => \&Bugzilla::Object::check_boolean,
+ isactive => \&Bugzilla::Object::check_boolean,
votesperuser => \&_check_votes_per_user,
maxvotesperbug => \&_check_votes_per_bug,
votestoconfirm => \&_check_votes_to_confirm,
@@ -601,7 +601,7 @@ sub set_name { $_[0]->set('name', $_[1]); }
sub set_description { $_[0]->set('description', $_[1]); }
sub set_default_milestone { $_[0]->set('defaultmilestone', $_[1]); }
sub set_milestone_url { $_[0]->set('milestoneurl', $_[1]); }
-sub set_disallow_new { $_[0]->set('disallownew', $_[1]); }
+sub set_is_active { $_[0]->set('isactive', $_[1]); }
sub set_votes_per_user { $_[0]->set('votesperuser', $_[1]); }
sub set_votes_per_bug { $_[0]->set('maxvotesperbug', $_[1]); }
sub set_votes_to_confirm { $_[0]->set('votestoconfirm', $_[1]); }
@@ -858,7 +858,7 @@ sub flag_types {
sub description { return $_[0]->{'description'}; }
sub milestone_url { return $_[0]->{'milestoneurl'}; }
-sub disallow_new { return $_[0]->{'disallownew'}; }
+sub is_active { return $_[0]->{'isactive'}; }
sub votes_per_user { return $_[0]->{'votesperuser'}; }
sub max_votes_per_bug { return $_[0]->{'maxvotesperbug'}; }
sub votes_to_confirm { return $_[0]->{'votestoconfirm'}; }
@@ -911,7 +911,7 @@ Bugzilla::Product - Bugzilla product class.
my $name = $product->name;
my $description = $product->description;
my $milestoneurl = $product->milestone_url;
- my disallownew = $product->disallow_new;
+ my isactive = $product->is_active;
my votesperuser = $product->votes_per_user;
my maxvotesperbug = $product->max_votes_per_bug;
my votestoconfirm = $product->votes_to_confirm;
diff --git a/Bugzilla/User.pm b/Bugzilla/User.pm
index 661d2f167..bc142636e 100644
--- a/Bugzilla/User.pm
+++ b/Bugzilla/User.pm
@@ -759,7 +759,7 @@ sub get_enterable_products {
AND group_control_map.entry != 0
AND group_id NOT IN (' . $self->groups_as_string . ')
WHERE group_id IS NULL
- AND products.disallownew = 0') || []};
+ AND products.isactive = 1') || []};
if (@enterable_ids) {
# And all of these products must have at least one component
diff --git a/contrib/gnats2bz.pl b/contrib/gnats2bz.pl
index 95ae32ad9..0cd6a3258 100644
--- a/contrib/gnats2bz.pl
+++ b/contrib/gnats2bz.pl
@@ -780,10 +780,10 @@ sub write_non_bugs_tables {
print DATA "\ninsert into products (\n";
print DATA
- " product, description, milestoneurl, disallownew\n";
+ " product, description, milestoneurl, isactive\n";
print DATA ") values (\n";
print DATA
- " $product, $description, '', 0\n";
+ " $product, $description, '', 1\n";
print DATA ");\n";
print DATA "\ninsert into components (\n";
diff --git a/contrib/gnatsparse/gnatsparse.py b/contrib/gnatsparse/gnatsparse.py
index c70993493..21ec7a840 100755
--- a/contrib/gnatsparse/gnatsparse.py
+++ b/contrib/gnatsparse/gnatsparse.py
@@ -144,9 +144,9 @@ def write_non_bug_tables():
# Insert the products
print >>outfile, "\ninsert into products ("
- print >>outfile, " product, description, milestoneurl, disallownew,"
+ print >>outfile, " product, description, milestoneurl, isactive,"
print >>outfile, " defaultmilestone, votestoconfirm) values ("
- print >>outfile, " '%s', '%s', '%s', 0, '%s', 1);" % (product,
+ print >>outfile, " '%s', '%s', '%s', 1, '%s', 1);" % (product,
productdesc,
milestoneurl,
defaultmilestone)
diff --git a/editproducts.cgi b/editproducts.cgi
index 8dd42d741..3bbabad64 100755
--- a/editproducts.cgi
+++ b/editproducts.cgi
@@ -173,7 +173,7 @@ if ($action eq 'new') {
version => scalar $cgi->param('version'),
defaultmilestone => scalar $cgi->param('defaultmilestone'),
milestoneurl => scalar $cgi->param('milestoneurl'),
- disallownew => scalar $cgi->param('disallownew'),
+ isactive => scalar $cgi->param('isactive'),
votesperuser => scalar $cgi->param('votesperuser'),
maxvotesperbug => scalar $cgi->param('maxvotesperbug'),
votestoconfirm => scalar $cgi->param('votestoconfirm'),
@@ -285,7 +285,7 @@ if ($action eq 'update') {
$product->set_description(scalar $cgi->param('description'));
$product->set_default_milestone(scalar $cgi->param('defaultmilestone'));
$product->set_milestone_url(scalar $cgi->param('milestoneurl'));
- $product->set_disallow_new(scalar $cgi->param('disallownew'));
+ $product->set_is_active(scalar $cgi->param('is_active'));
$product->set_votes_per_user(scalar $cgi->param('votesperuser'));
$product->set_votes_per_bug(scalar $cgi->param('maxvotesperbug'));
$product->set_votes_to_confirm(scalar $cgi->param('votestoconfirm'));
diff --git a/template/en/default/admin/products/confirm-delete.html.tmpl b/template/en/default/admin/products/confirm-delete.html.tmpl
index 516672142..d350bdb90 100644
--- a/template/en/default/admin/products/confirm-delete.html.tmpl
+++ b/template/en/default/admin/products/confirm-delete.html.tmpl
@@ -93,10 +93,10 @@
<tr>
<td>Closed for [% terms.bugs %]:</td>
<td>
- [% IF product.disallownew %]
- closed
- [% ELSE %]
+ [% IF product.is_active %]
open
+ [% ELSE %]
+ closed
[% END %]
</td>
</tr>
diff --git a/template/en/default/admin/products/create.html.tmpl b/template/en/default/admin/products/create.html.tmpl
index 08da684c2..664564040 100644
--- a/template/en/default/admin/products/create.html.tmpl
+++ b/template/en/default/admin/products/create.html.tmpl
@@ -31,6 +31,7 @@
product.votesperuser = "0",
product.maxvotesperbug = "10000",
product.votestoconfirm = "0",
+ product.is_active = 1,
version = "unspecified",
product.defaultmilestone = constants.DEFAULT_MILESTONE
%]
diff --git a/template/en/default/admin/products/edit-common.html.tmpl b/template/en/default/admin/products/edit-common.html.tmpl
index c05a87877..8b42592cb 100644
--- a/template/en/default/admin/products/edit-common.html.tmpl
+++ b/template/en/default/admin/products/edit-common.html.tmpl
@@ -70,10 +70,9 @@
[% END %]
<tr>
- <th align="right">Closed for [% terms.bug %] entry:</th>
- <td><input type="checkbox" name="disallownew" value="1"
- [% IF product.disallownew == "1" %]
- checked="checked"[% END %]>
+ <th align="right">Open for [% terms.bug %] entry:</th>
+ <td><input type="checkbox" name="is_active" value="1"
+ [% ' checked="checked"' IF product.is_active %]>
</td>
</tr>
diff --git a/template/en/default/admin/products/list.html.tmpl b/template/en/default/admin/products/list.html.tmpl
index b82a6a5b0..6fd5240af 100644
--- a/template/en/default/admin/products/list.html.tmpl
+++ b/template/en/default/admin/products/list.html.tmpl
@@ -60,8 +60,9 @@
allow_html_content => 1
},
{
- name => "disallow_new"
+ name => "is_active"
heading => "Open For New $terms.Bugs"
+ yesno_field => 1
},
{
name => "votesperuser"
@@ -99,20 +100,6 @@
})
%]
-[% overrides.disallow_new = [ {
- match_value => "1"
- match_field => 'disallow_new'
- override_content => 1
- content => "No"
- },
- {
- match_value => 0
- match_field => 'disallow_new'
- override_content => 1
- content => "Yes"
- }]
-%]
-
[% PROCESS admin/table.html.tmpl
columns = columns
data = products
diff --git a/template/en/default/admin/products/updated.html.tmpl b/template/en/default/admin/products/updated.html.tmpl
index b04fa4663..f0e00f853 100644
--- a/template/en/default/admin/products/updated.html.tmpl
+++ b/template/en/default/admin/products/updated.html.tmpl
@@ -55,13 +55,13 @@
<p style="margin: 1em 3em 1em 3em">[% product.description FILTER html_light %]</p>
[% END %]
-[% IF changes.disallownew.defined %]
+[% IF changes.isactive.defined %]
<p>
Product is now
- [% IF product.disallow_new %]
- closed to
+ [% IF product.is_active %]
+ open for
[% ELSE %]
- open for
+ closed to
[% END %]
new [% terms.bugs %].
</p>