]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 401953: Move work_time validation from process_bug to Bugzilla::Bug
authormkanat%bugzilla.org <>
Mon, 5 Nov 2007 01:17:57 +0000 (01:17 +0000)
committermkanat%bugzilla.org <>
Mon, 5 Nov 2007 01:17:57 +0000 (01:17 +0000)
Patch By Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit, a=LpSolit

Bugzilla/Bug.pm
process_bug.cgi

index ba66e846fa548fb281e1ef322bfb74c7d0c3ec0a..7ffc3b52e3531addc898930506176763b4ffd174 100755 (executable)
@@ -496,6 +496,10 @@ sub update {
         $dbh->do("INSERT INTO longdescs (bug_id, who, bug_when, $columns)
                        VALUES (?,?,?,$qmarks)", undef,
                  $self->bug_id, Bugzilla->user->id, $delta_ts, @values);
+        if ($comment->{work_time}) {
+            LogActivityEntry($self->id, "work_time", "", $comment->{work_time},
+                Bugzilla->user->id, $delta_ts);
+        }
     }
 
     # Insert the values into the multiselect value tables
@@ -1547,6 +1551,8 @@ sub add_comment {
     $params ||= {};
     if (exists $params->{work_time}) {
         $params->{work_time} = $self->_check_work_time($params->{work_time});
+        ThrowUserError('comment_required')
+            if $comment eq '' && $params->{work_time} != 0;
     }
     if (exists $params->{type}) {
         $params->{type} = $self->_check_comment_type($params->{type});
index d7fee819922dbbc26ca66b11b75d7a110542dff0..027965f057a3cd2ed9cce896022637c4b87b8873 100755 (executable)
@@ -164,21 +164,6 @@ $cgi->param('dontchange','') unless defined $cgi->param('dontchange');
 # Make sure the 'knob' param is defined; else set it to 'none'.
 $cgi->param('knob', 'none') unless defined $cgi->param('knob');
 
-# Validate work_time
-if (defined $cgi->param('work_time') 
-    && $cgi->param('work_time') ne $cgi->param('dontchange')) 
-{
-    $cgi->param('work_time', $bug->_check_time($cgi->param('work_time'),
-                                               'work_time'));
-}
-
-if (Bugzilla->user->in_group(Bugzilla->params->{'timetrackinggroup'})) {
-    my $wk_time = $cgi->param('work_time');
-    if (!comment_exists() && $wk_time && $wk_time != 0) {
-        ThrowUserError('comment_required');
-    }
-}
-
 $cgi->param('comment', $bug->_check_comment($cgi->param('comment')));
 
 # If the bug(s) being modified have dependencies, validate them
@@ -927,17 +912,12 @@ foreach my $id (@idlist) {
         exit;
     }
 
-    my $work_time;
-    if (Bugzilla->user->in_group(Bugzilla->params->{'timetrackinggroup'})) {
-        $work_time = $cgi->param('work_time');
-    }
-
-    if ($cgi->param('comment') || $work_time || $duplicate) {
+    if ($cgi->param('comment') || $cgi->param('work_time') || $duplicate) {
         my $type = $duplicate ? CMT_DUPE_OF : CMT_NORMAL;
 
         $bug_objects{$id}->add_comment(scalar($cgi->param('comment')),
             { isprivate => scalar($cgi->param('commentprivacy')),
-              work_time => $work_time, type => $type, 
+              work_time => scalar $cgi->param('work_time'), type => $type, 
               extra_data => $duplicate});
         $bug_changed = 1;
     }
@@ -948,11 +928,6 @@ foreach my $id (@idlist) {
     
     $timestamp = $dbh->selectrow_array(q{SELECT NOW()});
 
-    if ($work_time) {
-        LogActivityEntry($id, "work_time", "", $work_time,
-                         $whoid, $timestamp);
-    }
-
     $bug_objects{$id}->update($timestamp);
 
     $bug_objects{$id}->update_keywords($timestamp);