]> source.dussan.org Git - redmine.git/commitdiff
Fixed that a cross-project custom query is not remembered inside project (#9738).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Wed, 7 Dec 2011 21:35:14 +0000 (21:35 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Wed, 7 Dec 2011 21:35:14 +0000 (21:35 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@8113 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/helpers/queries_helper.rb
test/functional/issues_controller_test.rb

index 7c43be12c21fd33ad77d52add5aead684d2ddd52..419843b6dd41cc07aad49b11b52de89c4335cb05 100644 (file)
@@ -85,7 +85,8 @@ module QueriesHelper
     else
       # retrieve from session
       @query = Query.find_by_id(session[:query][:id]) if session[:query][:id]
-      @query ||= Query.new(:name => "_", :project => @project, :filters => session[:query][:filters], :group_by => session[:query][:group_by], :column_names => session[:query][:column_names])
+      @query ||= Query.new(:name => "_", :filters => session[:query][:filters], :group_by => session[:query][:group_by], :column_names => session[:query][:column_names])
+      @query.project = @project
     end
   end
 
index 9557cfcb44b2a8ad9c204f38ca729ca26a776d15..5f3f34522fc908e78ac2e423b9222b9d8d3ab785 100644 (file)
@@ -254,6 +254,28 @@ class IssuesControllerTest < ActionController::TestCase
     assert_not_nil assigns(:issue_count_by_group)
   end
 
+  def test_index_with_query_id_and_project_id_should_set_session_query
+    get :index, :project_id => 1, :query_id => 4
+    assert_response :success
+    assert_kind_of Hash, session[:query]
+    assert_equal 4, session[:query][:id]
+    assert_equal 1, session[:query][:project_id]
+  end
+
+  def test_index_with_cross_project_query_in_session_should_show_project_issues
+    q = Query.create!(:name => "test", :user_id => 2, :is_public => false, :project => nil)
+    @request.session[:query] = {:id => q.id, :project_id => 1}
+
+    with_settings :display_subprojects_issues => '0' do
+      get :index, :project_id => 1
+    end
+    assert_response :success
+    assert_not_nil assigns(:query)
+    assert_equal q.id, assigns(:query).id
+    assert_equal 1, assigns(:query).project_id
+    assert_equal [1], assigns(:issues).map(&:project_id).uniq
+  end
+
   def test_private_query_should_not_be_available_to_other_users
     q = Query.create!(:name => "private", :user => User.find(2), :is_public => false, :project => nil)
     @request.session[:user_id] = 3