Keep documents locked after the approval workflow is finished as an option #675
This commit is contained in:
parent
b5977343fa
commit
4dbf6cc487
@ -22,6 +22,8 @@ Changelog for Redmine DMSF
|
||||
Global title format for downloading
|
||||
New columns in the main DMSF view; columns are configurable from the plugin settings
|
||||
|
||||
* New: #675 - Keep documents locked after the approval workflow is finished as an option
|
||||
* Bug: #671 - Webdav: MOVE returns incorrect response
|
||||
* Bug: #663 - Locked documnts on My page
|
||||
* Bug: #662 - Broken paging on the Add approver form
|
||||
* New: #655 - ERROR: Couldn't find Project with identifier=desktop.ini
|
||||
|
||||
@ -55,7 +55,7 @@ class DmsfWorkflowsController < ApplicationController
|
||||
if @dmsf_workflow.try_finish revision, action, (params[:step_action].to_i / 10)
|
||||
if revision.dmsf_file
|
||||
begin
|
||||
revision.dmsf_file.unlock! true
|
||||
revision.dmsf_file.unlock!(true) unless Setting.plugin_redmine_dmsf['dmsf_keep_documents_locked'].present?
|
||||
rescue DmsfLockError => e
|
||||
flash[:info] = e.message
|
||||
end
|
||||
@ -205,6 +205,10 @@ class DmsfWorkflowsController < ApplicationController
|
||||
def log
|
||||
end
|
||||
|
||||
def edit
|
||||
redirect_to dmsf_workflow_path(@dmsf_workflow)
|
||||
end
|
||||
|
||||
def new
|
||||
@dmsf_workflow = DmsfWorkflow.new
|
||||
|
||||
|
||||
@ -61,7 +61,7 @@ module DmsfWorkflowsHelper
|
||||
if wf.project_id
|
||||
options << [wf.name, wf.id]
|
||||
else
|
||||
options << ["#{wf.name} (global)", wf.id]
|
||||
options << ["#{wf.name} #{l(:note_global)}", wf.id]
|
||||
end
|
||||
end
|
||||
options_for_select(options, :selected => dmsf_workflow_id)
|
||||
@ -83,7 +83,7 @@ module DmsfWorkflowsHelper
|
||||
end
|
||||
else
|
||||
# Global approval workflows
|
||||
options << [wf.name, wf.id]
|
||||
options << ["#{wf.name} #{l(:note_global)}", wf.id]
|
||||
end
|
||||
end
|
||||
options_for_select(options, :selected => dmsf_workflow_id)
|
||||
|
||||
@ -135,6 +135,20 @@
|
||||
|
||||
<%= render(:partial => 'settings/dmsf_columns', :locals => { :settings => @settings }) %>
|
||||
|
||||
<hr/>
|
||||
<em class="info">
|
||||
<%= l(:field_label_dmsf_workflow) %>
|
||||
</em>
|
||||
|
||||
<p>
|
||||
<%= content_tag(:label, l(:label_dmsf_keep_documents_locked)) %>
|
||||
<%= check_box_tag('settings[dmsf_keep_documents_locked]', false, @settings['dmsf_keep_documents_locked']) %>
|
||||
<em class="info">
|
||||
<%= l(:note_dmsf_keep_documents_locked) %><br/>
|
||||
<%= l(:label_default)%>: <%= l(:general_text_No)%>
|
||||
</em>
|
||||
</p>
|
||||
|
||||
<hr/>
|
||||
<em class="info">
|
||||
<%= l(:label_webdav) %>
|
||||
|
||||
@ -351,3 +351,7 @@ cs:
|
||||
|
||||
label_webdav_disable_versioning: No versioning files patterns
|
||||
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
||||
|
||||
label_dmsf_keep_documents_locked: Ponechat dokumenty zamčené
|
||||
note_dmsf_keep_documents_locked: Dokumenty zůstanou i po schválení zamčené.
|
||||
note_global: (globální)
|
||||
@ -348,3 +348,7 @@ de:
|
||||
|
||||
label_webdav_disable_versioning: No versioning files patterns
|
||||
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
||||
|
||||
label_dmsf_keep_documents_locked: Keep documents locked
|
||||
note_dmsf_keep_documents_locked: Documents will be kept locked when approved
|
||||
note_global: (global)
|
||||
@ -351,3 +351,7 @@ en:
|
||||
|
||||
label_webdav_disable_versioning: No versioning files patterns
|
||||
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
||||
|
||||
label_dmsf_keep_documents_locked: Keep documents locked
|
||||
note_dmsf_keep_documents_locked: Documents will be kept locked when approved
|
||||
note_global: (global)
|
||||
@ -351,3 +351,7 @@ es:
|
||||
|
||||
label_webdav_disable_versioning: No versioning files patterns
|
||||
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
||||
|
||||
label_dmsf_keep_documents_locked: Keep documents locked
|
||||
note_dmsf_keep_documents_locked: Documents will be kept locked when approved
|
||||
note_global: (global)
|
||||
@ -351,3 +351,7 @@ fr:
|
||||
|
||||
label_webdav_disable_versioning: No versioning files patterns
|
||||
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
||||
|
||||
label_dmsf_keep_documents_locked: Keep documents locked
|
||||
note_dmsf_keep_documents_locked: Documents will be kept locked when approved
|
||||
note_global: (global)
|
||||
@ -351,3 +351,7 @@ it: # Italian strings thx 2 Matteo Arceci!
|
||||
|
||||
label_webdav_disable_versioning: No versioning files patterns
|
||||
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
||||
|
||||
label_dmsf_keep_documents_locked: Keep documents locked
|
||||
note_dmsf_keep_documents_locked: Documents will be kept locked when approved
|
||||
note_global: (global)
|
||||
@ -351,3 +351,7 @@ ja:
|
||||
|
||||
label_webdav_disable_versioning: No versioning files patterns
|
||||
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
||||
|
||||
label_dmsf_keep_documents_locked: Keep documents locked
|
||||
note_dmsf_keep_documents_locked: Documents will be kept locked when approved
|
||||
note_global: (global)
|
||||
@ -351,3 +351,7 @@ pl:
|
||||
|
||||
label_webdav_disable_versioning: No versioning files patterns
|
||||
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
||||
|
||||
label_dmsf_keep_documents_locked: Keep documents locked
|
||||
note_dmsf_keep_documents_locked: Documents will be kept locked when approved
|
||||
note_global: (global)
|
||||
@ -351,3 +351,7 @@ pt-BR:
|
||||
|
||||
label_webdav_disable_versioning: No versioning files patterns
|
||||
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
||||
|
||||
label_dmsf_keep_documents_locked: Keep documents locked
|
||||
note_dmsf_keep_documents_locked: Documents will be kept locked when approved
|
||||
note_global: (global)
|
||||
@ -351,3 +351,7 @@ ru:
|
||||
|
||||
label_webdav_disable_versioning: No versioning files patterns
|
||||
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
||||
|
||||
label_dmsf_keep_documents_locked: Keep documents locked
|
||||
note_dmsf_keep_documents_locked: Documents will be kept locked when approved
|
||||
note_global: (global)
|
||||
@ -351,3 +351,7 @@ sl:
|
||||
|
||||
label_webdav_disable_versioning: No versioning files patterns
|
||||
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
||||
|
||||
label_dmsf_keep_documents_locked: Keep documents locked
|
||||
note_dmsf_keep_documents_locked: Documents will be kept locked when approved
|
||||
note_global: (global)
|
||||
@ -351,3 +351,7 @@ zh-TW:
|
||||
|
||||
label_webdav_disable_versioning: No versioning files patterns
|
||||
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
||||
|
||||
label_dmsf_keep_documents_locked: Keep documents locked
|
||||
note_dmsf_keep_documents_locked: Documents will be kept locked when approved
|
||||
note_global: (global)
|
||||
@ -351,3 +351,7 @@ zh:
|
||||
|
||||
label_webdav_disable_versioning: No versioning files patterns
|
||||
note_webdav_disable_versioning: A regular expression that disables versioning for matching files. The default pattern matches temporary files created by MsOffice.
|
||||
|
||||
label_dmsf_keep_documents_locked: Keep documents locked
|
||||
note_dmsf_keep_documents_locked: Documents will be kept locked when approved
|
||||
note_global: (global)
|
||||
Binary file not shown.
5
init.rb
5
init.rb
@ -50,7 +50,8 @@ Redmine::Plugin.register :redmine_dmsf do
|
||||
'dmsf_columns' => %w(title size modified version workflow author),
|
||||
'dmsf_memcached_servers' => '',
|
||||
'dmsf_webdav_ignore' => '^(\._|\.DS_Store$|Thumbs.db$)',
|
||||
'dmsf_webdav_disable_versioning' => '^\~\$|\.tmp$'
|
||||
'dmsf_webdav_disable_versioning' => '^\~\$|\.tmp$',
|
||||
'dmsf_keep_documents_locked' => false
|
||||
}
|
||||
|
||||
menu :project_menu, :dmsf, { :controller => 'dmsf', :action => 'show' }, :caption => :menu_dmsf, :before => :documents, :param => :id
|
||||
@ -95,7 +96,7 @@ Redmine::Plugin.register :redmine_dmsf do
|
||||
{:dmsf_workflows => [:action, :new_action, :autocomplete_for_user, :start, :assign, :assignment]}
|
||||
permission :manage_workflows,
|
||||
{:dmsf_workflows => [:index, :new, :create, :destroy, :show, :new_step, :add_step, :remove_step, :reorder_steps,
|
||||
:update, :update_step, :delete_step]}
|
||||
:update, :update_step, :delete_step, :edit]}
|
||||
end
|
||||
|
||||
# Administration menu extension
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
#/bin/bash
|
||||
#!/bin/bash
|
||||
#
|
||||
# This script is almost entirely built on the build script from redmine_backlogs
|
||||
# Please see: https://github.com/backlogs/redmine_backlogs
|
||||
|
||||
@ -279,19 +279,16 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase
|
||||
end
|
||||
|
||||
def test_action_approve
|
||||
post(
|
||||
:new_action,
|
||||
:commit => l(:button_submit),
|
||||
:id => @wf1.id,
|
||||
:dmsf_workflow_step_assignment_id => @wfsa2.id,
|
||||
:dmsf_file_revision_id => @revision1.id,
|
||||
:step_action => DmsfWorkflowStepAction::ACTION_APPROVE,
|
||||
:user_id => nil,
|
||||
:note => '')
|
||||
assert_redirected_to dmsf_folder_path(:id => @project1.id)
|
||||
assert DmsfWorkflowStepAction.where(
|
||||
:dmsf_workflow_step_assignment_id => @wfsa2.id,
|
||||
:action => DmsfWorkflowStepAction::ACTION_APPROVE).first
|
||||
approve
|
||||
assert !@revision1.dmsf_file.locked_for_user?
|
||||
end
|
||||
|
||||
def test_action_approve
|
||||
Setting.plugin_redmine_dmsf['dmsf_keep_documents_locked'] = '1'
|
||||
approve
|
||||
if Setting.plugin_redmine_dmsf['dmsf_keep_documents_locked'] == '1'
|
||||
assert @revision1.dmsf_file.locked_for_user?
|
||||
end
|
||||
end
|
||||
|
||||
def test_action_reject
|
||||
@ -397,4 +394,21 @@ class DmsfWorkflowsControllerTest < RedmineDmsf::Test::TestCase
|
||||
assert_response :redirect
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def approve
|
||||
post(
|
||||
:new_action,
|
||||
:commit => l(:button_submit),
|
||||
:id => @wf1.id,
|
||||
:dmsf_workflow_step_assignment_id => @wfsa2.id,
|
||||
:dmsf_file_revision_id => @revision1.id,
|
||||
:step_action => DmsfWorkflowStepAction::ACTION_APPROVE,
|
||||
:user_id => nil,
|
||||
:note => '')
|
||||
assert_redirected_to dmsf_folder_path(:id => @project1.id)
|
||||
assert DmsfWorkflowStepAction.where(
|
||||
:dmsf_workflow_step_assignment_id => @wfsa2.id,
|
||||
:action => DmsfWorkflowStepAction::ACTION_APPROVE).first
|
||||
end
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user