Refactor: makes issue id a regular QueryColumn.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11447 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2013-02-23 10:53:21 +00:00
parent d1244b31a4
commit 9b1ebd6808
9 changed files with 48 additions and 27 deletions
+1 -4
View File
@@ -20,6 +20,7 @@ class IssueQuery < Query
self.queried_class = Issue
self.available_columns = [
QueryColumn.new(:id, :sortable => "#{Issue.table_name}.id", :default_order => 'desc', :caption => '#', :frozen => true),
QueryColumn.new(:project, :sortable => "#{Project.table_name}.name", :groupable => true),
QueryColumn.new(:tracker, :sortable => "#{Tracker.table_name}.position", :groupable => true),
QueryColumn.new(:parent, :sortable => ["#{Issue.table_name}.root_id", "#{Issue.table_name}.lft ASC"], :default_order => 'desc', :caption => :field_parent_issue),
@@ -216,10 +217,6 @@ class IssueQuery < Query
@available_columns
end
def sortable_columns
{'id' => "#{Issue.table_name}.id"}.merge(super)
end
def default_columns_names
@default_columns_names ||= begin
default_columns = Setting.issue_list_default_columns.map(&:to_sym)
+9 -3
View File
@@ -28,11 +28,12 @@ class QueryColumn
end
self.default_order = options[:default_order]
@inline = options.key?(:inline) ? options[:inline] : true
@caption_key = options[:caption] || "field_#{name}"
@caption_key = options[:caption] || "field_#{name}".to_sym
@frozen = options[:frozen]
end
def caption
l(@caption_key)
@caption_key.is_a?(Symbol) ? l(@caption_key) : @caption_key
end
# Returns true if the column is sortable, otherwise false
@@ -48,6 +49,10 @@ class QueryColumn
@inline
end
def frozen?
@frozen
end
def value(object)
object.send name
end
@@ -382,9 +387,10 @@ class Query < ActiveRecord::Base
def columns
# preserve the column_names order
(has_default_columns? ? default_columns_names : column_names).collect do |name|
cols = (has_default_columns? ? default_columns_names : column_names).collect do |name|
available_columns.find { |col| col.name == name }
end.compact
available_columns.select(&:frozen?) | cols
end
def inline_columns