]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 486292: Change the default workflow to UNCONFIRMED, CONFIRMED,
authorMax Kanat-Alexander <mkanat@bugzilla.org>
Tue, 6 Jul 2010 00:42:57 +0000 (17:42 -0700)
committerMax Kanat-Alexander <mkanat@bugzilla.org>
Tue, 6 Jul 2010 00:42:57 +0000 (17:42 -0700)
IN_PROGRESS, RESOLVED, VERIFIED.
r=LpSolit, a=mkanat

29 files changed:
Bugzilla/Bug.pm
Bugzilla/Chart.pm
Bugzilla/Config/Query.pm
Bugzilla/DB.pm
Bugzilla/DB/Schema.pm
Bugzilla/Install.pm
Bugzilla/Install/DB.pm
Bugzilla/Migrate.pm
Bugzilla/Migrate/Gnats.pm
Bugzilla/Search/Quicksearch.pm
Bugzilla/Status.pm
checksetup.pl
contrib/bugzilla-submit/bugzilla-submit
contrib/convert-workflow.pl [new file with mode: 0644]
contrib/jb2bz.py
docs/en/images/bzLifecycle.xml
docs/en/xml/administration.xml
docs/en/xml/installation.xml
showdependencygraph.cgi
template/en/default/admin/params/bugchange.html.tmpl
template/en/default/admin/params/mta.html.tmpl
template/en/default/admin/products/create.html.tmpl
template/en/default/email/whine.txt.tmpl
template/en/default/global/field-descs.none.tmpl
template/en/default/global/messages.html.tmpl
template/en/default/list/list.ics.tmpl
template/en/default/pages/fields.html.tmpl
template/en/default/pages/quicksearch.html.tmpl
whineatnews.pl

index 23a92b080ea1368a8cc098b1e9fa7f6dde93e37f..a0c15bafa15569d09fe4fcbd2b556327daf77b4a 100644 (file)
@@ -1323,7 +1323,10 @@ sub _check_bug_status {
         
     }
     
-    if (ref $invocant && $new_status->name eq 'ASSIGNED'
+    if (ref $invocant 
+        && ($new_status->name eq 'IN_PROGRESS'
+            # Backwards-compat for the old default workflow.
+            or $new_status->name eq 'ASSIGNED')
         && Bugzilla->params->{"usetargetmilestone"}
         && Bugzilla->params->{"musthavemilestoneonaccept"}
         # musthavemilestoneonaccept applies only if at least two
index 58089d29ee1ed58c6e22c2c080f53ffabb5c89e7..760db135dfb67e51409db891955450f3ffe83d09 100644 (file)
@@ -67,7 +67,7 @@ sub init {
     #
     # The URL encoding is:
     # line0=67&line0=73&line1=81&line2=67...
-    # &label0=B+/+R+/+NEW&label1=...
+    # &label0=B+/+R+/+CONFIRMED&label1=...
     # &select0=1&select3=1...    
     # &cumulate=1&datefrom=2002-02-03&dateto=2002-04-04&ctype=html...
     # &gt=1&labelgt=Grand+Total    
index 6d570e01a2d216ebd789be0489f5c311d2886caf..821f09fc6a702500ca069a4206583dabba66c21e 100644 (file)
@@ -58,13 +58,13 @@ sub get_param_list {
   {
    name => 'mybugstemplate',
    type => 't',
-   default => 'buglist.cgi?bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailassigned_to1=1&amp;emailreporter1=1&amp;emailtype1=exact&amp;email1=%userid%&amp;field0-0-0=bug_status&amp;type0-0-0=notequals&amp;value0-0-0=UNCONFIRMED&amp;field0-0-1=reporter&amp;type0-0-1=equals&amp;value0-0-1=%userid%'
+   default => 'buglist.cgi?resolution=---&amp;emailassigned_to1=1&amp;emailreporter1=1&amp;emailtype1=exact&amp;email1=%userid%'
   },
 
   {
    name => 'defaultquery',
    type => 't',
-   default => 'bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailassigned_to1=1&emailassigned_to2=1&emailreporter2=1&emailcc2=1&emailqa_contact2=1&emaillongdesc3=1&order=Importance&long_desc_type=substring'
+   default => 'resolution=---&emailassigned_to1=1&emailassigned_to2=1&emailreporter2=1&emailcc2=1&emailqa_contact2=1&emaillongdesc3=1&order=Importance&long_desc_type=substring'
   },
 
   {
index 8c1aba8dd4b6de3e1b55efda7c568cec66030d55..7173ff8961844d217aeba6299986b9c3a20576f7 100644 (file)
@@ -68,8 +68,8 @@ use constant ENUM_DEFAULTS => {
     priority     => ["Highest", "High", "Normal", "Low", "Lowest", "---"],
     op_sys       => ["All","Windows","Mac OS","Linux","Other"],
     rep_platform => ["All","PC","Macintosh","Other"],
-    bug_status   => ["UNCONFIRMED","NEW","ASSIGNED","REOPENED","RESOLVED",
-                     "VERIFIED","CLOSED"],
+    bug_status   => ["UNCONFIRMED","CONFIRMED","IN_PROGRESS","RESOLVED",
+                     "VERIFIED"],
     resolution   => ["","FIXED","INVALID","WONTFIX", "DUPLICATE","WORKSFORME"],
 };
 
index 0791cad98a1740540efb5562f3692dda11b1dfbb..4837ccc5fe7c2704eb058242f9feadbea693ec8a 100644 (file)
@@ -1223,7 +1223,7 @@ use constant ABSTRACT_SCHEMA => {
             defaultmilestone  => {TYPE => 'varchar(20)',
                                   NOTNULL => 1, DEFAULT => "'---'"},
             allows_unconfirmed => {TYPE => 'BOOLEAN', NOTNULL => 1,
-                                   DEFAULT => 'FALSE'},
+                                   DEFAULT => 'TRUE'},
         ],
         INDEXES => [
             products_name_idx   => {FIELDS => ['name'],
index e90fe41dba4d8c4f208849e7dcb17bb0f9035a6a..3754c078710bbe4ea9941b2a7b22825ac3edb316 100644 (file)
@@ -37,6 +37,24 @@ use Bugzilla::User::Setting;
 use Bugzilla::Util qw(get_text);
 use Bugzilla::Version;
 
+use constant STATUS_WORKFLOW => (
+    [undef, 'UNCONFIRMED'],
+    [undef, 'CONFIRMED'],
+    [undef, 'IN_PROGRESS'],
+    ['UNCONFIRMED', 'CONFIRMED'],
+    ['UNCONFIRMED', 'IN_PROGRESS'],
+    ['UNCONFIRMED', 'RESOLVED'],
+    ['CONFIRMED',   'IN_PROGRESS'],
+    ['CONFIRMED',   'RESOLVED'],
+    ['IN_PROGRESS', 'CONFIRMED'],
+    ['IN_PROGRESS', 'RESOLVED'],
+    ['RESOLVED',    'CONFIRMED'],
+    ['RESOLVED',    'VERIFIED'],
+    ['VERIFIED',    'CONFIRMED'],
+    # The RESOLVED/VERIFIED to UNCONFIRMED transition is enabled specially
+    # in the code for bugs that haven't been confirmed.
+);
+
 sub SETTINGS {
     return {
     # 2005-03-03 travis@sedsystems.ca -- Bug 41972
@@ -232,6 +250,24 @@ sub create_default_product {
 
 }
 
+sub init_workflow {
+    my $dbh = Bugzilla->dbh;
+    my $has_workflow = $dbh->selectrow_array('SELECT 1 FROM status_workflow');
+    return if $has_workflow;
+
+    print get_text('install_workflow_init'), "\n";
+
+    my %status_ids = @{ $dbh->selectcol_arrayref(
+        'SELECT value, id FROM bug_status', {Columns=>[1,2]}) };
+
+    foreach my $pair (STATUS_WORKFLOW) {
+        my $old_id = $pair->[0] ? $status_ids{$pair->[0]} : undef;
+        my $new_id = $status_ids{$pair->[1]};
+        $dbh->do('INSERT INTO status_workflow (old_status, new_status)
+                       VALUES (?,?)', undef, $old_id, $new_id);
+    }
+}
+
 sub create_admin {
     my ($params) = @_;
     my $dbh      = Bugzilla->dbh;
index 069096800ecaaca5db35c1d9064decaea971dac1..47e881e8fc1158dd9ae3a617db0f541aa463a3d3 100644 (file)
@@ -530,7 +530,7 @@ sub update_table_definitions {
     _fix_uppercase_index_names();
 
     # 2007-05-17 LpSolit@gmail.com - Bug 344965
-    _initialize_workflow($old_params);
+    _initialize_workflow_for_upgrade($old_params);
 
     # 2007-08-08 LpSolit@gmail.com - Bug 332149
     $dbh->bz_add_column('groups', 'icon_url', {TYPE => 'TINYTEXT'});
@@ -2919,10 +2919,12 @@ sub _fix_uppercase_index_names {
     }
 }
 
-sub _initialize_workflow {
+sub _initialize_workflow_for_upgrade {
     my $old_params = shift;
     my $dbh = Bugzilla->dbh;
 
+    my $had_is_open = $dbh->bz_column_info('bug_status', 'is_open');
+
     $dbh->bz_add_column('bug_status', 'is_open',
                         {TYPE => 'BOOLEAN', NOTNULL => 1, DEFAULT => 'TRUE'});
 
@@ -2955,6 +2957,10 @@ sub _initialize_workflow {
                   join(', ', @closed_statuses) . ')');
     }
 
+    # We only populate the workflow here if we're upgrading from a version
+    # before 3.2.
+    return if $had_is_open;
+
     # Populate the status_workflow table. We do nothing if the table already
     # has entries. If all bug status transitions have been deleted, the
     # workflow will be restored to its default schema.
@@ -2974,7 +2980,7 @@ sub _initialize_workflow {
         # confirmed bugs, so we use this parameter here.
         my $reassign = $old_params->{'commentonreassign'} || 0;
 
-        # This is the default workflow.
+        # This is the default workflow for upgrading installations.
         my @workflow = ([undef, 'UNCONFIRMED', $create],
                         [undef, 'NEW', $create],
                         [undef, 'ASSIGNED', $create],
index 2ae638e4fd844238c0a1743d18c35083c70b46a7..e72c5c52e6926dd16b749e983066aea96a6593e7 100644 (file)
@@ -90,7 +90,7 @@ END
 #     bug_status => {
 #         # Translate "Handled" into "RESOLVED".
 #         "Handled"     => "RESOLVED",
-#         "In Progress" => "ASSIGNED",
+#         "In Progress" => "IN_PROGRESS",
 #     },
 #
 #     priority => {
index ff24f73b52b666d03d2e864b0ede39dd63afed3c..db628b7d54c5f19e79eeb34caefc7e43f0682d82 100644 (file)
@@ -67,8 +67,8 @@ use constant VALUE_MAP => {
         'non-critical' => 'normal',
     },
     bug_status => {
-        'open'      => 'NEW',
-        'analyzed'  => 'ASSIGNED',
+        'open'      => 'CONFIRMED',
+        'analyzed'  => 'IN_PROGRESS',
         'suspended' => 'RESOLVED',
         'feedback'  => 'RESOLVED',
         'released'  => 'VERIFIED',
index 7839c4fd57d369e4c7748511fe55903f750666d2..1a287767495419fee92e4586d09d4c7d49556fe3 100644 (file)
@@ -273,8 +273,8 @@ sub _handle_status_and_resolution {
     elsif ($words->[0] eq 'OPEN') {
         shift @$words;
     }
-    elsif ($words->[0] =~ /^[A-Z]+(,[A-Z]+)*$/) {
-        # e.g. NEW,ASSI,REOP,FIX
+    elsif ($words->[0] =~ /^[A-Z_]+(,[_A-Z]+)*$/) {
+        # e.g. CON,IN_PR,FIX
         undef %states;
         if (matchPrefixes(\%states,
                           \%resolutions,
index 0dd17ae3936e76bd54392e54d999f81873818dec..ffef600de36ad1631a8e22bd36a13de218bf7919 100644 (file)
@@ -241,7 +241,7 @@ Bugzilla::Status - Bug status class.
 
     use Bugzilla::Status;
 
-    my $bug_status = new Bugzilla::Status({name => 'ASSIGNED'});
+    my $bug_status = new Bugzilla::Status({ name => 'IN_PROGRESS' });
     my $bug_status = new Bugzilla::Status(4);
 
     my @closed_bug_statuses = closed_bug_statuses();
index 8993ff08d56c59f433cf595b30976068b502571e..0e89447fe36899e5583c0980a77ce21636c6095f 100755 (executable)
@@ -190,6 +190,7 @@ Bugzilla::Field::populate_field_definitions();
 ###########################################################################
 
 Bugzilla::Install::DB::update_table_definitions(\%old_params);
+Bugzilla::Install::init_workflow();
 
 ###########################################################################
 # Bugzilla uses --GROUPS-- to assign various rights to its users.
index e1e9b64d894a6eab77298d8221eec38ab9ef06c8..d98e7de8d9ffe1d98a5c354cfe41d435f86a14c4 100755 (executable)
@@ -152,7 +152,7 @@ def ensure_defaults(data):
     if 'rep_platform' not in data:
         data['rep_platform'] = 'PC'
     if 'bug_status' not in data:
-        data['bug_status'] = 'NEW'
+        data['bug_status'] = 'CONFIRMED'
     if 'bug_severity' not in data:
         data['bug_severity'] = 'normal'
     if 'bug_file_loc' not in data:
diff --git a/contrib/convert-workflow.pl b/contrib/convert-workflow.pl
new file mode 100644 (file)
index 0000000..c01b751
--- /dev/null
@@ -0,0 +1,111 @@
+#!/usr/bin/perl -w
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+#
+# The Original Code is the Bugzilla Bug Tracking System.
+#
+# The Initial Developer of the Original Code is Everything Solved, Inc.
+# Portions created by the Initial Developer are Copyright (C) 2009 the
+# Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+#   Max Kanat-Alexander <mkanat@bugzilla.org>
+
+use strict;
+use warnings;
+use lib qw(. lib);
+
+use Bugzilla;
+use Bugzilla::Config qw(:admin);
+use Bugzilla::Status;
+
+my $confirmed   = new Bugzilla::Status({ name => 'CONFIRMED' });
+my $in_progress = new Bugzilla::Status({ name => 'IN_PROGRESS' });
+
+if ($confirmed and $in_progress) {
+    print "You are already using the new workflow.\n";
+    exit 1;
+}
+
+print <<END;
+WARNING: This will convert the status of all bugs using the following
+system:
+
+  "NEW" will become "CONFIRMED"
+  "ASSIGNED" will become "IN_PROGRESS"
+  "REOPENED" will become "CONFIRMED" (and the "REOPENED" status will be removed)
+  "CLOSED" will become "VERIFIED" (and the "CLOSED" status will be removed)
+
+This change will be immediate. The history of each bug will also be changed
+so that it appears that these statuses were always in existence.
+
+Emails will not be sent for the change.
+
+To continue, press any key, or press Ctrl-C to stop this program...
+END
+getc;
+
+my $dbh = Bugzilla->dbh;
+my %translation = (
+    NEW      => 'CONFIRMED',
+    ASSIGNED => 'IN_PROGRESS',
+    REOPENED => 'CONFIRMED',
+    CLOSED   => 'VERIFIED',
+);
+
+my $status_field = Bugzilla::Field->check('bug_status');
+$dbh->bz_start_transaction();
+while (my ($from, $to) = each %translation) {
+    print "Converting $from to $to...\n";
+    $dbh->do('UPDATE bugs SET bug_status = ? WHERE bug_status = ?',
+             undef, $to, $from);
+
+    if (Bugzilla->params->{'duplicate_or_move_bug_status'} eq $from) {
+        SetParam('duplicate_or_move_bug_status', $to);
+        write_params();
+    }
+
+    foreach my $what (qw(added removed)) {
+        $dbh->do("UPDATE bugs_activity SET $what = ? 
+                   WHERE fieldid = ? AND $what = ?",
+                 undef, $to, $status_field->id, $from);
+    }
+
+    # Delete any transitions where it now appears that
+    # a bug moved from a status to itself.
+    $dbh->do('DELETE FROM bugs_activity WHERE fieldid = ? AND added = removed',
+             undef, $status_field->id);
+
+    # If the new status already exists, just delete the old one, but retain
+    # the workflow items from it.
+    if (my $existing = new Bugzilla::Status({ name => $to })) {
+        $dbh->do('DELETE FROM bug_status WHERE value = ?', undef, $from);
+    }
+    # Otherwise, rename the old status to the new one.
+    else {
+        $dbh->do('UPDATE bug_status SET value = ? WHERE value = ?',
+                 undef, $to, $from);
+    }
+}
+
+$dbh->bz_commit_transaction();
+
+print <<END;
+Done. There are some things you may want to fix, now:
+
+  * You may want to run ./collectstats.pl --regenerate to regenerate
+    data for the Old Charts system. 
+  * You may have to fix the Status Workflow using the Status Workflow
+    panel in "Administration".
+  * You will probably want to update the "mybugstemplate" and "defaultquery"
+    parameters using the Parameters panel in "Administration". (Just
+    resetting them to the default will work.)
+END
index e2f50292743ccdf5571525a01f8c4b5bb7648ae9..55cb056b5c2e7668a7e901eb8da6802d9472e56e 100755 (executable)
@@ -28,7 +28,7 @@ if not mimetypes.types_map.has_key('.doc'):
 if not mimetypes.encodings_map.has_key('.bz2'):
     mimetypes.encodings_map['.bz2'] = "bzip2"
 
-bug_status='NEW'
+bug_status='CONFIRMED'
 component="default"
 version=""
 product="" # this is required, the rest of these are defaulted as above
@@ -265,8 +265,8 @@ def usage():
 Where OPTIONS are one or more of the following:
 
   -h                This help information.
-  -s STATUS         One of UNCONFIRMED, NEW, ASSIGNED, REOPENED, RESOLVED, VERIFIED, CLOSED
-                    (default is NEW)
+  -s STATUS         One of UNCONFIRMED, CONFIRMED, IN_PROGRESS, RESOLVED, VERIFIED
+                    (default is CONFIRMED)
   -c COMPONENT      The component to attach to each bug as it is important. This should be
                     valid component for the Product.
   -v VERSION        Version to assign to these defects.
@@ -285,7 +285,7 @@ def main():
 
     for o,a in opts:
         if o == "-s":
-            if a in ('UNCONFIRMED','NEW','ASSIGNED','REOPENED','RESOLVED','VERIFIED','CLOSED'):
+            if a in ('UNCONFIRMED','CONFIRMED','IN_PROGRESS','RESOLVED','VERIFIED'):
                 bug_status = a
         elif o == '-c':
             component = a
index dda8ac48a0c6e6073cd23229c0d50562b07c2420..dc1df1e17fd987823851bd43f36fbb1b8d2f15ff 100644 (file)
       <dia:attribute name="text">
         <dia:composite type="text">
           <dia:attribute name="string">
-            <dia:string>#NEW#</dia:string>
+            <dia:string>#CONFIRMED#</dia:string>
           </dia:attribute>
           <dia:attribute name="font">
             <dia:font family="sans" style="80" name="Helvetica"/>
       <dia:attribute name="text">
         <dia:composite type="text">
           <dia:attribute name="string">
-            <dia:string>#ASSIGNED#</dia:string>
+            <dia:string>#IN_PROGRESS#</dia:string>
           </dia:attribute>
           <dia:attribute name="font">
             <dia:font family="sans" style="80" name="Helvetica"/>
index 2a05404f18bde27b7d96ecb6f0886ac09c65c10c..88428436575ba3ac60beb7f51adaf3c3ae670025 100644 (file)
             <listitem>
               <para>
                 Set this to the number of days you want to let bugs go
-                in the NEW or REOPENED state before notifying people they have
+                in the CONFIRMED state before notifying people they have
                 untouched new bugs. If you do not plan to use this feature, simply 
                 do not set up the whining cron job described in the installation
                 instructions, or set this value to "0" (never whine).
     basis. The number of <quote>votes</quote> available to 
     users is set per-product, as is the number of votes
     required to move a bug automatically from the UNCONFIRMED 
-    status to the NEW status.
+    status to the CONFIRMED status.
     </para>
 
     <para>
@@ -2547,7 +2547,7 @@ ReadOnly: ENTRY, NA/NA, CANEDIT
     This allows developers to gauge
     user need for a particular enhancement or bugfix. By allowing bugs with
     a certain number of votes to automatically move from "UNCONFIRMED" to
-    "NEW", users of the bug system can help high-priority bugs garner
+    "CONFIRMED", users of the bug system can help high-priority bugs garner
     attention so they don't sit for a long time awaiting triage.</para>
 
     <para>To modify Voting settings:</para>
@@ -2576,7 +2576,7 @@ ReadOnly: ENTRY, NA/NA, CANEDIT
         <para><emphasis>Number of votes a bug in this product needs to
         automatically get out of the UNCONFIRMED state</emphasis>: 
         Setting this field to "0" disables the automatic move of
-        bugs from UNCONFIRMED to NEW
+        bugs from UNCONFIRMED to CONFIRMED
         </para>
       </listitem>
 
index bffcb9b4f7ea7c5b7bbe3eccf1d79f72e3cdb7ff..b1f4b9ccb268f87c31639a653d968a96547fa6d0 100644 (file)
@@ -1494,7 +1494,7 @@ c:\perl\bin\perl.exe -xc:\bugzilla -wT "%s" %s
       <para>What good are
       bugs if they're not annoying? To help make them more so you
       can set up Bugzilla's automatic whining system to complain at engineers
-      which leave their bugs in the NEW or REOPENED state without triaging them.
+      which leave their bugs in the CONFIRMED state without triaging them.
       </para>
       <para>
         This can be done by adding the following command as a daily
index 5fadce9988e2dee2b88c35ccf5c259440f88c13b..162dd2afbbc2f7f856b02b3d6de37ea3c6e2cdec 100755 (executable)
@@ -199,9 +199,6 @@ my $sth = $dbh->prepare(
 foreach my $k (keys(%seen)) {
     # Retrieve bug information from the database
     my ($stat, $resolution, $summary) = $dbh->selectrow_array($sth, undef, $k);
-    $stat ||= 'NEW';
-    $resolution ||= '';
-    $summary ||= '';
 
     # Resolution and summary are shown only if user can see the bug
     if (!Bugzilla->user->can_see_bug($k)) {
index 9f456ee6f55ad712728ef00fabaa68a2e12f751a..15d4f1e29fa5216fa2c12d2e3b122974f9a2adbb 100644 (file)
    desc = "Set up $terms.bug change policies"
 %]
 
+[% PROCESS "global/field-descs.none.tmpl" %]
+
+[% accept_status = display_value('bug_status', 'IN_PROGRESS') FILTER html %]
+
 [% param_descs = {
   duplicate_or_move_bug_status => "When $terms.abug is marked as a duplicate of another one " _
                                   "or is moved to another installation, use this $terms.bug status."
                                  "If off, then all $terms.bugs initially have the default " _
                                  "milestone for the product being filed in.",
 
-  musthavemilestoneonaccept => "If you are using Target Milestone, do you want to require that " _
-                               "the milestone be set in order for a user to ACCEPT a ${terms.bug}?",
+  musthavemilestoneonaccept => 
+    "If you are using ${field_descs.target_milestone}, do you want to require"
+    _ " that the milestone be set in order for a user to set"
+    _ "  ${terms.abug}'s status to ${accept_status}?",
 
   commentonchange_resolution => "If this option is on, the user needs to enter a short " _
                                 "comment if the resolution of the $terms.bug changes.",
index 872db801a624c361c9bc7ae6ff72f23050af5b61..5391a4fc9d29a1ef6c2a45ce5ee22d38d5ed7ba0 100644 (file)
@@ -68,7 +68,7 @@
                 " $terms.Bugzilla and your SMTP server. You can use this to" _
                 " troubleshoot email problems.",
 
-  whinedays => "The number of days that we'll let a $terms.bug sit untouched in a NEW " _
+  whinedays => "The number of days that we'll let a $terms.bug sit untouched in a CONFIRMED " _
                "state before our cronjob will whine at the owner.<br> " _
                "Set to 0 to disable whining.",
 
index 6ae400e279925098f14fd39217d15676aefcaf1e..1b50661cf7ba792deeb312e5a4ab40fc98eafd46 100644 (file)
@@ -32,7 +32,7 @@
   product.is_active = 1,
   version = "unspecified",
   product.defaultmilestone = constants.DEFAULT_MILESTONE
-  product.allows_unconfirmed = 0
+  product.allows_unconfirmed = 1
 %]
 
 <form method="post" action="editproducts.cgi">
index e90480e8b47540dcc709e7611562e5bb2897a7f3..32d8da8a0b95183853ccf5fe3e393e93b6369050 100644 (file)
@@ -30,9 +30,8 @@ You have one or more [% terms.bugs %] assigned to you in the [% terms.Bugzilla %
 [% terms.bug %] tracking system ([% urlbase %]) that require
 attention.
 
-All of these [% terms.bugs %] are in the [% display_value("bug_status", "NEW") %] or
-[%= display_value("bug_status", "REOPENED") %] state, and have not been
-touched in [% Param("whinedays") %] days or more.
+All of these [% terms.bugs %] are in the [% display_value("bug_status", "CONFIRMED") %]
+state, and have not been touched in [% Param("whinedays") %] days or more.
 You need to take a look at them, and decide on an initial action.
 
 Generally, this means one of three things:
@@ -44,17 +43,17 @@ Generally, this means one of three things:
     sure that the Component field seems reasonable, and then use the
     "Reset Assignee to default" option.)
 (3) You decide the [% terms.bug %] belongs to you, but you can't solve it this moment.
-    Accept the [% terms.bug %] by setting the status to [% display_value("bug_status", "ASSIGNED") %].
+    Accept the [% terms.bug %] by setting the status to [% display_value("bug_status", "IN_PROGRESS") %].
 
-To get a list of all [% display_value("bug_status", "NEW") %]/[% display_value("bug_status", "REOPENED") %] [%+ terms.bugs %], you can use this URL (bookmark
+To get a list of all [% display_value("bug_status", "CONFIRMED") %] [%+ terms.bugs %], you can use this URL (bookmark
 it if you like!):
 
- [% urlbase %]buglist.cgi?bug_status=NEW&bug_status=REOPENED&assigned_to=[% email %]
+ [% urlbase %]buglist.cgi?bug_status=CONFIRMED&assigned_to=[% email %]
 
 Or, you can use the general query page, at 
 [%+ urlbase %]query.cgi
 
-Appended below are the individual URLs to get to all of your [% display_value("bug_status", "NEW") %] [%+ terms.bugs %]
+Appended below are the individual URLs to get to all of your [% display_value("bug_status", "CONFIRMED") %] [%+ terms.bugs %]
 that haven't been touched for [% Param("whinedays") %] days or more.
 
 You will get this message once a day until you've dealt with these [% terms.bugs %]!
index ee75efaa3a39e7c498dc85f92300cdd27463fac0..2ef558ce4022f2dc66b77b686d05a3fe8c06fc9a 100644 (file)
@@ -68,7 +68,7 @@
 [% value_descs = {
   "bug_status" => {
     # "UNCONFIRMED" => "UNCO",
-    # "NEW"         => "NEWISH",
+    # "CONFIRMED"   => "ITSABUG",
   },
 
   "resolution" => {
index b45724b73482a236627309bc1455da78d5d2bf2f..96225e128e3f064aeb9665d14e3985d9169469b6 100644 (file)
     Verify that the file permissions in your [% terms.Bugzilla %] directory are
     suitable for your system. Avoid unnecessary write access.
 
+  [% ELSIF message_tag == "install_workflow_init" %]
+    Setting up the default status workflow...
+
   [% ELSIF message_tag == "product_created" %]
     [% title = "Product Created" %]
     The product <em>[% product.name FILTER html %]</em> has been created. You will need to
index 3f9e2b881844479ca46d416ae033aafbe96159df..b135267f4539c2fa1ed536408bcbf9a123fe70d7 100644 (file)
@@ -82,7 +82,7 @@ END:VCALENDAR
     [% END %]
   [% END %]
   [% IF NOT status %]
-    [% IF bug_status == 'ASSIGNED' %]
+    [% IF bug_status == 'IN_PROGRESS' || bug_status == 'ASSIGNED' %]
       [% status = 'IN-PROGRESS' %]
     [% ELSE %]
       [% status = 'NEEDS-ACTION' %]
index de089ec11db84b2bb08b7465577c9e54c300871a..d97a40f96e20904fbfb5e46b51f69a9e5f365111 100644 (file)
           Nobody has confirmed that this [% terms.bug %] is valid. Users
           who have the "canconfirm" permission set may confirm
           this [% terms.bug %], changing its state to 
-          <b>[% display_value("bug_status", "NEW") FILTER html %]</b>. 
+          <b>[% display_value("bug_status", "CONFIRMED") FILTER html %]</b>. 
           Or, it may be directly resolved and marked
           <b>[% display_value("bug_status", "RESOLVED") FILTER html %]</b>.
         </dd>
 
         <dt>
-          [% display_value("bug_status", "NEW") FILTER html %]
+          [% display_value("bug_status", "CONFIRMED") FILTER html %]
         </dt>
         <dd>
           This [% terms.bug %] is valid and has recently been filed.
           [%+ terms.Bugs %] in this state become 
-          <b>[% display_value("bug_status", "ASSIGNED") FILTER html %]</b> when
-          somebody is working on them, or become resolved and marked
+          <b>[% display_value("bug_status", "IN_PROGRESS") FILTER html %]</b>
+          when somebody is working on them, or become resolved and marked
           <b>[% display_value("bug_status", "RESOLVED") FILTER html %]</b>.
         </dd>
 
         <dt>
-          [% display_value("bug_status", "ASSIGNED") FILTER html %]
+          [% display_value("bug_status", "IN_PROGRESS") FILTER html %]
         </dt>
         <dd>
           This [% terms.bug %] is not yet resolved, but is assigned to the
           proper person who is working on the [% terms.bug %]. From here,
           [%+ terms.bugs %] can be given to another person and become
-          <b>[% display_value("bug_status", "NEW") FILTER html %]</b>, or
+          <b>[% display_value("bug_status", "CONFIRMED") FILTER html %]</b>, or
           resolved and become 
           <b>[% display_value("bug_status", "RESOLVED") FILTER html %]</b>.
         </dd>
-
-        <dt>
-          [% display_value("bug_status", "REOPENED") FILTER html %]
-        </dt>
-        <dd>
-          This [% terms.bug %] was once resolved, but the resolution was
-          deemed incorrect. For example, a 
-          <b>[% display_value("resolution", "WORKSFORME") FILTER html %]</b>
-          [%+ terms.bug %] is marked 
-          <b>[% display_value("bug_status", "REOPENED") FILTER html %]</b> when
-          more information shows up and the [% terms.bug %] is now
-          reproducible. From here, [% terms.bugs %] are either marked 
-          <b>[% display_value("bug_status", "ASSIGNED") FILTER html %]</b> or
-          <b>[% display_value("bug_status", "RESOLVED") FILTER html %]</b>.
-        </dd>
-      </dl>
     </td>
 
     <td>
         </dt>
         <dd>
           A resolution has been performed, and it is awaiting verification by
-          QA. From here [% terms.bugs %] are either re-opened and become
-          <b>[% display_value("bug_status", "REOPENED") FILTER html %]</b>, are
-          marked <b>[% display_value("bug_status", "VERIFIED") FILTER html %]</b>,
-          or are closed for good and marked 
-          <b>[% display_value("bug_status", "CLOSED") FILTER html %]</b>.
+          QA. From here [% terms.bugs %] are either reopened and given some
+          open status, or are verified by QA and marked
+          <b>[% display_value("bug_status", "VERIFIED") FILTER html %]</b>.
         </dd>
 
         <dt>
         </dt>
         <dd>
           QA has looked at the [% terms.bug %] and the resolution and
-          agrees that the appropriate resolution has been taken. 
-          [%+ terms.Bugs %] remain in this state until the product they were
-          reported against actually ships, at which point they become
-          <b>[% display_value("bug_status", "CLOSED") FILTER html %]</b>.
-        </dd>
-
-        <dt>
-          [% display_value("bug_status", "CLOSED") FILTER html %]
-        </dt>
-        <dd>
-          The [% terms.bug %] is considered dead, the resolution is correct.
-          Any zombie [% terms.bugs %] who choose to walk the earth again must
-          do so by becoming 
-          <b>[% display_value("bug_status", "REOPENED") FILTER html %]</b>.
+          agrees that the appropriate resolution has been taken. This is
+          the final staus for bugs. 
         </dd>
       </dl>
     </td>
index 1a630671d4e0d979c68a8fc28aeab5ddd121ed72..486261009e61f66b7a7a1df2d56a2ce0ef918659 100644 (file)
@@ -97,8 +97,8 @@
 <p>You can specify any of these fields like <kbd>field:value</kbd>
   in the search box, to search on them. You can also abbreviate
   the field name, as long as your abbreviation matches only one field name.
-  So, for example, searching on <kbd>stat:NEW</kbd> will find all
-  [%+ terms.bugs %] in the <kbd>NEW</kbd> status. Some fields have
+  So, for example, searching on <kbd>stat:VERIFIED</kbd> will find all
+  [%+ terms.bugs %] in the <kbd>VERIFIED</kbd> status. Some fields have
   multiple names, and you can use any of those names to search for them.</p>
 
 [% IF Bugzilla.active_custom_fields.size %]
index 7be485d29e75a3cea674ff8f783c4ce20be3db20..19b0e44fc642571eabb50c8a11a9bc9b26547331 100755 (executable)
 
 # This is a script suitable for running once a day from a cron job.  It 
 # looks at all the bugs, and sends whiny mail to anyone who has a bug 
-# assigned to them that has status NEW or REOPENED that has not been 
-# touched for more than the number of days specified in the whinedays param.
+# assigned to them that has status CONFIRMED, NEW, or REOPENED that has not
+# been touched for more than the number of days specified in the whinedays
+# param. (We have NEW and REOPENED in there to keep compatibility with old
+# Bugzillas.)
 
 use strict;
 use lib qw(. lib);
@@ -44,7 +46,7 @@ my $query = q{SELECT bug_id, short_desc, login_name
                 FROM bugs
           INNER JOIN profiles
                   ON userid = assigned_to
-               WHERE (bug_status = ? OR bug_status = ?)
+               WHERE bug_status IN (?,?,?)
                  AND disable_mail = 0
                  AND } . $dbh->sql_to_days('NOW()') . " - " .
                        $dbh->sql_to_days('delta_ts') . " > " .
@@ -54,7 +56,8 @@ my $query = q{SELECT bug_id, short_desc, login_name
 my %bugs;
 my %desc;
 
-my $slt_bugs = $dbh->selectall_arrayref($query, undef, 'NEW', 'REOPENED');
+my $slt_bugs = $dbh->selectall_arrayref($query, undef, 'CONFIRMED', 'NEW',
+                                                       'REOPENED');
 
 foreach my $bug (@$slt_bugs) {
     my ($id, $desc, $email) = @$bug;