Merge commit '36fa608cc1a8096147b7b21bd597769facc7a202' into webdav

This commit is contained in:
Daniel Munn 2012-06-12 17:19:23 +01:00
commit 1e3e644da0

View File

@ -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]