]> source.dussan.org Git - redmine.git/commitdiff
Adds a sortable "Project" column to the issue list.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 7 Mar 2009 15:58:39 +0000 (15:58 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 7 Mar 2009 15:58:39 +0000 (15:58 +0000)
It's displayed by default on the cross-project issue list (#2889). It's also available for saved queries.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2566 e93f8b46-1217-0410-a6f0-8f06a7374b81

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

index 63d6a53561a6b36a9f0cec49e30a88879d70ca44..b41e66afde458b3e06db6245a8bd7587d0cc38f3 100644 (file)
@@ -40,7 +40,7 @@ module QueriesHelper
       else
         case column.name
         when :subject
-        h((@project.nil? || @project != issue.project) ? "#{issue.project.name} - " : '') +
+        h((!@project.nil? && @project != issue.project) ? "#{issue.project.name} - " : '') +
           link_to(h(value), :controller => 'issues', :action => 'show', :id => issue)
         when :done_ratio
           progress_bar(value, :width => '80px')
index 84e127b6bf55ac4e0576374acc73075b678f40a7..5c9fad5e5243635a55b26977b837f1a7ceaaac78 100644 (file)
@@ -92,6 +92,7 @@ class Query < ActiveRecord::Base
   cattr_reader :operators_by_filter_type
 
   @@available_columns = [
+    QueryColumn.new(:project, :sortable => "#{Project.table_name}.name"),
     QueryColumn.new(:tracker, :sortable => "#{Tracker.table_name}.position"),
     QueryColumn.new(:status, :sortable => "#{IssueStatus.table_name}.position"),
     QueryColumn.new(:priority, :sortable => "#{Enumeration.table_name}.position", :default_order => 'desc'),
@@ -236,7 +237,10 @@ class Query < ActiveRecord::Base
   
   def columns
     if has_default_columns?
-      available_columns.select {|c| Setting.issue_list_default_columns.include?(c.name.to_s) }
+      available_columns.select do |c|
+        # Adds the project column by default for cross-project lists
+        Setting.issue_list_default_columns.include?(c.name.to_s) || (c.name == :project && project.nil?)
+      end
     else
       # preserve the column_names order
       column_names.collect {|name| available_columns.find {|col| col.name == name}}.compact
index 6748f078f2cf4aa4350925777f9d6bab44da7310..f9ee2d767b976545944c6a84ba681524048d8bcd 100644 (file)
@@ -58,6 +58,8 @@ class IssuesControllerTest < Test::Unit::TestCase
   end
 
   def test_index
+    Setting.default_language = 'en'
+    
     get :index
     assert_response :success
     assert_template 'index.rhtml'
@@ -68,6 +70,8 @@ class IssuesControllerTest < Test::Unit::TestCase
     # private projects hidden
     assert_no_tag :tag => 'a', :content => /Issue of a private subproject/
     assert_no_tag :tag => 'a', :content => /Issue on project 2/
+    # project column
+    assert_tag :tag => 'th', :content => /Project/
   end
   
   def test_index_should_not_list_issues_when_module_disabled