summaryrefslogtreecommitdiffstats
path: root/app/models/query.rb
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2012-07-05 12:20:07 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2012-07-05 12:20:07 +0000
commit4cecc1beeda2337f50090d9fc0fe1d54fb8d54e2 (patch)
treeae525d4ae044a57c48e01462eb76e34e485ed6e3 /app/models/query.rb
parent51a1bf90dda6bc22b29b3801fbb7139b891376e5 (diff)
downloadredmine-4cecc1beeda2337f50090d9fc0fe1d54fb8d54e2.tar.gz
redmine-4cecc1beeda2337f50090d9fc0fe1d54fb8d54e2.zip
Ability to disable standard fields on a per tracker basis (#1091).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9912 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/models/query.rb')
-rw-r--r--app/models/query.rb17
1 files changed, 15 insertions, 2 deletions
diff --git a/app/models/query.rb b/app/models/query.rb
index de5fa4c16..3f4173a1b 100644
--- a/app/models/query.rb
+++ b/app/models/query.rb
@@ -213,11 +213,13 @@ class Query < ActiveRecord::Base
is_public && !@is_for_all && user.allowed_to?(:manage_public_queries, project)
end
+ def trackers
+ @trackers ||= project.nil? ? Tracker.find(:all, :order => 'position') : project.rolled_up_trackers
+ end
+
def available_filters
return @available_filters if @available_filters
- trackers = project.nil? ? Tracker.find(:all, :order => 'position') : project.rolled_up_trackers
-
@available_filters = { "status_id" => { :type => :list_status, :order => 1, :values => IssueStatus.find(:all, :order => 'position').collect{|s| [s.name, s.id.to_s] } },
"tracker_id" => { :type => :list, :order => 2, :values => trackers.collect{|s| [s.name, s.id.to_s] } },
"priority_id" => { :type => :list, :order => 3, :values => IssuePriority.all.collect{|s| [s.name, s.id.to_s] } },
@@ -300,6 +302,11 @@ class Query < ActiveRecord::Base
end
add_custom_fields_filters(IssueCustomField.find(:all, :conditions => {:is_filter => true, :is_for_all => true}))
end
+
+ Tracker.disabled_core_fields(trackers).each {|field|
+ @available_filters.delete field
+ }
+
@available_filters
end
@@ -380,6 +387,12 @@ class Query < ActiveRecord::Base
:caption => :label_spent_time
)
end
+
+ disabled_fields = Tracker.disabled_core_fields(trackers).map {|field| field.sub(/_id$/, '')}
+ @available_columns.reject! {|column|
+ disabled_fields.include?(column.name.to_s)
+ }
+
@available_columns
end