From 5eb8a0c46295c56a9bd140884c29475c77a50984 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Pi=C4=8Dman?= Date: Fri, 28 Nov 2014 14:31:32 +0100 Subject: [PATCH] Approval workflow copying #326 --- app/models/dmsf_workflow.rb | 14 +++++++++++++- app/models/dmsf_workflow_step.rb | 9 ++++++++- .../redmine_dmsf/_view_projects_form.html.erb | 8 +++++--- config/locales/cs.yml | 1 + config/locales/de.yml | 1 + config/locales/en.yml | 3 ++- config/locales/es.yml | 1 + config/locales/fr.yml | 1 + config/locales/ja.yml | 1 + config/locales/ru.yml | 1 + config/locales/sl.yml | 1 + config/locales/zh-TW.yml | 1 + config/locales/zh.yml | 1 + lib/redmine_dmsf/hooks/view_projects_form_hook.rb | 4 ++-- lib/redmine_dmsf/patches/project_patch.rb | 10 ++++++++-- 15 files changed, 47 insertions(+), 10 deletions(-) diff --git a/app/models/dmsf_workflow.rb b/app/models/dmsf_workflow.rb index a9a3e7c9..52a4f4a4 100644 --- a/app/models/dmsf_workflow.rb +++ b/app/models/dmsf_workflow.rb @@ -202,5 +202,17 @@ class DmsfWorkflow < ActiveRecord::Base end end return false - end + end + + def copy_to(project) + new_wf = self.dup + new_wf.name = "#{self.name}_#{project.identifier}" + new_wf.project_id = project.id + if new_wf.save + self.dmsf_workflow_steps.each do |step| + step.copy_to(new_wf) + end + end + return new_wf + end end \ No newline at end of file diff --git a/app/models/dmsf_workflow_step.rb b/app/models/dmsf_workflow_step.rb index 45a7b43b..8b5908aa 100644 --- a/app/models/dmsf_workflow_step.rb +++ b/app/models/dmsf_workflow_step.rb @@ -1,6 +1,6 @@ # Redmine plugin for Document Management System "Features" # -# Copyright (C) 2013 Karel Picman +# Copyright (C) 2011-14 Karel Picman # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -56,4 +56,11 @@ class DmsfWorkflowStep < ActiveRecord::Base end end end + + def copy_to(workflow) + new_step = self.dup + new_step.dmsf_workflow_id = workflow.id + new_step.save + return new_step + end end \ No newline at end of file diff --git a/app/views/hooks/redmine_dmsf/_view_projects_form.html.erb b/app/views/hooks/redmine_dmsf/_view_projects_form.html.erb index c0b4b79b..f5112d14 100644 --- a/app/views/hooks/redmine_dmsf/_view_projects_form.html.erb +++ b/app/views/hooks/redmine_dmsf/_view_projects_form.html.erb @@ -1,7 +1,8 @@ <%# Redmine plugin for Document Management System "Features" # -# Copyright (C) 2011 Vít Jonáš -# Copyright (C) 2012 Daniel Munn +# Copyright (C) 2011 Vít Jonáš +# Copyright (C) 2012 Daniel Munn +# Copyright (C) 2011-14 Karel Pičman # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -19,6 +20,7 @@ <% if @project.new_record? && @source_project %>

- + +

<% end %> diff --git a/config/locales/cs.yml b/config/locales/cs.yml index 6c7f2446..74ee8236 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -224,6 +224,7 @@ cs: field_label_dmsf_workflow: Schvalovací proces field_label_dmsf_workflow_name: Approval workflow name label_dmsf_workflow_plural: Schvalovací procesy + label_dmsf_workflow_plural_num: Schvalovací procesy (%{count}) label_dmsf_workflow_step: Krok label_dmsf_workflow_step_plural: Kroky label_dmsf_workflow_approval: Schválení diff --git a/config/locales/de.yml b/config/locales/de.yml index 96f549bc..dead846f 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -224,6 +224,7 @@ de: field_label_dmsf_workflow: Genehmigungs-Workflow field_label_dmsf_workflow_name: Genehmigungs-Workflow Name label_dmsf_workflow_plural: Genehmigungs-Workflows + label_dmsf_workflow_plural_num: Genehmigungs-Workflows (%{count}) label_dmsf_workflow_step: Schritt label_dmsf_workflow_step_plural: Schritte label_dmsf_workflow_approval: Genehmigung diff --git a/config/locales/en.yml b/config/locales/en.yml index 452479d2..853b29cb 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -223,7 +223,8 @@ en: label_dmsf_workflow_new: New approval workflow field_label_dmsf_workflow: Approval Workflow field_label_dmsf_workflow_name: Approval workflow name - label_dmsf_workflow_plural: Approval workflows + label_dmsf_workflow_plural: Approval workflows + label_dmsf_workflow_plural_num: Approval workflows (%{count}) label_dmsf_workflow_step: Step label_dmsf_workflow_step_plural: Steps label_dmsf_workflow_approval: Approval diff --git a/config/locales/es.yml b/config/locales/es.yml index 3c19e2f4..d5cc819a 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -224,6 +224,7 @@ es: field_label_dmsf_workflow: Approval Workflow field_label_dmsf_workflow_name: Approval workflow name label_dmsf_workflow_plural: Approval workflows + label_dmsf_workflow_plural_num: Approval workflows (%{count}) label_dmsf_workflow_step: Step label_dmsf_workflow_step_plural: Steps label_dmsf_workflow_approval: Approval diff --git a/config/locales/fr.yml b/config/locales/fr.yml index fbee087d..d4ce5aea 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -224,6 +224,7 @@ fr: field_label_dmsf_workflow: Flux de validation field_label_dmsf_workflow_name: Nom du flux label_dmsf_workflow_plural: Flux de validation + label_dmsf_workflow_plural_num: Flux de validation (%{count}) label_dmsf_workflow_step: Etape label_dmsf_workflow_step_plural: Etapes label_dmsf_workflow_approval: Approbation diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 8f6bee12..16025aaa 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -224,6 +224,7 @@ ja: field_label_dmsf_workflow: Approval Workflow field_label_dmsf_workflow_name: Approval workflow name label_dmsf_workflow_plural: Approval workflows + label_dmsf_workflow_plural_num: Approval workflows (%{count}) label_dmsf_workflow_step: Step label_dmsf_workflow_step_plural: Steps label_dmsf_workflow_approval: Approval diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 673a6bf3..280a23f6 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -224,6 +224,7 @@ ru: field_label_dmsf_workflow: Approval Workflow field_label_dmsf_workflow_name: Approval workflow name label_dmsf_workflow_plural: Approval workflows + label_dmsf_workflow_plural_num: Approval workflows (%{count}) label_dmsf_workflow_step: Step label_dmsf_workflow_step_plural: Steps label_dmsf_workflow_approval: Approval diff --git a/config/locales/sl.yml b/config/locales/sl.yml index 6713a082..b1c1ec83 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -224,6 +224,7 @@ sl: field_label_dmsf_workflow: Approval Workflow field_label_dmsf_workflow_name: Approval workflow name label_dmsf_workflow_plural: Approval workflows + label_dmsf_workflow_plural_num: Approval workflows (%{count}) label_dmsf_workflow_step: Step label_dmsf_workflow_step_plural: Steps label_dmsf_workflow_approval: Approval diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 29414c7a..40dbf744 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -226,6 +226,7 @@ field_label_dmsf_workflow: 批准流程 field_label_dmsf_workflow_name: 批准流程名稱 label_dmsf_workflow_plural: 批准流程 + label_dmsf_workflow_plural_num: 批准流程 (%{count}) label_dmsf_workflow_step: 步驟 label_dmsf_workflow_step_plural: 步驟 label_dmsf_workflow_approval: 批准 diff --git a/config/locales/zh.yml b/config/locales/zh.yml index b7616348..4213463e 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -224,6 +224,7 @@ zh: field_label_dmsf_workflow: Approval Workflow field_label_dmsf_workflow_name: Approval workflow name label_dmsf_workflow_plural: Approval workflows + label_dmsf_workflow_plural_num: Approval workflows (%{count}) label_dmsf_workflow_step: Step label_dmsf_workflow_step_plural: Steps label_dmsf_workflow_approval: Approval diff --git a/lib/redmine_dmsf/hooks/view_projects_form_hook.rb b/lib/redmine_dmsf/hooks/view_projects_form_hook.rb index 23b419f8..a03e80c0 100644 --- a/lib/redmine_dmsf/hooks/view_projects_form_hook.rb +++ b/lib/redmine_dmsf/hooks/view_projects_form_hook.rb @@ -1,6 +1,6 @@ # Redmine plugin for Document Management System "Features" # -# Copyright (C) 2013 Karel Pičman +# Copyright (C) 2011-14 Karel Pičman # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -31,4 +31,4 @@ module RedmineDmsf end end -end +end \ No newline at end of file diff --git a/lib/redmine_dmsf/patches/project_patch.rb b/lib/redmine_dmsf/patches/project_patch.rb index e20dd51b..0f3cdae0 100644 --- a/lib/redmine_dmsf/patches/project_patch.rb +++ b/lib/redmine_dmsf/patches/project_patch.rb @@ -61,7 +61,7 @@ module RedmineDmsf project = project.is_a?(Project) ? project : Project.find(project) - to_be_copied = %w(dmsf) + to_be_copied = %w(dmsf, approval_workflows) to_be_copied = to_be_copied & options[:only].to_a if options[:only].present? if save @@ -88,6 +88,12 @@ module RedmineDmsf l.copy_to(self, nil) end end + + def copy_approval_workflows(project) + project.dmsf_workflows.each do |wf| + wf.copy_to self + end + end end end @@ -99,4 +105,4 @@ Rails.configuration.to_prepare do unless Project.included_modules.include?(RedmineDmsf::Patches::ProjectPatch) Project.send(:include, RedmineDmsf::Patches::ProjectPatch) end -end +end \ No newline at end of file