From af2f9e0a3e1f78b257ae5b1a0a84cc7b09e469fb Mon Sep 17 00:00:00 2001
From: wolfc01
Date: Mon, 5 Apr 2021 17:58:49 +0200
Subject: [PATCH] added zero minor version allowance for approval workflows
---
app/models/dmsf_file.rb | 8 ++++++++
.../dmsf_context_menus/_approval_workflow.html.erb | 2 +-
app/views/settings/_dmsf_settings.html.erb | 10 ++++++++++
config/locales/en.yml | 3 ++-
4 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/app/models/dmsf_file.rb b/app/models/dmsf_file.rb
index a38533f4..ac623933 100644
--- a/app/models/dmsf_file.rb
+++ b/app/models/dmsf_file.rb
@@ -110,6 +110,14 @@ class DmsfFile < ActiveRecord::Base
visible.find_by project_id: project_id, dmsf_folder_id: folder&.id, name: name
end
+ def approval_allowed_zero_minor
+ if Setting.plugin_redmine_dmsf['only_approval_zero_minor_version']
+ return last_revision.minor_version == 0
+ else
+ return true
+ end
+ end
+
def last_revision
unless defined?(@last_revision)
@last_revision = deleted? ? dmsf_file_revisions.first : dmsf_file_revisions.visible.first
diff --git a/app/views/dmsf_context_menus/_approval_workflow.html.erb b/app/views/dmsf_context_menus/_approval_workflow.html.erb
index c3889e8b..5d743d77 100644
--- a/app/views/dmsf_context_menus/_approval_workflow.html.erb
+++ b/app/views/dmsf_context_menus/_approval_workflow.html.erb
@@ -22,7 +22,7 @@
<% workflows_available = DmsfWorkflow.where(['project_id = ? OR project_id IS NULL', project.id]).exists? %>
<% wf = DmsfWorkflow.find_by(id: dmsf_file.last_revision.dmsf_workflow_id) if dmsf_file.last_revision.dmsf_workflow_id %>
-<% file_approval_allowed = User.current.allowed_to?(:file_approval, project) %>
+<% file_approval_allowed = User.current.allowed_to?(:file_approval, project) && (dmsf_file.approval_allowed_zero_minor)%>
<% allowed = User.current && (dmsf_file.last_revision.dmsf_workflow_assigned_by_user == User.current) && wf %>
<% if file_approval_allowed %>
diff --git a/app/views/settings/_dmsf_settings.html.erb b/app/views/settings/_dmsf_settings.html.erb
index 8dedab1b..90f619ee 100644
--- a/app/views/settings/_dmsf_settings.html.erb
+++ b/app/views/settings/_dmsf_settings.html.erb
@@ -200,6 +200,14 @@
+
+ <%= content_tag(:label, l(:only_approval_zero_minor_version)) %>
+ <%= check_box_tag 'settings[only_approval_zero_minor_version]', false, @settings['only_approval_zero_minor_version'], size: 50 %>
+
+ <%= l(:only_approval_zero_minor_version) %>
<%= l(:label_default) %>: <%= l(:general_text_No)%>
+
+
+
<%= l(:label_webdav) %>
@@ -315,3 +323,5 @@
<%= l(:text_enable_cjk_ngrams) %>
+
+
diff --git a/config/locales/en.yml b/config/locales/en.yml
index dc324a7c..04dc3f84 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -421,4 +421,5 @@ en:
activerecord:
errors:
messages:
- error_contains_invalid_character: contains invalid character(s)
\ No newline at end of file
+ error_contains_invalid_character: contains invalid character(s)
+ only_approval_zero_minor_version: only approval zero minor version
\ No newline at end of file