diff options
author | Eric Davis <edavis@littlestreamsoftware.com> | 2010-04-19 15:08:28 +0000 |
---|---|---|
committer | Eric Davis <edavis@littlestreamsoftware.com> | 2010-04-19 15:08:28 +0000 |
commit | bf33b57aa40377cdcf9826fbb4c0b67d92165cba (patch) | |
tree | f3320e5c2d903bb9a10271b7d22067232d03663e | |
parent | 0004b526464fc65922497e95c0edf59f277e7a17 (diff) | |
download | redmine-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.rb | 8 | ||||
-rw-r--r-- | app/models/query.rb | 7 |
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] |