]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 493090 - Product disallownew should be converted to isactive
authorghendricks%novell.com <>
Wed, 20 May 2009 23:09:55 +0000 (23:09 +0000)
committerghendricks%novell.com <>
Wed, 20 May 2009 23:09:55 +0000 (23:09 +0000)
patch by ghendricks r=mkanat a=mkanat

12 files changed:
Bugzilla/DB/Schema.pm
Bugzilla/Install/DB.pm
Bugzilla/Product.pm
Bugzilla/User.pm
contrib/gnats2bz.pl
contrib/gnatsparse/gnatsparse.py
editproducts.cgi
template/en/default/admin/products/confirm-delete.html.tmpl
template/en/default/admin/products/create.html.tmpl
template/en/default/admin/products/edit-common.html.tmpl
template/en/default/admin/products/list.html.tmpl
template/en/default/admin/products/updated.html.tmpl

index aacbe386b2a41209256954ca8dbc559f27f35f11..f31a312cf7c6ade2acb7cc57dccef708b2cdcfd7 100644 (file)
@@ -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,
index 2247e58b398934b938d69bedcb8d3081873c597f..0c918165536fbf2a2556ca9bb39e06a8e991c301 100644 (file)
@@ -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__
index 488624c436f0983eaa34df120c63e57fa5300848..4d00820065b9e841b0d89c0fd6e86c4a9332e26d 100644 (file)
@@ -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;
index 661d2f167faa8e7e446b123b33fb7c74ae19db51..bc142636e610adb2f61d21782663a7e982a97dff 100644 (file)
@@ -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
index 95ae32ad980ccf06ddff68e549b376490e211193..0cd6a32580d9d1a9a5b3a77173c9c393ac4da846 100644 (file)
@@ -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";
index c70993493b44791d8aad73da8ef2af01c67c7685..21ec7a8407ed7b218d092984857fb8fde2accfec 100755 (executable)
@@ -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)
index 8dd42d7415e75f1eee3fb42acb0c7c04980a91d1..3bbabad6479f9ffede20026995bad65c86e71c6d 100755 (executable)
@@ -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'));
index 516672142c6c6e6674f54d252fdc96cd96d92603..d350bdb909bf0f756462cb535eca762998abcc64 100644 (file)
   <tr>
     <td>Closed for [% terms.bugs %]:</td>
     <td>
-      [% IF product.disallownew %]
-        closed
-      [% ELSE %]
+      [% IF product.is_active %]
         open
+      [% ELSE %]
+        closed
       [% END %]
     </td>
   </tr>
index 08da684c2f6247d4d69d6dc7df34e2d26caa15f4..664564040c520c251425a02e097383621dcf7757 100644 (file)
@@ -31,6 +31,7 @@
   product.votesperuser = "0",
   product.maxvotesperbug  = "10000",
   product.votestoconfirm = "0",
+  product.is_active = 1,
   version = "unspecified",
   product.defaultmilestone = constants.DEFAULT_MILESTONE
 %]
index c05a878778ea556989e18ae46bcf04d85eead27b..8b42592cb4bd6bfeabd522c4572352ebb22e02bb 100644 (file)
 [% 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>
 
index b82a6a5b0030c7442455758431faf7ff55f47dfb..6fd5240afd8fcb219f0b0ee6d99cb7fc0821ab5e 100644 (file)
@@ -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"
      })
 %]
 
-[% 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
index b04fa46636ea089ce216a17a8cb2c96d9906547b..f0e00f853f1811a4a6c7bb6bd5d2a3cd39d7fb0e 100644 (file)
   <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>