From bf33b57aa40377cdcf9826fbb4c0b67d92165cba Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Mon, 19 Apr 2010 15:08:28 +0000 Subject: [PATCH] Refactor: Move method to Query model git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3684 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/controllers/queries_controller.rb | 8 ++------ 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 599060e6909..0b798636c71 100644 --- a/app/controllers/queries_controller.rb +++ b/app/controllers/queries_controller.rb @@ -27,9 +27,7 @@ def new @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 @@ def new 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 1ecf8dcea19..20f6ea67153 100644 --- a/app/models/query.rb +++ b/app/models/query.rb @@ -243,6 +243,13 @@ def add_short_filter(field, expression) 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]