|
|
@@ -1724,21 +1724,24 @@ class Issue < ActiveRecord::Base |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
# Update issues so their versions are not pointing to a |
|
|
|
# fixed_version that is not shared with the issue's project |
|
|
|
def self.update_versions(conditions=nil) |
|
|
|
# Only need to update issues with a fixed_version from |
|
|
|
# a different project and that is not systemwide shared |
|
|
|
Issue.joins(:project, :fixed_version). |
|
|
|
where("#{Issue.table_name}.fixed_version_id IS NOT NULL" + |
|
|
|
" AND #{Issue.table_name}.project_id <> #{Version.table_name}.project_id" + |
|
|
|
" AND #{Version.table_name}.sharing <> 'system'"). |
|
|
|
where(conditions).each do |issue| |
|
|
|
next if issue.project.nil? || issue.fixed_version.nil? |
|
|
|
unless issue.project.shared_versions.include?(issue.fixed_version) |
|
|
|
issue.init_journal(User.current) |
|
|
|
issue.fixed_version = nil |
|
|
|
issue.save |
|
|
|
# Singleton class method is public |
|
|
|
class << self |
|
|
|
# Update issues so their versions are not pointing to a |
|
|
|
# fixed_version that is not shared with the issue's project |
|
|
|
def update_versions(conditions=nil) |
|
|
|
# Only need to update issues with a fixed_version from |
|
|
|
# a different project and that is not systemwide shared |
|
|
|
Issue.joins(:project, :fixed_version). |
|
|
|
where("#{Issue.table_name}.fixed_version_id IS NOT NULL" + |
|
|
|
" AND #{Issue.table_name}.project_id <> #{Version.table_name}.project_id" + |
|
|
|
" AND #{Version.table_name}.sharing <> 'system'"). |
|
|
|
where(conditions).each do |issue| |
|
|
|
next if issue.project.nil? || issue.fixed_version.nil? |
|
|
|
unless issue.project.shared_versions.include?(issue.fixed_version) |
|
|
|
issue.init_journal(User.current) |
|
|
|
issue.fixed_version = nil |
|
|
|
issue.save |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
end |