From b2b2dff94179f12a7839a7226c2455010484446d Mon Sep 17 00:00:00 2001 From: Marius Balteanu Date: Sun, 26 Nov 2023 13:57:25 +0000 Subject: [PATCH] Merged r22478 to r22479from trunk to 5.1-stable (#39714). git-svn-id: https://svn.redmine.org/redmine/branches/5.1-stable@22481 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/helpers/queries_helper.rb | 6 +++--- test/helpers/queries_helper_test.rb | 12 ++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/app/helpers/queries_helper.rb b/app/helpers/queries_helper.rb index b90f86457..d2505ff6f 100644 --- a/app/helpers/queries_helper.rb +++ b/app/helpers/queries_helper.rb @@ -26,15 +26,15 @@ module QueriesHelper 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 diff --git a/test/helpers/queries_helper_test.rb b/test/helpers/queries_helper_test.rb index b2943bd03..8c2fd1cb3 100644 --- a/test/helpers/queries_helper_test.rb +++ b/test/helpers/queries_helper_test.rb @@ -105,4 +105,16 @@ class QueriesHelperTest < Redmine::HelperTest 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 -- 2.39.5