From: Jean-Philippe Lang Date: Sun, 8 Jan 2012 18:21:00 +0000 (+0000) Subject: Fixed: error when displaying an issue with a query sorted by an association, eg.... X-Git-Tag: 1.4.0~721 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=417219bfc49fd0d2ec725c27bbc57d960e8b699b;p=redmine.git Fixed: error when displaying an issue with a query sorted by an association, eg. priority (#9936). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@8569 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index 43ed6387e..8cd34d08e 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -328,7 +328,7 @@ private sort_init(@query.sort_criteria.empty? ? [['id', 'desc']] : @query.sort_criteria) sort_update(@query.sortable_columns, 'issues_index_sort') limit = 500 - issue_ids = @query.issue_ids(:order => sort_clause, :limit => (limit + 1)) + issue_ids = @query.issue_ids(:order => sort_clause, :limit => (limit + 1), :include => [:assigned_to, :tracker, :priority, :category, :fixed_version]) if (idx = issue_ids.index(@issue.id)) && idx < limit @prev_issue_id = issue_ids[idx - 1] if idx > 0 @next_issue_id = issue_ids[idx + 1] if idx < (issue_ids.size - 1) diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb index c6b96cb3e..22ee54739 100644 --- a/test/functional/issues_controller_test.rb +++ b/test/functional/issues_controller_test.rb @@ -947,6 +947,20 @@ class IssuesControllerTest < ActionController::TestCase assert_tag 'a', :attributes => {:href => '/issues/5'}, :content => /Next/ end + def test_show_should_display_prev_next_links_with_query_and_sort_on_association + @request.session[:query] = {:filters => {'status_id' => {:values => [''], :operator => 'o'}}, :project_id => nil} + + %w(project tracker status priority author assigned_to category fixed_version).each do |assoc_sort| + @request.session['issues_index_sort'] = assoc_sort + + get :show, :id => 3 + assert_response :success, "Wrong response status for #{assoc_sort} sort" + + assert_tag 'a', :content => /Previous/ + assert_tag 'a', :content => /Next/ + end + end + def test_show_should_display_prev_next_links_with_project_query_in_session @request.session[:query] = {:filters => {'status_id' => {:values => [''], :operator => 'o'}}, :project_id => 1} @request.session['issues_index_sort'] = 'id'