From 0b3fbabdc59468dddc5eb1d85f6271e6d004a7d5 Mon Sep 17 00:00:00 2001 From: Karel Picman Date: Mon, 17 Mar 2014 13:56:51 +0100 Subject: [PATCH] Allert approvals rake task i18n error fixed --- app/controllers/dmsf_workflows_controller.rb | 40 +++++++++++--------- app/models/dmsf_mailer.rb | 16 +++++--- config/locales/cs.yml | 4 +- lib/tasks/dmsf_alert_approvals.rake | 24 ++++++------ 4 files changed, 46 insertions(+), 38 deletions(-) diff --git a/app/controllers/dmsf_workflows_controller.rb b/app/controllers/dmsf_workflows_controller.rb index a3b89034..a95fed73 100644 --- a/app/controllers/dmsf_workflows_controller.rb +++ b/app/controllers/dmsf_workflows_controller.rb @@ -63,9 +63,9 @@ class DmsfWorkflowsController < ApplicationController member.user, @dmsf_workflow, revision, - l(:text_email_subject_approved, :name => @dmsf_workflow.name), - l(:text_email_finished_approved, :name => @dmsf_workflow.name, :filename => revision.file.name), - l(:text_email_to_see_history)).deliver if member.user + :text_email_subject_approved, + :text_email_finished_approved, + :text_email_to_see_history).deliver if member.user end if Setting.plugin_redmine_dmsf[:dmsf_display_notified_recipients] == '1' recipients = revision.file.project.members.collect{ |m| m.user } @@ -79,14 +79,16 @@ class DmsfWorkflowsController < ApplicationController # Just rejected recipients = @dmsf_workflow.participiants recipients.push User.find_by_id revision.dmsf_workflow_assigned_by + recipients.uniq! recipients.each do |user| DmsfMailer.workflow_notification( user, @dmsf_workflow, revision, - l(:text_email_subject_rejected, :name => @dmsf_workflow.name), - l(:text_email_finished_rejected, :name => @dmsf_workflow.name, :filename => revision.file.name, :notice => action.note), - l(:text_email_to_see_history)).deliver if user + :text_email_subject_rejected, + :text_email_finished_rejected, + :text_email_to_see_history, + action.note).deliver if user end if Setting.plugin_redmine_dmsf[:dmsf_display_notified_recipients] == '1' unless recipients.empty? @@ -105,9 +107,10 @@ class DmsfWorkflowsController < ApplicationController delegate, @dmsf_workflow, revision, - l(:text_email_subject_delegated, :name => @dmsf_workflow.name), - l(:text_email_finished_delegated, :name => @dmsf_workflow.name, :filename => revision.file.name, :notice => action.note), - l(:text_email_to_proceed)).deliver + :text_email_subject_delegated, + :text_email_finished_delegated, + :text_email_to_proceed, + action.note).deliver if Setting.plugin_redmine_dmsf[:dmsf_display_notified_recipients] == '1' flash[:warning] = l(:warning_email_notifications, :to => delegate.name) end @@ -123,18 +126,18 @@ class DmsfWorkflowsController < ApplicationController assignment.user, @dmsf_workflow, revision, - l(:text_email_subject_requires_approval, :name => @dmsf_workflow.name), - l(:text_email_finished_step, :name => @dmsf_workflow.name, :filename => revision.file.name), - l(:text_email_to_proceed)).deliver if assignment.user + :text_email_subject_requires_approval, + :text_email_finished_step, + :text_email_to_proceed).deliver if assignment.user end to = User.find_by_id revision.dmsf_workflow_assigned_by DmsfMailer.workflow_notification( to, @dmsf_workflow, revision, - l(:text_email_subject_updated, :name => @dmsf_workflow.name), - l(:text_email_finished_step_short, :name => @dmsf_workflow.name, :filename => revision.file.name), - l(:text_email_to_see_status)).deliver if to + :text_email_subject_updated, + :text_email_finished_step_short, + :text_email_to_see_status).deliver if to if Setting.plugin_redmine_dmsf[:dmsf_display_notified_recipients] == '1' recipients = assignments.collect{ |a| a.user } recipients << to if to && !recipients.include?(to) @@ -308,12 +311,13 @@ class DmsfWorkflowsController < ApplicationController assignment.user, @dmsf_workflow, revision, - l(:text_email_subject_started, :name => @dmsf_workflow.name), - l(:text_email_started, :name => @dmsf_workflow.name, :filename => revision.file.name), - l(:text_email_to_proceed)).deliver if assignment.user + :text_email_subject_started, + :text_email_started, + :text_email_to_proceed).deliver if assignment.user end if Setting.plugin_redmine_dmsf[:dmsf_display_notified_recipients] == '1' recipients = assignments.collect { |a| a.user } + recipients.uniq! unless recipients.empty? to = recipients.collect{ |r| r.name }.first(DMSF_MAX_NOTIFICATION_RECEIVERS_INFO).join(', ') to << ((recipients.count > DMSF_MAX_NOTIFICATION_RECEIVERS_INFO) ? ',...' : '.') diff --git a/app/models/dmsf_mailer.rb b/app/models/dmsf_mailer.rb index c1980a59..4a669856 100644 --- a/app/models/dmsf_mailer.rb +++ b/app/models/dmsf_mailer.rb @@ -69,16 +69,20 @@ class DmsfMailer < Mailer mail :to => email_params[:to], :cc => email_params[:cc], :subject => email_params[:subject], :from => user.mail end - def workflow_notification(user, workflow, revision, subject, text1, text2) + def workflow_notification(user, workflow, revision, subject_id, text1_id, text2_id, notice = nil) if user && workflow && revision - redmine_headers 'Project' => revision.file.project.identifier if revision.file && revision.file.project + if revision.file && revision.file.project + @project = revision.file.project + redmine_headers 'Project' => @project.identifier + end set_language_if_valid user.language @user = user @workflow = workflow - @revision = revision - @text1 = text1 - @text2 = text2 - mail :to => user.mail, :subject => subject + @revision = revision + @text1 = l(text1_id, :name => workflow.name, :filename => revision.file.name, :notice => notice) + @text2 = l(text2_id) + @notice = notice + mail :to => user.mail, :subject => l(subject_id, :name => workflow.name) end end diff --git a/config/locales/cs.yml b/config/locales/cs.yml index 7c3c6eba..cf09ea99 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -264,8 +264,8 @@ cs: text_email_subject_updated: "Schvalovací proces %{name} aktualizován" text_email_subject_started: "Schvalovací proces %{name} spuštěn" text_email_finished_approved: "Schvalovací proces '%{name}' přiřazený k dokumentu '%{filename}' byl právě ukončen a dokument je schválen." - text_email_finished_rejected: "Schvalovací proces '%{name}' přiřazený k dokumentu '%{filename}' byl dokončen a dokument byl zamítnut protože '%{notice}'." - text_email_finished_delegated: "Schvalovací proces '%{name}' přiřazený k dokumentu '%{filename}' byl delegován protože '%{notice}' a od Vás se očekává schválení v aktuálním schvalovacím kroku." + text_email_finished_rejected: "Schvalovací proces '%{name}' přiřazený k dokumentu '%{filename}' byl dokončen a dokument byl zamítnut, protože '%{notice}'." + text_email_finished_delegated: "Schvalovací proces '%{name}' přiřazený k dokumentu '%{filename}' byl delegován, protože '%{notice}' a od Vás se očekává schválení v aktuálním schvalovacím kroku." text_email_finished_step: "Schvalovací proces '%{name}' přiřazený k dokumentu '%{filename}' právě ukončil jeden ze schvalovacích kroků a od Vás se očekává schválení v dalším schvalovacím kroku." text_email_finished_step_short: "Schvalovací proces '%{name}' přiřazený k dokumentu '%{filename}' právě ukončil jeden ze schvalovacích kroků." text_email_started: "Schvalovací proces '%{name}' přiřazený k dokumentu '%{filename}' byl zahájen a od Vás se očekává schválení v aktuálním schvalovacím kroku." diff --git a/lib/tasks/dmsf_alert_approvals.rake b/lib/tasks/dmsf_alert_approvals.rake index a6bc5d7d..c52a917a 100644 --- a/lib/tasks/dmsf_alert_approvals.rake +++ b/lib/tasks/dmsf_alert_approvals.rake @@ -24,9 +24,15 @@ Available options: Example: rake redmine:dmsf_alert_approvals RAILS_ENV="production" END_DESC + +namespace :redmine do + task :dmsf_alert_approvals => :environment do + DmsfAlertApprovals.alert + end +end + +class DmsfAlertApprovals -class DmsfAlertApprovals - def self.alert revisions = DmsfFileRevision.where(:workflow => DmsfWorkflow::STATE_WAITING_FOR_APPROVAL) revisions.each do |revision| @@ -39,17 +45,11 @@ class DmsfAlertApprovals assignment.user, workflow, revision, - l(:text_email_subject_requires_approval, :name => workflow.name), - l(:text_email_finished_step, :name => workflow.name, :filename => revision.file.name), - l(:text_email_to_proceed)).deliver + :text_email_subject_requires_approval, + :text_email_finished_step, + :text_email_to_proceed).deliver end end end - -end -namespace :redmine do - task :dmsf_alert_approvals => :environment do - DmsfAlertApprovals.alert - end -end +end \ No newline at end of file