Merge pull request #612 from carlolars/restore_file_problem

Restore file problem
This commit is contained in:
Karel Picman 2016-11-25 08:58:44 +01:00 committed by GitHub
commit 62b7e04a15
2 changed files with 7 additions and 6 deletions

View File

@ -36,7 +36,7 @@ class DmsfFile < ActiveRecord::Base
belongs_to :dmsf_folder
belongs_to :deleted_by_user, :class_name => 'User', :foreign_key => 'deleted_by_user_id'
has_many :dmsf_file_revisions, -> { order("#{DmsfFileRevision.table_name}.major_version DESC, #{DmsfFileRevision.table_name}.minor_version DESC, #{DmsfFileRevision.table_name}.updated_at DESC") },
has_many :dmsf_file_revisions, -> { order("#{DmsfFileRevision.table_name}.id DESC") },
:dependent => :destroy
has_many :locks, -> { where(entity_type: 0).order("#{DmsfLock.table_name}.updated_at DESC") },
:class_name => 'DmsfLock', :foreign_key => 'entity_id', :dependent => :destroy

View File

@ -83,11 +83,7 @@ class DmsfFileRevision < ActiveRecord::Base
errors[:base] << l(:error_at_least_one_revision_must_be_present)
return false
end
dependent = DmsfFileRevision.where(:source_dmsf_file_revision_id => self.id).all
dependent.each do |d|
d.source_revision = self.source_revision
d.save!
end
if commit
self.destroy
else
@ -104,6 +100,11 @@ class DmsfFileRevision < ActiveRecord::Base
end
def destroy
dependent = DmsfFileRevision.where(:source_dmsf_file_revision_id => self.id).all
dependent.each do |d|
d.source_revision = self.source_revision
d.save!
end
if Setting.plugin_redmine_dmsf['dmsf_really_delete_files']
dependencies = DmsfFileRevision.where(:disk_filename => self.disk_filename).all.count
File.delete(self.disk_file) if dependencies <= 1 && File.exist?(self.disk_file)