diff --git a/app/models/time_entry_query.rb b/app/models/time_entry_query.rb index bad39f8..960ce18 100644 --- a/app/models/time_entry_query.rb +++ b/app/models/time_entry_query.rb @@ -161,7 +161,7 @@ class TimeEntryQuery < Query end def sql_for_issue_fixed_version_id_field(field, operator, value) - issue_ids = Issue.where(:fixed_version_id => value.first.to_i).pluck(:id) + issue_ids = Issue.where(:fixed_version_id => value.map(&:to_i)).pluck(:id) case operator when "=" if issue_ids.any? diff --git a/test/functional/timelog_controller_test.rb b/test/functional/timelog_controller_test.rb index 50766f0..de975bb 100644 --- a/test/functional/timelog_controller_test.rb +++ b/test/functional/timelog_controller_test.rb @@ -826,6 +826,27 @@ class TimelogControllerTest < Redmine::ControllerTest assert_select '.total-for-hours', :text => 'Hours: 5.00' end + def test_index_at_project_level_with_multiple_issue_fixed_version_ids + version = Version.generate!(:project_id => 1) + version2 = Version.generate!(:project_id => 1) + issue = Issue.generate!(:project_id => 1, :fixed_version => version) + issue2 = Issue.generate!(:project_id => 1, :fixed_version => version2) + TimeEntry.generate!(:issue => issue, :hours => 2) + TimeEntry.generate!(:issue => issue2, :hours => 3) + @request.session[:user_id] = 2 + + get :index, :params => { + :project_id => 'ecookbook', + :f => ['issue.fixed_version_id'], + :op => {'issue.fixed_version_id' => '='}, + :v => {'issue.fixed_version_id' => [version.id.to_s,version2.id.to_s]} + } + assert_response :success + + assert_select 'tr.time-entry', 2 + assert_select '.total-for-hours', :text => 'Hours: 5.00' + end + def test_index_at_project_level_with_date_range get :index, :params => { :project_id => 'ecookbook',