Code cleanup.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11873 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2013-05-18 19:58:43 +00:00
parent 1093454193
commit ed364c9114
1 changed files with 16 additions and 13 deletions

View File

@ -451,26 +451,29 @@ class Project < ActiveRecord::Base
# Returns a scope of the Versions on subprojects # Returns a scope of the Versions on subprojects
def rolled_up_versions def rolled_up_versions
@rolled_up_versions ||= @rolled_up_versions ||=
Version.scoped(:include => :project, Version.
:conditions => ["#{Project.table_name}.lft >= ? AND #{Project.table_name}.rgt <= ? AND #{Project.table_name}.status <> #{STATUS_ARCHIVED}", lft, rgt]) includes(:project).
where("#{Project.table_name}.lft >= ? AND #{Project.table_name}.rgt <= ? AND #{Project.table_name}.status <> ?", lft, rgt, STATUS_ARCHIVED)
end end
# Returns a scope of the Versions used by the project # Returns a scope of the Versions used by the project
def shared_versions def shared_versions
if new_record? if new_record?
Version.scoped(:include => :project, Version.
:conditions => "#{Project.table_name}.status <> #{Project::STATUS_ARCHIVED} AND #{Version.table_name}.sharing = 'system'") includes(:project).
where("#{Project.table_name}.status <> ? AND #{Version.table_name}.sharing = 'system'", STATUS_ARCHIVED)
else else
@shared_versions ||= begin @shared_versions ||= begin
r = root? ? self : root r = root? ? self : root
Version.scoped(:include => :project, Version.
:conditions => "#{Project.table_name}.id = #{id}" + includes(:project).
" OR (#{Project.table_name}.status <> #{Project::STATUS_ARCHIVED} AND (" + where("#{Project.table_name}.id = #{id}" +
" #{Version.table_name}.sharing = 'system'" + " OR (#{Project.table_name}.status <> #{Project::STATUS_ARCHIVED} AND (" +
" OR (#{Project.table_name}.lft >= #{r.lft} AND #{Project.table_name}.rgt <= #{r.rgt} AND #{Version.table_name}.sharing = 'tree')" + " #{Version.table_name}.sharing = 'system'" +
" OR (#{Project.table_name}.lft < #{lft} AND #{Project.table_name}.rgt > #{rgt} AND #{Version.table_name}.sharing IN ('hierarchy', 'descendants'))" + " OR (#{Project.table_name}.lft >= #{r.lft} AND #{Project.table_name}.rgt <= #{r.rgt} AND #{Version.table_name}.sharing = 'tree')" +
" OR (#{Project.table_name}.lft > #{lft} AND #{Project.table_name}.rgt < #{rgt} AND #{Version.table_name}.sharing = 'hierarchy')" + " OR (#{Project.table_name}.lft < #{lft} AND #{Project.table_name}.rgt > #{rgt} AND #{Version.table_name}.sharing IN ('hierarchy', 'descendants'))" +
"))") " OR (#{Project.table_name}.lft > #{lft} AND #{Project.table_name}.rgt < #{rgt} AND #{Version.table_name}.sharing = 'hierarchy')" +
"))")
end end
end end
end end
@ -954,7 +957,7 @@ class Project < ActiveRecord::Base
def allowed_permissions def allowed_permissions
@allowed_permissions ||= begin @allowed_permissions ||= begin
module_names = enabled_modules.all(:select => :name).collect {|m| m.name} module_names = enabled_modules.pluck(:name)
Redmine::AccessControl.modules_permissions(module_names).collect {|p| p.name} Redmine::AccessControl.modules_permissions(module_names).collect {|p| p.name}
end end
end end