]> source.dussan.org Git - redmine.git/commitdiff
Adds scopes for retrieving the appropriate queries (#14790).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Tue, 12 Jul 2016 17:45:39 +0000 (17:45 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Tue, 12 Jul 2016 17:45:39 +0000 (17:45 +0000)
git-svn-id: http://svn.redmine.org/redmine/trunk@15641 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/helpers/queries_helper.rb
app/models/query.rb

index 76d42bae554ced2966915ad9176f084bff87dbfd..52da20e84a965cb0aefed7b9ced41c415b684a00 100644 (file)
@@ -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)
index 0a7546cf2297b84754a531a7d1dc0ff2d76f9258..22f1fd8989f8ec227351916cd1faebc47dfd6ced 100644 (file)
@@ -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.