diff --git a/app/models/dmsf_file_revision.rb b/app/models/dmsf_file_revision.rb index 7002f454..46b31d45 100644 --- a/app/models/dmsf_file_revision.rb +++ b/app/models/dmsf_file_revision.rb @@ -265,6 +265,15 @@ class DmsfFileRevision < ApplicationRecord wf.assign(id) if wf && id end + def reset_workflow + self.workflow = nil + self.dmsf_workflow_id = nil + self.dmsf_workflow_assigned_by_user_id = nil + self.dmsf_workflow_assigned_at = nil + self.dmsf_workflow_started_by_user_id = nil + self.dmsf_workflow_started_at = nil + end + def increase_version(version_to_increase) # Patch version self.patch_version = case version_to_increase diff --git a/lib/redmine_dmsf/webdav/dmsf_resource.rb b/lib/redmine_dmsf/webdav/dmsf_resource.rb index ec01d7cd..406cc568 100644 --- a/lib/redmine_dmsf/webdav/dmsf_resource.rb +++ b/lib/redmine_dmsf/webdav/dmsf_resource.rb @@ -562,6 +562,7 @@ module RedmineDmsf else if last_revision new_revision = last_revision.dup + new_revision.reset_workflow new_revision.source_revision = last_revision else new_revision = DmsfFileRevision.new diff --git a/test/unit/dmsf_file_revision_test.rb b/test/unit/dmsf_file_revision_test.rb index b4963800..1ed4f03d 100644 --- a/test/unit/dmsf_file_revision_test.rb +++ b/test/unit/dmsf_file_revision_test.rb @@ -316,4 +316,27 @@ class DmsfFileRevisionTest < RedmineDmsf::Test::UnitTest assert h.is_a?(Hash) assert_nil h['90'] end + + def test_set_workflow + @revision2.set_workflow @wf1.id, 'assign' + assert_equal DmsfWorkflow::STATE_ASSIGNED, @revision2.workflow + assert_equal User.current, @revision2.dmsf_workflow_assigned_by_user + assert @revision2.dmsf_workflow_assigned_at + @revision2.set_workflow @wf1.id, 'start' + assert_equal DmsfWorkflow::STATE_WAITING_FOR_APPROVAL, @revision2.workflow + assert_equal User.current, @revision2.dmsf_workflow_started_by_user + assert @revision2.dmsf_workflow_started_at + end + + def test_reset_workflow + @revision2.set_workflow @wf1.id, 'assign' + @revision2.set_workflow @wf1.id, 'start' + @revision2.reset_workflow + assert_nil @revision2.workflow + assert_nil @revision2.dmsf_workflow_id + assert_nil @revision2.dmsf_workflow_assigned_by_user_id + assert_nil @revision2.dmsf_workflow_assigned_at + assert_nil @revision2.dmsf_workflow_started_by_user_id + assert_nil @revision2.dmsf_workflow_started_at + end end