diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2016-07-11 17:41:46 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2016-07-11 17:41:46 +0000 |
commit | 9fb339c4e21b65a01e98032b1d5f349428934b17 (patch) | |
tree | 019b184177ec9b2dcf6364dc9dde2ecbb45b8065 /app/controllers/queries_controller.rb | |
parent | 1b9ca7219bf1906b134aae11d650d9698ea79cb6 (diff) | |
download | redmine-9fb339c4e21b65a01e98032b1d5f349428934b17.tar.gz redmine-9fb339c4e21b65a01e98032b1d5f349428934b17.zip |
Makes QueriesController able to handle other Query subclasses.
git-svn-id: http://svn.redmine.org/redmine/trunk@15635 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/controllers/queries_controller.rb')
-rw-r--r-- | app/controllers/queries_controller.rb | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/app/controllers/queries_controller.rb b/app/controllers/queries_controller.rb index 9b14d44eb..961b75dcc 100644 --- a/app/controllers/queries_controller.rb +++ b/app/controllers/queries_controller.rb @@ -31,9 +31,10 @@ class QueriesController < ApplicationController else @limit = per_page_option end - @query_count = IssueQuery.visible.count + scope = query_class.visible + @query_count = scope.count @query_pages = Paginator.new @query_count, @limit, params['page'] - @queries = IssueQuery.visible. + @queries = scope. order("#{Query.table_name}.name"). limit(@limit). offset(@offset). @@ -45,14 +46,14 @@ class QueriesController < ApplicationController end def new - @query = IssueQuery.new + @query = query_class.new @query.user = User.current @query.project = @project @query.build_from_params(params) end def create - @query = IssueQuery.new + @query = query_class.new @query.user = User.current @query.project = @project update_query_from_params @@ -84,9 +85,10 @@ class QueriesController < ApplicationController redirect_to_issues(:set_filter => 1) end -private + private + def find_query - @query = IssueQuery.find(params[:id]) + @query = Query.find(params[:id]) @project = @query.project render_403 unless @query.editable_by?(User.current) rescue ActiveRecord::RecordNotFound @@ -107,10 +109,10 @@ private @query.sort_criteria = params[:query] && params[:query][:sort_criteria] @query.name = params[:query] && params[:query][:name] if User.current.allowed_to?(:manage_public_queries, @query.project) || User.current.admin? - @query.visibility = (params[:query] && params[:query][:visibility]) || IssueQuery::VISIBILITY_PRIVATE + @query.visibility = (params[:query] && params[:query][:visibility]) || Query::VISIBILITY_PRIVATE @query.role_ids = params[:query] && params[:query][:role_ids] else - @query.visibility = IssueQuery::VISIBILITY_PRIVATE + @query.visibility = Query::VISIBILITY_PRIVATE end @query end @@ -126,4 +128,10 @@ private redirect_to _project_issues_path(@project, options) end end + + # Returns the Query subclass, IssueQuery by default + # for compatibility with previous behaviour + def query_class + Query.get_subclass(params[:type] || 'IssueQuery') + end end |