diff --git a/post_bug.cgi b/post_bug.cgi
index c0878b0..bb82139 100755
--- a/post_bug.cgi
+++ b/post_bug.cgi
@@ -144,6 +144,19 @@ foreach my $field (@multi_selects) {
$bug_params{$field->name} = [$cgi->param($field->name)];
}
+# ROSA-specific feature: if a checkbox for a drop-down field is displayed instead, use it
+my @drop_down_fields = grep {$_->type == FIELD_TYPE_SINGLE_SELECT
+ || $_->type == FIELD_TYPE_MULTI_SELECT}
+ Bugzilla->active_custom_fields;
+foreach my $field (@drop_down_fields) {
+ next if $field->legal_values && (@{$field->legal_values} > 1);
+ if ($cgi->param("checkbox_".$field->name)) {
+ $bug_params{$field->name} = [$field->legal_values->[0]->name];
+ } else {
+ $bug_params{$field->name} = [];
+ }
+}
+
my $bug = Bugzilla::Bug->create(\%bug_params);
# Get the bug ID back and delete the token used to create this bug.
diff --git a/process_bug.cgi b/process_bug.cgi
index cec227a..c24a04f 100755
--- a/process_bug.cgi
+++ b/process_bug.cgi
@@ -343,6 +343,20 @@ foreach my $field (@custom_fields) {
}
}
+# ROSA-specific feature: if a checkbox for a drop-down field is displayed instead, use it
+my @drop_down_fields = grep {$_->type == FIELD_TYPE_SINGLE_SELECT
+ || $_->type == FIELD_TYPE_MULTI_SELECT}
+ Bugzilla->active_custom_fields;
+foreach my $field (@drop_down_fields) {
+ next if $field->legal_values && (@{$field->legal_values} > 1);
+ if ($cgi->param("checkbox_".$field->name)) {
+ $set_all_fields{$field->name} = [$field->legal_values->[0]->name];
+ } else {
+ $set_all_fields{$field->name} = [];
+ }
+}
+
+
# We are going to alter the list of removed groups, so we keep a copy here.
my @unchecked_groups = @$removed_groups;
foreach my $b (@bug_objects) {
diff --git a/template/en/default/bug/field.html.tmpl b/template/en/default/bug/field.html.tmpl
index 9c956ea..a7c64db 100644
--- a/template/en/default/bug/field.html.tmpl
+++ b/template/en/default/bug/field.html.tmpl
@@ -97,6 +97,24 @@
[% CASE [ constants.FIELD_TYPE_SINGLE_SELECT
constants.FIELD_TYPE_MULTI_SELECT ] %]
+ [% IF override_legal_values %]
+ [% legal_values = override_legal_values %]
+ [% ELSE %]
+ [% legal_values = field.legal_values %]
+ [% END %]
+ [% IF field.custom && legal_values.size == 1 %]
+
+
+ [% ELSE %]