From 6e6e260ceae699d44be8bccc66ec0566695091a0 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Fri, 19 Mar 2010 15:42:03 +0000 Subject: [PATCH] Refactor: Extract Query#sortable_columns from the controller. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3604 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/controllers/issues_controller.rb | 4 ++-- app/models/query.rb | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index 68d3c94f7..a598ac8f5 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -56,7 +56,7 @@ class IssuesController < ApplicationController def index retrieve_query sort_init(@query.sort_criteria.empty? ? [['id', 'desc']] : @query.sort_criteria) - sort_update({'id' => "#{Issue.table_name}.id"}.merge(@query.available_columns.inject({}) {|h, c| h[c.name.to_s] = c.sortable; h})) + sort_update(@query.sortable_columns) if @query.valid? limit = case params[:format] @@ -94,7 +94,7 @@ class IssuesController < ApplicationController def changes retrieve_query sort_init 'id', 'desc' - sort_update({'id' => "#{Issue.table_name}.id"}.merge(@query.available_columns.inject({}) {|h, c| h[c.name.to_s] = c.sortable; h})) + sort_update(@query.sortable_columns) if @query.valid? @journals = @query.journals(:order => "#{Journal.table_name}.created_on DESC", diff --git a/app/models/query.rb b/app/models/query.rb index b54d94237..c223654f1 100644 --- a/app/models/query.rb +++ b/app/models/query.rb @@ -270,6 +270,14 @@ class Query < ActiveRecord::Base def groupable_columns available_columns.select {|c| c.groupable} end + + # Returns a Hash of columns and the key for sorting + def sortable_columns + {'id' => "#{Issue.table_name}.id"}.merge(available_columns.inject({}) {|h, column| + h[column.name.to_s] = column.sortable + h + }) + end def columns if has_default_columns?