]> source.dussan.org Git - redmine.git/commitdiff
Reduce extra database queries in IssueQuery.default (#7360, #36503).
authorGo MAEDA <maeda@farend.jp>
Sun, 23 Jan 2022 11:55:44 +0000 (11:55 +0000)
committerGo MAEDA <maeda@farend.jp>
Sun, 23 Jan 2022 11:55:44 +0000 (11:55 +0000)
git-svn-id: http://svn.redmine.org/redmine/trunk@21387 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/issue_query.rb

index e09a808d37c426ee669e4e0736abe159a9acde5c..5a3e14474d68767fb586b38a9aa7e24892d4879c 100644 (file)
@@ -79,11 +79,17 @@ class IssueQuery < Query
 
   def self.default(project: nil, user: User.current)
     query = nil
-    if user&.logged?
-      query = find_by_id user.pref.default_issue_query
+    # user default
+    if user&.logged? && (query_id = user.pref.default_issue_query)
+      query = find_by(id: query_id)
     end
+    # project default
     query ||= project&.default_issue_query
-    query || find_by_id(Setting.default_issue_query)
+    # global default
+    if query.nil? && (query_id = Setting.default_issue_query).present?
+      query = find_by(id: query_id)
+    end
+    query
   end
 
   def initialize(attributes=nil, *args)