Commit d0b17e98 authored by Max Kanat-Alexander's avatar Max Kanat-Alexander

Bug 395461: Allow multi-select fields to show up in buglist.cgi

r=dkl, a=mkanat
parent e03ba3a9
...@@ -105,6 +105,8 @@ sub update_fielddefs_definition { ...@@ -105,6 +105,8 @@ sub update_fielddefs_definition {
#2008-08-26 elliotte_martin@yahoo.com - Bug 251556 #2008-08-26 elliotte_martin@yahoo.com - Bug 251556
$dbh->bz_add_column('fielddefs', 'reverse_desc', {TYPE => 'TINYTEXT'}); $dbh->bz_add_column('fielddefs', 'reverse_desc', {TYPE => 'TINYTEXT'});
$dbh->do('UPDATE fielddefs SET buglist = 1
WHERE custom = 1 AND type = ' . FIELD_TYPE_MULTI_SELECT);
# Remember, this is not the function for adding general table changes. # Remember, this is not the function for adding general table changes.
# That is below. Add new changes to the fielddefs table above this # That is below. Add new changes to the fielddefs table above this
......
...@@ -162,8 +162,18 @@ sub COLUMNS { ...@@ -162,8 +162,18 @@ sub COLUMNS {
foreach my $field (Bugzilla->get_fields({ obsolete => 0, buglist => 1 })) { foreach my $field (Bugzilla->get_fields({ obsolete => 0, buglist => 1 })) {
my $id = $field->name; my $id = $field->name;
$id = $old_names{$id} if exists $old_names{$id}; $id = $old_names{$id} if exists $old_names{$id};
my $sql = 'bugs.' . $field->name; my $sql;
$sql = $special_sql{$id} if exists $special_sql{$id}; if (exists $special_sql{$id}) {
$sql = $special_sql{$id};
}
elsif ($field->type == FIELD_TYPE_MULTI_SELECT) {
$sql = $dbh->sql_group_concat(
'DISTINCT map_bug_' . $field->name . '.value',
$dbh->quote(', '));
}
else {
$sql = 'bugs.' . $field->name;
}
$columns{$id} = { name => $sql, title => $field->description }; $columns{$id} = { name => $sql, title => $field->description };
} }
...@@ -273,6 +283,12 @@ sub init { ...@@ -273,6 +283,12 @@ sub init {
push(@supptables, "LEFT JOIN longdescs AS ldtime " . push(@supptables, "LEFT JOIN longdescs AS ldtime " .
"ON ldtime.bug_id = bugs.bug_id"); "ON ldtime.bug_id = bugs.bug_id");
} }
foreach my $field (@multi_select_fields) {
my $field_name = $field->name;
next if !grep($_ eq $field_name, @fields);
push(@supptables, "LEFT JOIN bug_$field_name AS map_bug_$field_name"
. " ON map_bug_$field_name.bug_id = bugs.bug_id");
}
if (grep($_ eq 'flagtypes.name', @fields)) { if (grep($_ eq 'flagtypes.name', @fields)) {
push(@supptables, "LEFT JOIN flags ON flags.bug_id = bugs.bug_id AND attach_id IS NULL"); push(@supptables, "LEFT JOIN flags ON flags.bug_id = bugs.bug_id AND attach_id IS NULL");
......
File mode changed from 100644 to 100755
...@@ -64,7 +64,7 @@ elsif ($action eq 'new') { ...@@ -64,7 +64,7 @@ elsif ($action eq 'new') {
enter_bug => scalar $cgi->param('enter_bug'), enter_bug => scalar $cgi->param('enter_bug'),
obsolete => scalar $cgi->param('obsolete'), obsolete => scalar $cgi->param('obsolete'),
custom => 1, custom => 1,
buglist => (scalar $cgi->param('type') == FIELD_TYPE_MULTI_SELECT ? 0 : 1), buglist => 1,
visibility_field_id => scalar $cgi->param('visibility_field_id'), visibility_field_id => scalar $cgi->param('visibility_field_id'),
visibility_value_id => scalar $cgi->param('visibility_value_id'), visibility_value_id => scalar $cgi->param('visibility_value_id'),
value_field_id => scalar $cgi->param('value_field_id'), value_field_id => scalar $cgi->param('value_field_id'),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment