Refactor: use an ordered hash to store available filters and remove :order option (#13154).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11372 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -35,13 +35,8 @@ class TimeEntryQuery < Query
|
||||
add_filter('spent_on', '*') unless filters.present?
|
||||
end
|
||||
|
||||
def available_filters
|
||||
return @available_filters if @available_filters
|
||||
@available_filters = {
|
||||
"spent_on" => { :type => :date_past, :order => 0 },
|
||||
"comments" => { :type => :text, :order => 5 },
|
||||
"hours" => { :type => :float, :order => 6 }
|
||||
}
|
||||
def initialize_available_filters
|
||||
add_available_filter "spent_on", :type => :date_past
|
||||
|
||||
principals = []
|
||||
if project
|
||||
@@ -49,10 +44,9 @@ class TimeEntryQuery < Query
|
||||
unless project.leaf?
|
||||
subprojects = project.descendants.visible.all
|
||||
if subprojects.any?
|
||||
@available_filters["subproject_id"] = {
|
||||
:type => :list_subprojects, :order => 1,
|
||||
add_available_filter "subproject_id",
|
||||
:type => :list_subprojects,
|
||||
:values => subprojects.collect{|s| [s.name, s.id.to_s] }
|
||||
}
|
||||
principals += Principal.member_of(subprojects)
|
||||
end
|
||||
end
|
||||
@@ -66,9 +60,9 @@ class TimeEntryQuery < Query
|
||||
project_values << ["<< #{l(:label_my_projects).downcase} >>", "mine"]
|
||||
end
|
||||
project_values += all_projects_values
|
||||
@available_filters["project_id"] = {
|
||||
:type => :list, :order => 1, :values => project_values
|
||||
} unless project_values.empty?
|
||||
add_available_filter("project_id",
|
||||
:type => :list, :values => project_values
|
||||
) unless project_values.empty?
|
||||
end
|
||||
end
|
||||
principals.uniq!
|
||||
@@ -78,22 +72,20 @@ class TimeEntryQuery < Query
|
||||
users_values = []
|
||||
users_values << ["<< #{l(:label_me)} >>", "me"] if User.current.logged?
|
||||
users_values += users.collect{|s| [s.name, s.id.to_s] }
|
||||
@available_filters["user_id"] = {
|
||||
:type => :list_optional, :order => 2, :values => users_values
|
||||
} unless users_values.empty?
|
||||
add_available_filter("user_id",
|
||||
:type => :list_optional, :values => users_values
|
||||
) unless users_values.empty?
|
||||
|
||||
activities = (project ? project.activities : TimeEntryActivity.shared.active)
|
||||
@available_filters["activity_id"] = {
|
||||
:type => :list, :order => 3, :values => activities.map {|a| [a.name, a.id.to_s]}
|
||||
} unless activities.empty?
|
||||
add_available_filter("activity_id",
|
||||
:type => :list, :values => activities.map {|a| [a.name, a.id.to_s]}
|
||||
) unless activities.empty?
|
||||
|
||||
add_available_filter "comments", :type => :text
|
||||
add_available_filter "hours", :type => :float
|
||||
|
||||
add_custom_fields_filters(TimeEntryCustomField.where(:is_filter => true).all)
|
||||
add_associations_custom_fields_filters :project, :issue, :user
|
||||
|
||||
@available_filters.each do |field, options|
|
||||
options[:name] ||= l(options[:label] || "field_#{field}".gsub(/_id$/, ''))
|
||||
end
|
||||
@available_filters
|
||||
end
|
||||
|
||||
def available_columns
|
||||
|
||||
Reference in New Issue
Block a user