ungrouped = []
grouped = {label_string: [], label_date: [], label_time_tracking: [], label_attachment: []}
query.available_filters.map do |field, field_options|
- if field =~ /^(.+)\./
+ if /^cf_\d+\./.match?(field)
+ group = (field_options[:through] || field_options[:field]).try(:name)
+ elsif field =~ /^(.+)\./
# association filters
group = "field_#{$1}".to_sym
elsif field_options[:type] == :relation
group = :label_relations
elsif field_options[:type] == :tree
group = query.is_a?(IssueQuery) ? :label_relations : nil
- elsif /^cf_\d+\./.match?(field)
- group = (field_options[:through] || field_options[:field]).try(:name)
elsif %w(member_of_group assigned_to_role).include?(field)
group = :field_assigned_to
elsif field_options[:type] == :date_past || field_options[:type] == :date
assert_include "Non", csv
end
end
+
+ def test_filters_options_for_select_should_group_custom_field_relations
+ i_cf = IssueCustomField.generate!(field_format: 'user', name: 'User', is_for_all: true, trackers: Tracker.all, is_filter: true)
+ u_cf = UserCustomField.find(4)
+ u_cf.is_filter = true
+ u_cf.save
+
+ options = filters_options_for_select(IssueQuery.new)
+
+ assert_select_in options, 'option[value=?]', "cf_#{i_cf.id}.cf_#{u_cf.id}", text: "User's Phone number"
+ assert_select_in options, 'optgroup[label=?]', 'User', 1
+ end
end