Merge commit '36fa608cc1a8096147b7b21bd597769facc7a202' into webdav
This commit is contained in:
commit
1e3e644da0
@ -90,9 +90,9 @@ class DmsfFile < ActiveRecord::Base
|
|||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
if Setting.plugin_redmine_dmsf["dmsf_really_delete_files"]
|
if Setting.plugin_redmine_dmsf["dmsf_really_delete_files"]
|
||||||
CustomValue.find(:all, :conditions => "customized_id = " + self.id.to_s).each do |v|
|
CustomValue.find(:all, :conditions => "customized_id = " + self.id.to_s).each do |v|
|
||||||
v.destroy
|
v.destroy
|
||||||
end
|
end
|
||||||
self.revisions.each {|r| r.delete(true)}
|
self.revisions.each {|r| r.delete(true)}
|
||||||
self.destroy
|
self.destroy
|
||||||
else
|
else
|
||||||
@ -189,21 +189,21 @@ class DmsfFile < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
projects
|
projects
|
||||||
end
|
end
|
||||||
|
|
||||||
# Overrides Redmine::Acts::Customizable::InstanceMethods#available_custom_fields
|
# Overrides Redmine::Acts::Customizable::InstanceMethods#available_custom_fields
|
||||||
def available_custom_fields
|
def available_custom_fields
|
||||||
search_project = nil
|
search_project = nil
|
||||||
if self.project.present?
|
if self.project.present?
|
||||||
search_project = self.project
|
search_project = self.project
|
||||||
elsif self.project_id.present?
|
elsif self.project_id.present?
|
||||||
search_project = Project.find(self.project_id)
|
search_project = Project.find(self.project_id)
|
||||||
end
|
end
|
||||||
if search_project
|
if search_project
|
||||||
search_project.all_dmsf_custom_fields
|
search_project.all_dmsf_custom_fields
|
||||||
else
|
else
|
||||||
DmsfFileRevisionCustomField.all
|
DmsfFileRevisionCustomField.all
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def move_to(project, folder)
|
def move_to(project, folder)
|
||||||
if self.locked_for_user?
|
if self.locked_for_user?
|
||||||
@ -215,19 +215,19 @@ class DmsfFile < ActiveRecord::Base
|
|||||||
|
|
||||||
new_revision.folder = folder ? folder : nil
|
new_revision.folder = folder ? folder : nil
|
||||||
new_revision.project = folder ? folder.project : project
|
new_revision.project = folder ? folder.project : project
|
||||||
new_revision.comment = l(:comment_moved_from, :source => "#{self.project.identifier}:#{self.dmsf_path_str}")
|
new_revision.comment = l(:comment_moved_from, :source => "#{self.project.identifier}:#{self.dmsf_path_str}")
|
||||||
|
|
||||||
new_revision.custom_values = []
|
new_revision.custom_values = []
|
||||||
temp_custom_values = self.last_revision.custom_values.select{|cv| new_revision.project.all_dmsf_custom_fields.include?(cv.custom_field)}.map(&:clone)
|
temp_custom_values = self.last_revision.custom_values.select{|cv| new_revision.project.all_dmsf_custom_fields.include?(cv.custom_field)}.map(&:clone)
|
||||||
new_revision.custom_values = temp_custom_values
|
new_revision.custom_values = temp_custom_values
|
||||||
|
|
||||||
#add default value for CFs not existing
|
#add default value for CFs not existing
|
||||||
present_custom_fields = new_revision.custom_values.collect(&:custom_field).uniq
|
present_custom_fields = new_revision.custom_values.collect(&:custom_field).uniq
|
||||||
Project.find(new_revision.project_id).all_dmsf_custom_fields.each do |cf|
|
Project.find(new_revision.project_id).all_dmsf_custom_fields.each do |cf|
|
||||||
unless present_custom_fields.include?(cf)
|
unless present_custom_fields.include?(cf)
|
||||||
new_revision.custom_values << CustomValue.new({:custom_field => cf, :value => cf.default_value})
|
new_revision.custom_values << CustomValue.new({:custom_field => cf, :value => cf.default_value})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
self.folder = new_revision.folder
|
self.folder = new_revision.folder
|
||||||
self.project = new_revision.project
|
self.project = new_revision.project
|
||||||
@ -242,29 +242,29 @@ class DmsfFile < ActiveRecord::Base
|
|||||||
file.name = self.name
|
file.name = self.name
|
||||||
file.notification = !Setting.plugin_redmine_dmsf["dmsf_default_notifications"].blank?
|
file.notification = !Setting.plugin_redmine_dmsf["dmsf_default_notifications"].blank?
|
||||||
|
|
||||||
if file.save
|
if file.save
|
||||||
new_revision = self.last_revision.clone
|
new_revision = self.last_revision.clone
|
||||||
|
|
||||||
new_revision.file = file
|
new_revision.file = file
|
||||||
new_revision.folder = folder ? folder : nil
|
new_revision.folder = folder ? folder : nil
|
||||||
new_revision.project = folder ? folder.project : project
|
new_revision.project = folder ? folder.project : project
|
||||||
new_revision.comment = l(:comment_copied_from, :source => "#{self.project.identifier}: #{self.dmsf_path_str}")
|
new_revision.comment = l(:comment_copied_from, :source => "#{self.project.identifier}: #{self.dmsf_path_str}")
|
||||||
|
|
||||||
new_revision.custom_values = []
|
new_revision.custom_values = []
|
||||||
temp_custom_values = self.last_revision.custom_values.select{|cv| new_revision.project.all_dmsf_custom_fields.include?(cv.custom_field)}.map(&:clone)
|
temp_custom_values = self.last_revision.custom_values.select{|cv| new_revision.project.all_dmsf_custom_fields.include?(cv.custom_field)}.map(&:clone)
|
||||||
new_revision.custom_values = temp_custom_values
|
new_revision.custom_values = temp_custom_values
|
||||||
|
|
||||||
#add default value for CFs not existing
|
#add default value for CFs not existing
|
||||||
present_custom_fields = new_revision.custom_values.collect(&:custom_field).uniq
|
present_custom_fields = new_revision.custom_values.collect(&:custom_field).uniq
|
||||||
new_revision.project.all_dmsf_custom_fields.each do |cf|
|
new_revision.project.all_dmsf_custom_fields.each do |cf|
|
||||||
unless present_custom_fields.include?(cf)
|
unless present_custom_fields.include?(cf)
|
||||||
new_revision.custom_values << CustomValue.new({:custom_field => cf, :value => cf.default_value})
|
new_revision.custom_values << CustomValue.new({:custom_field => cf, :value => cf.default_value})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
unless new_revision.save
|
unless new_revision.save
|
||||||
file.delete
|
file.delete
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
return file
|
return file
|
||||||
@ -350,8 +350,7 @@ class DmsfFile < ActiveRecord::Base
|
|||||||
next if dmsf_attrs[1].blank?
|
next if dmsf_attrs[1].blank?
|
||||||
next unless results.select{|f| f.id.to_s == dmsf_attrs[1]}.empty?
|
next unless results.select{|f| f.id.to_s == dmsf_attrs[1]}.empty?
|
||||||
|
|
||||||
find_conditions = DmsfFile.merge_conditions(limit_options[:conditions], :id => dmsf_attrs[1], :deleted => false )
|
dmsf_file = DmsfFile.where(limit_options[:conditions]).where(:id => dmsf_attrs[1], :deleted => false).first
|
||||||
dmsf_file = DmsfFile.find(:first, :conditions => find_conditions )
|
|
||||||
|
|
||||||
if !dmsf_file.nil?
|
if !dmsf_file.nil?
|
||||||
if options[:offset]
|
if options[:offset]
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user