]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 448815: Support pronouns for the "changed by" field in boolean charts
authorFrédéric Buclin <LpSolit@gmail.com>
Tue, 9 Oct 2012 23:08:04 +0000 (01:08 +0200)
committerFrédéric Buclin <LpSolit@gmail.com>
Tue, 9 Oct 2012 23:08:04 +0000 (01:08 +0200)
r=dkl a=LpSolit

Bugzilla/Search.pm

index 2536d7309a1b3cc15c837061f8c31290434c43df..bf13b177ef04e0dae229a05ac6ec80938b0b73cc 100644 (file)
@@ -2152,6 +2152,15 @@ sub _contact_exact_group {
     }
 }
 
+sub _get_user_id {
+    my ($self, $value) = @_;
+
+    if ($value =~ /^%\w+%$/) {
+        return pronoun($value, $self->_user);
+    }
+    return login_to_id($value, THROW_ERROR);
+}
+
 #####################################################################
 # Search Functions
 #####################################################################
@@ -2282,7 +2291,7 @@ sub _long_desc_changedby {
     
     my $table = "longdescs_$chart_id";
     push(@$joins, { table => 'longdescs', as => $table });
-    my $user_id = login_to_id($value, THROW_ERROR);
+    my $user_id = $self->_get_user_id($value);
     $args->{term} = "$table.who = $user_id";
 }
 
@@ -2378,7 +2387,7 @@ sub _work_time_changedby {
     
     my $table = "longdescs_$chart_id";
     push(@$joins, { table => 'longdescs', as => $table });
-    my $user_id = login_to_id($value, THROW_ERROR);
+    my $user_id = $self->_get_user_id($value);
     $args->{term} = "$table.who = $user_id AND $table.work_time != 0";
 }
 
@@ -2827,7 +2836,7 @@ sub _changedby {
         || ThrowCodeError("invalid_field_name", { field => $field });
     my $field_id = $field_object->id;
     my $table = "act_${field_id}_$chart_id";
-    my $user_id  = login_to_id($value, THROW_ERROR);
+    my $user_id  = $self->_get_user_id($value);
     my $join = {
         table => 'bugs_activity',
         as    => $table,