diff --git a/lib/redmine_dmsf/webdav/dmsf_resource.rb b/lib/redmine_dmsf/webdav/dmsf_resource.rb index 580d02b8..fe824603 100644 --- a/lib/redmine_dmsf/webdav/dmsf_resource.rb +++ b/lib/redmine_dmsf/webdav/dmsf_resource.rb @@ -554,6 +554,15 @@ module RedmineDmsf new_revision.custom_field_values[i].value = custom_value 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 f = DmsfFile.new f.project_id = project.id @@ -561,7 +570,7 @@ module RedmineDmsf f.dmsf_folder = parent.folder f.notification = !Setting.plugin_redmine_dmsf['dmsf_default_notifications'].blank? new_revision = DmsfFileRevision.new - new_revision.minor_version = 0 + new_revision.minor_version = 1 new_revision.major_version = 0 new_revision.title = DmsfFileRevision.filename_to_title(basename) end @@ -569,7 +578,6 @@ module RedmineDmsf new_revision.dmsf_file = f new_revision.user = User.current new_revision.name = basename - new_revision.increase_version(DmsfFileRevision::PATCH_VERSION) unless reuse_revision new_revision.mime_type = Redmine::MimeType.of(new_revision.name) # Phusion passenger does not have a method "length" in its model diff --git a/test/integration/webdav/dmsf_webdav_put_test.rb b/test/integration/webdav/dmsf_webdav_put_test.rb index 78ec97ff..547454a2 100644 --- a/test/integration/webdav/dmsf_webdav_put_test.rb +++ b/test/integration/webdav/dmsf_webdav_put_test.rb @@ -345,9 +345,17 @@ class DmsfWebdavPutTest < RedmineDmsf::Test::IntegrationTest headers: @jsmith.merge!({ content_type: :text }) assert_response :created end - @file1.last_revision.reload sha = Digest::SHA256.file(@file1.last_revision.disk_file) assert_equal sha, @file1.last_revision.digest 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 \ No newline at end of file