]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Add a new param, musthavemilestoneonaccept, which requires users to
authorterry%mozilla.org <>
Tue, 9 May 2000 05:00:38 +0000 (05:00 +0000)
committerterry%mozilla.org <>
Tue, 9 May 2000 05:00:38 +0000 (05:00 +0000)
set the target milestone when accepting a bug.

defparams.pl
process_bug.cgi

index 41a40faf01cfd16a68c93ed8598975f6e2bad685..f3ee43a6c1f815598a015f7ceed0d57a65eee91f 100644 (file)
@@ -427,6 +427,11 @@ DefParam("curmilestone",
          1,
          \&check_numeric);
 
+DefParam("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 bug?",
+         "b",
+         0);
+
 DefParam("useqacontact",
         "Do you wish to use the QA Contact field?",
         "b",
index 22dff72e9141f64ca1a83f0aead5e85cd41dd486..8d88ef85ce2cc9fea5939c600c190e6df70ed5a7 100755 (executable)
@@ -45,6 +45,8 @@ use vars %::versions,
 
 my $whoid = confirm_login();
 
+my $requiremilestone = 0;
+
 print "Content-type: text/html\n\n";
 
 PutHeader ("Bug processed");
@@ -404,6 +406,11 @@ SWITCH: for ($::FORM{'knob'}) {
     /^accept$/ && CheckonComment( "accept" ) && do {
         DoConfirm();
         ChangeStatus('ASSIGNED');
+        if (Param("musthavemilestoneonaccept")) {
+            if (Param("usetargetmilestone")) {
+                $requiremilestone = 1;
+            }
+        }
         last SWITCH;
     };
     /^clearresolution$/ && CheckonComment( "clearresolution" ) && do {
@@ -611,16 +618,32 @@ foreach my $id (@idlist) {
     SendSQL("LOCK TABLES bugs $write, bugs_activity $write, cc $write, " .
             "profiles $write, dependencies $write, votes $write, " .
             "keywords $write, longdescs $write, fielddefs $write, " .
-            "keyworddefs READ, groups READ, attachments READ");
+            "keyworddefs READ, groups READ, attachments READ, products READ");
     my @oldvalues = SnapShotBug($id);
+    my %oldhash;
     my $i = 0;
     foreach my $col (@::log_columns) {
+        $oldhash{$col} = $oldvalues[$i];
         if (exists $::FORM{$col}) {
             CheckCanChangeField($col, $id, $oldvalues[$i], $::FORM{$col});
         }
         $i++;
     }
-
+    if ($requiremilestone) {
+        my $value = $::FORM{'target_milestone'};
+        if (!defined $value || $value eq $::dontchange) {
+            $value = $oldhash{'target_milestone'};
+        }
+        SendSQL("SELECT defaultmilestone FROM products WHERE product = " .
+                SqlQuote($oldhash{'product'}));
+        if ($value eq FetchOneColumn()) {
+            SendSQL("UNLOCK TABLES");
+            PuntTryAgain("You must determine a target milestone for bug $id " .
+                         "if you are going to accept it.  (Part of " .
+                         "accepting a bug is giving an estimate of when it " .
+                         "will be fixed.)");
+        }
+    }   
     if (defined $::FORM{'delta_ts'} && $::FORM{'delta_ts'} ne $delta_ts) {
         print "
 <H1>Mid-air collision detected!</H1>