mirror of
https://github.com/meineerde/redmine.git
synced 2025-12-24 01:11:12 +00:00
Get version ids with a single query (was n+1).
git-svn-id: http://svn.redmine.org/redmine/trunk@13694 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
22a9742216
commit
1059f9a99e
@ -334,12 +334,13 @@ class Project < ActiveRecord::Base
|
||||
def archive
|
||||
# Check that there is no issue of a non descendant project that is assigned
|
||||
# to one of the project or descendant versions
|
||||
v_ids = self_and_descendants.collect {|p| p.version_ids}.flatten
|
||||
if v_ids.any? &&
|
||||
version_ids = self_and_descendants.joins(:versions).pluck("#{Version.table_name}.id")
|
||||
|
||||
if version_ids.any? &&
|
||||
Issue.
|
||||
includes(:project).
|
||||
where("#{Project.table_name}.lft < ? OR #{Project.table_name}.rgt > ?", lft, rgt).
|
||||
where("#{Issue.table_name}.fixed_version_id IN (?)", v_ids).
|
||||
where(:fixed_version_id => version_ids).
|
||||
exists?
|
||||
return false
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user