summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Davis <edavis@littlestreamsoftware.com>2010-04-19 15:08:28 +0000
committerEric Davis <edavis@littlestreamsoftware.com>2010-04-19 15:08:28 +0000
commitbf33b57aa40377cdcf9826fbb4c0b67d92165cba (patch)
treef3320e5c2d903bb9a10271b7d22067232d03663e
parent0004b526464fc65922497e95c0edf59f277e7a17 (diff)
downloadredmine-bf33b57aa40377cdcf9826fbb4c0b67d92165cba.tar.gz
redmine-bf33b57aa40377cdcf9826fbb4c0b67d92165cba.zip
Refactor: Move method to Query model
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3684 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/controllers/queries_controller.rb8
-rw-r--r--app/models/query.rb7
2 files changed, 9 insertions, 6 deletions
diff --git a/app/controllers/queries_controller.rb b/app/controllers/queries_controller.rb
index 599060e69..0b798636c 100644
--- a/app/controllers/queries_controller.rb
+++ b/app/controllers/queries_controller.rb
@@ -27,9 +27,7 @@ class QueriesController < ApplicationController
@query.is_public = false unless User.current.allowed_to?(:manage_public_queries, @project) || User.current.admin?
@query.column_names = nil if params[:default_columns]
- params[:fields].each do |field|
- @query.add_filter(field, params[:operators][field], params[:values][field])
- end if params[:fields]
+ @query.add_filters(params[:fields], params[:operators], params[:values]) if params[:fields]
@query.group_by ||= params[:group_by]
if request.post? && params[:confirm] && @query.save
@@ -43,9 +41,7 @@ class QueriesController < ApplicationController
def edit
if request.post?
@query.filters = {}
- params[:fields].each do |field|
- @query.add_filter(field, params[:operators][field], params[:values][field])
- end if params[:fields]
+ @query.add_filters(params[:fields], params[:operators], params[:values]) if params[:fields]
@query.attributes = params[:query]
@query.project = nil if params[:query_is_for_all]
@query.is_public = false unless User.current.allowed_to?(:manage_public_queries, @project) || User.current.admin?
diff --git a/app/models/query.rb b/app/models/query.rb
index 1ecf8dcea..20f6ea671 100644
--- a/app/models/query.rb
+++ b/app/models/query.rb
@@ -243,6 +243,13 @@ class Query < ActiveRecord::Base
parms = expression.scan(/^(o|c|!\*|!|\*)?(.*)$/).first
add_filter field, (parms[0] || "="), [parms[1] || ""]
end
+
+ # Add multiple filters using +add_filter+
+ def add_filters(fields, operators, values)
+ fields.each do |field|
+ add_filter(field, operators[field], values[field])
+ end
+ end
def has_filter?(field)
filters and filters[field]