This commit is contained in:
Karel Picman 2013-09-26 09:22:21 +02:00
parent 9381d8cc3a
commit a899d85ca4

View File

@ -214,7 +214,7 @@ class DmsfFile < ActiveRecord::Base
new_revision = self.last_revision.clone
new_revision.folder = folder ? folder : nil
new_revision.folder = folder
new_revision.project = folder ? folder.project : project
new_revision.comment = l(:comment_moved_from, :source => "#{self.project.identifier}:#{self.dmsf_path_str}")
@ -229,25 +229,32 @@ class DmsfFile < ActiveRecord::Base
new_revision.custom_values << CustomValue.new({:custom_field => cf, :value => cf.default_value})
end
end
# If the target project differs from the source project we must physically move the file
if self.project != new_revision.project
if File.exist? self.last_revision.disk_file
File.move self.last_revision.disk_file, new_revision.disk_file
end
end
self.folder = new_revision.folder
self.project = new_revision.project
return self.save && new_revision.save
self.save && new_revision.save
end
def copy_to(project, folder)
file = DmsfFile.new
file.folder = folder ? folder : nil
file.folder = folder
file.project = folder ? folder.project : project
file.name = self.name
file.notification = !Setting.plugin_redmine_dmsf["dmsf_default_notifications"].blank?
file.notification = Setting.plugin_redmine_dmsf['dmsf_default_notifications'].present?
if file.save
new_revision = self.last_revision.clone
new_revision.file = file
new_revision.folder = folder ? folder : nil
new_revision.folder = folder
new_revision.project = folder ? folder.project : project
new_revision.comment = l(:comment_copied_from, :source => "#{self.project.identifier}: #{self.dmsf_path_str}")
@ -265,6 +272,13 @@ class DmsfFile < ActiveRecord::Base
unless new_revision.save
file.delete
else
# If the target project differs from the source project we must physically copy the file
if project != self.project
if File.exist? self.last_revision.disk_file
File.copy self.last_revision.disk_file, new_revision.disk_file
end
end
end
end