Wrong version when uploading a document via WebDAV #1385
This commit is contained in:
parent
59e8dee78b
commit
e9a2bb000b
@ -554,6 +554,15 @@ module RedmineDmsf
|
|||||||
new_revision.custom_field_values[i].value = custom_value
|
new_revision.custom_field_values[i].value = custom_value
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
unless reuse_revision
|
||||||
|
if new_revision.patch_version && (new_revision.patch_version != -32)
|
||||||
|
new_revision.increase_version(DmsfFileRevision::PATCH_VERSION)
|
||||||
|
elsif new_revision.minor_version && (new_revision.minor_version != -32)
|
||||||
|
new_revision.increase_version(DmsfFileRevision::MINOR_VERSION)
|
||||||
|
else
|
||||||
|
new_revision.increase_version(DmsfFileRevision::MAJOR_VERSION)
|
||||||
|
end
|
||||||
|
end
|
||||||
else
|
else
|
||||||
f = DmsfFile.new
|
f = DmsfFile.new
|
||||||
f.project_id = project.id
|
f.project_id = project.id
|
||||||
@ -561,7 +570,7 @@ module RedmineDmsf
|
|||||||
f.dmsf_folder = parent.folder
|
f.dmsf_folder = parent.folder
|
||||||
f.notification = !Setting.plugin_redmine_dmsf['dmsf_default_notifications'].blank?
|
f.notification = !Setting.plugin_redmine_dmsf['dmsf_default_notifications'].blank?
|
||||||
new_revision = DmsfFileRevision.new
|
new_revision = DmsfFileRevision.new
|
||||||
new_revision.minor_version = 0
|
new_revision.minor_version = 1
|
||||||
new_revision.major_version = 0
|
new_revision.major_version = 0
|
||||||
new_revision.title = DmsfFileRevision.filename_to_title(basename)
|
new_revision.title = DmsfFileRevision.filename_to_title(basename)
|
||||||
end
|
end
|
||||||
@ -569,7 +578,6 @@ module RedmineDmsf
|
|||||||
new_revision.dmsf_file = f
|
new_revision.dmsf_file = f
|
||||||
new_revision.user = User.current
|
new_revision.user = User.current
|
||||||
new_revision.name = basename
|
new_revision.name = basename
|
||||||
new_revision.increase_version(DmsfFileRevision::PATCH_VERSION) unless reuse_revision
|
|
||||||
new_revision.mime_type = Redmine::MimeType.of(new_revision.name)
|
new_revision.mime_type = Redmine::MimeType.of(new_revision.name)
|
||||||
|
|
||||||
# Phusion passenger does not have a method "length" in its model
|
# Phusion passenger does not have a method "length" in its model
|
||||||
|
|||||||
@ -345,9 +345,17 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest
|
|||||||
headers: @jsmith.merge!({ content_type: :text })
|
headers: @jsmith.merge!({ content_type: :text })
|
||||||
assert_response :created
|
assert_response :created
|
||||||
end
|
end
|
||||||
@file1.last_revision.reload
|
|
||||||
sha = Digest::SHA256.file(@file1.last_revision.disk_file)
|
sha = Digest::SHA256.file(@file1.last_revision.disk_file)
|
||||||
assert_equal sha, @file1.last_revision.digest
|
assert_equal sha, @file1.last_revision.digest
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_put_version
|
||||||
|
assert_difference '@file1.dmsf_file_revisions.count', +1 do
|
||||||
|
put "/dmsf/webdav/#{@project1.identifier}/#{@file1.name}", params: '1234',
|
||||||
|
headers: @jsmith.merge!({ content_type: :text })
|
||||||
|
assert_response :created
|
||||||
|
end
|
||||||
|
assert_equal '1.1', @file1.last_revision.version
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
Loading…
x
Reference in New Issue
Block a user