summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2016-07-12 17:45:39 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2016-07-12 17:45:39 +0000
commit275bd514cd2197e1536fcee68459961ebf1e955f (patch)
tree2425ec0aeff2b86d9b49feee982f478deb8a6278 /app
parentb5d2ddedfa5eb0d11835bde7cd2e93d70bc43eda (diff)
downloadredmine-275bd514cd2197e1536fcee68459961ebf1e955f.tar.gz
redmine-275bd514cd2197e1536fcee68459961ebf1e955f.zip
Adds scopes for retrieving the appropriate queries (#14790).
git-svn-id: http://svn.redmine.org/redmine/trunk@15641 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app')
-rw-r--r--app/helpers/queries_helper.rb9
-rw-r--r--app/models/query.rb7
2 files changed, 8 insertions, 8 deletions
diff --git a/app/helpers/queries_helper.rb b/app/helpers/queries_helper.rb
index 76d42bae5..52da20e84 100644
--- a/app/helpers/queries_helper.rb
+++ b/app/helpers/queries_helper.rb
@@ -279,14 +279,7 @@ module QueriesHelper
end
def sidebar_queries
- unless @sidebar_queries
- @sidebar_queries = IssueQuery.visible.
- order("#{Query.table_name}.name ASC").
- # Project specific queries and global queries
- where(@project.nil? ? ["project_id IS NULL"] : ["project_id IS NULL OR project_id = ?", @project.id]).
- to_a
- end
- @sidebar_queries
+ @sidebar_queries ||= IssueQuery.visible.global_or_on_project(@project).sorted.to_a
end
def query_links(title, queries)
diff --git a/app/models/query.rb b/app/models/query.rb
index 0a7546cf2..22f1fd898 100644
--- a/app/models/query.rb
+++ b/app/models/query.rb
@@ -234,6 +234,13 @@ class Query < ActiveRecord::Base
# Permission required to view the queries, set on subclasses.
class_attribute :view_permission
+ # Scope of queries that are global or on the given project
+ scope :global_or_on_project, lambda {|project|
+ where(:project_id => (project.nil? ? nil : [nil, project.id]))
+ }
+
+ scope :sorted, lambda {order(:name, :id)}
+
# Scope of visible queries, can be used from subclasses only.
# Unlike other visible scopes, a class methods is used as it
# let handle inheritance more nicely than scope DSL.