]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 653597 - Reports with "Real Name" fields use foo_real_name in the url parameters...
authorSimon Green <sgreen@redhat.com>
Mon, 16 Jun 2014 23:10:52 +0000 (09:10 +1000)
committerSimon Green <sgreen@redhat.com>
Mon, 16 Jun 2014 23:10:52 +0000 (09:10 +1000)
r=gerv, a=justdave

Bugzilla/Field.pm
Bugzilla/Search.pm

index 6ad8df573860b7c389ce78dccb4ff884245fdeac..e72a9429343d8bf38b96821c29bc415541ced4cc 100644 (file)
@@ -201,6 +201,12 @@ use constant DEFAULT_FIELDS => (
      buglist => 1},
     {name => 'qa_contact',   desc => 'QAContact',  in_new_bugmail => 1,
      buglist => 1},
+    {name => 'assigned_to_realname',  desc => 'AssignedToName',
+     in_new_bugmail => 0, buglist => 1},
+    {name => 'reporter_realname',     desc => 'ReportedByName',
+     in_new_bugmail => 0, buglist => 1},
+    {name => 'qa_contact_realname',   desc => 'QAContactName',
+     in_new_bugmail => 0, buglist => 1},
     {name => 'cc',           desc => 'CC',         in_new_bugmail => 1},
     {name => 'dependson',    desc => 'Depends on', in_new_bugmail => 1,
      is_numeric => 1, buglist => 1},
index 8a549a2b92fd3cf49bf1ca818c0126a6aa69fe36..18abf8d25fd3a48579a1d773fe7d7dc269c65d21 100644 (file)
@@ -235,6 +235,9 @@ use constant OPERATOR_FIELD_OVERRIDE => {
     assigned_to => {
         _non_changed => \&_user_nonchanged,
     },
+    assigned_to_realname => {
+        _non_changed => \&_user_nonchanged,
+    },
     cc => {
         _non_changed => \&_user_nonchanged,
     },
@@ -244,6 +247,9 @@ use constant OPERATOR_FIELD_OVERRIDE => {
     reporter => {
         _non_changed => \&_user_nonchanged,
     },
+    reporter_realname => {
+        _non_changed => \&_user_nonchanged,
+    },
     'requestees.login_name' => {
         _non_changed => \&_user_nonchanged,
     },
@@ -253,7 +259,10 @@ use constant OPERATOR_FIELD_OVERRIDE => {
     qa_contact => {
         _non_changed => \&_user_nonchanged,
     },
-    
+    qa_contact_realname => {
+        _non_changed => \&_user_nonchanged,
+    },
+
     # General Bug Fields
     alias        => { _non_changed => \&_nullable },
     'attach_data.thedata' => MULTI_SELECT_OVERRIDE,
@@ -570,9 +579,6 @@ sub COLUMNS {
     # of short_short_desc.)
     my %columns = (
         relevance            => { title => 'Relevance'  },
-        assigned_to_realname => { title => 'Assignee'   },
-        reporter_realname    => { title => 'Reporter'   },
-        qa_contact_realname  => { title => 'QA Contact' },
     );
 
     # Next we define columns that have special SQL instead of just something
@@ -629,7 +635,7 @@ sub COLUMNS {
              $sql = $dbh->sql_string_until($sql, $dbh->quote('@'));
         }
         $special_sql{$col} = $sql;
-        $columns{"${col}_realname"}->{name} = "map_${col}.realname";
+        $special_sql{"${col}_realname"} = "map_${col}.realname";
     }
 
     foreach my $col (@id_fields) {
@@ -2399,6 +2405,20 @@ sub _user_nonchanged {
     if ($args->{value_is_id}) {
         $null_alternate = 0;
     }
+    elsif (substr($field, -9) eq '_realname') {
+        my $as = "name_${field}_$chart_id";
+        # For fields with periods in their name.
+        $as =~ s/\./_/;
+        my $join = {
+            table => 'profiles',
+            as    => $as,
+            from  => substr($args->{full_field}, 0, -9),
+            to    => 'userid',
+            join  => (!$is_in_other_table and !$is_nullable) ? 'INNER' : undef,
+        };
+        push(@$joins, $join);
+        $args->{full_field} = "$as.realname";
+    }
     else {
         my $as = "name_${field}_$chart_id";
         # For fields with periods in their name.
@@ -2413,7 +2433,7 @@ sub _user_nonchanged {
         push(@$joins, $join);
         $args->{full_field} = "$as.login_name";
     }
-    
+
     # We COALESCE fields that can be NULL, to make "not"-style operators
     # continue to work properly. For example, "qa_contact is not equal to bob"
     # should also show bugs where the qa_contact is NULL. With COALESCE,