refs #136585 user notifications
This commit is contained in:
parent
cd254e7611
commit
2c090bcf77
@ -394,26 +394,7 @@ class DmsfWorkflowsController < ApplicationController
|
||||
if revision
|
||||
revision.set_workflow(@dmsf_workflow.id, params[:action])
|
||||
if revision.save
|
||||
assignments = @dmsf_workflow.next_assignments revision.id
|
||||
recipients = assignments.collect{ |a| a.user }
|
||||
recipients.uniq!
|
||||
recipients = recipients & DmsfMailer.get_notify_users(@project)
|
||||
recipients.each do |user|
|
||||
DmsfMailer.workflow_notification(
|
||||
user,
|
||||
@dmsf_workflow,
|
||||
revision,
|
||||
:text_email_subject_started,
|
||||
:text_email_started,
|
||||
:text_email_to_proceed).deliver
|
||||
end
|
||||
if Setting.plugin_redmine_dmsf[:dmsf_display_notified_recipients] == '1'
|
||||
unless recipients.blank?
|
||||
to = recipients.collect{ |r| r.name }.first(DMSF_MAX_NOTIFICATION_RECEIVERS_INFO).join(', ')
|
||||
to << ((recipients.count > DMSF_MAX_NOTIFICATION_RECEIVERS_INFO) ? ',...' : '.')
|
||||
flash[:warning] = l(:warning_email_notifications, :to => to)
|
||||
end
|
||||
end
|
||||
@dmsf_workflow.notify_users(@project, revision, self)
|
||||
flash[:notice] = l(:notice_workflow_started)
|
||||
else
|
||||
flash[:error] = l(:notice_cannot_start_workflow)
|
||||
|
||||
@ -121,6 +121,7 @@ module DmsfUploadHelper
|
||||
# Start the workflow
|
||||
new_revision.set_workflow(wf.id, 'start')
|
||||
if new_revision.save
|
||||
wf.notify_users(project, new_revision, controller)
|
||||
begin
|
||||
file.lock!
|
||||
rescue DmsfLockError => e
|
||||
|
||||
@ -385,7 +385,7 @@ class DmsfFile < ActiveRecord::Base
|
||||
|
||||
if dmsf_file
|
||||
if user.allowed_to?(:view_dmsf_files, dmsf_file.project) &&
|
||||
(project_ids.blank? || (project_ids.include?(dmsf_file.project.id)))
|
||||
(project_ids.blank? || (project_ids.include?(dmsf_file.project_id)))
|
||||
Redmine::Search.cache_store.write("DmsfFile-#{dmsf_file.id}",
|
||||
dochash['sample'].force_encoding('UTF-8')) if dochash['sample']
|
||||
break if(!options[:limit].blank? && results.count >= options[:limit])
|
||||
@ -407,7 +407,7 @@ class DmsfFile < ActiveRecord::Base
|
||||
end
|
||||
|
||||
def display_name
|
||||
member = Member.where(:user_id => User.current.id, :project_id => self.project.id).first
|
||||
member = Member.where(:user_id => User.current.id, :project_id => self.project_id).first
|
||||
if member && !member.title_format.nil? && !member.title_format.empty?
|
||||
title_format = member.title_format
|
||||
else
|
||||
@ -635,9 +635,12 @@ class DmsfFile < ActiveRecord::Base
|
||||
end
|
||||
|
||||
def container
|
||||
if self.dmsf_folder && self.dmsf_folder.system
|
||||
Issue.where(:id => self.dmsf_folder.title.to_i).first
|
||||
unless @container
|
||||
if self.dmsf_folder && self.dmsf_folder.system
|
||||
@container = Issue.where(:id => self.dmsf_folder.title.to_i).first
|
||||
end
|
||||
end
|
||||
@container
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@ -62,7 +62,12 @@ class DmsfLink < ActiveRecord::Base
|
||||
end
|
||||
|
||||
def target_folder
|
||||
DmsfFolder.find_by_id self.target_folder_id if self.target_folder_id
|
||||
unless @target_folder
|
||||
if self.target_folder_id
|
||||
@target_folder = DmsfFolder.find_by_id self.target_folder_id
|
||||
end
|
||||
end
|
||||
@target_folder
|
||||
end
|
||||
|
||||
def target_file_id
|
||||
@ -70,15 +75,28 @@ class DmsfLink < ActiveRecord::Base
|
||||
end
|
||||
|
||||
def target_file
|
||||
DmsfFile.find_by_id self.target_file_id if self.target_file_id
|
||||
unless @target_file
|
||||
if self.target_file_id
|
||||
DmsfFile.find_by_id self.target_file_id
|
||||
end
|
||||
end
|
||||
@target_file
|
||||
end
|
||||
|
||||
def target_project
|
||||
Project.find_by_id self.target_project_id
|
||||
unless @target_project
|
||||
Project.find_by_id self.target_project_id
|
||||
end
|
||||
@target_project
|
||||
end
|
||||
|
||||
def folder
|
||||
DmsfFolder.find_by_id self.dmsf_folder_id
|
||||
unless @folder
|
||||
if self.dmsf_folder_id
|
||||
@folder = DmsfFolder.find_by_id self.dmsf_folder_id
|
||||
end
|
||||
end
|
||||
@folder
|
||||
end
|
||||
|
||||
def title
|
||||
|
||||
@ -217,4 +217,27 @@ class DmsfWorkflow < ActiveRecord::Base
|
||||
self.status == STATUS_ACTIVE
|
||||
end
|
||||
|
||||
def notify_users(project, revision, controller)
|
||||
assignments = self.next_assignments revision.id
|
||||
recipients = assignments.collect{ |a| a.user }
|
||||
recipients.uniq!
|
||||
recipients = recipients & DmsfMailer.get_notify_users(project)
|
||||
recipients.each do |user|
|
||||
DmsfMailer.workflow_notification(
|
||||
user,
|
||||
self,
|
||||
revision,
|
||||
:text_email_subject_started,
|
||||
:text_email_started,
|
||||
:text_email_to_proceed).deliver
|
||||
end
|
||||
if Setting.plugin_redmine_dmsf[:dmsf_display_notified_recipients] == '1'
|
||||
unless recipients.blank?
|
||||
to = recipients.collect{ |r| r.name }.first(DMSF_MAX_NOTIFICATION_RECEIVERS_INFO).join(', ')
|
||||
to << ((recipients.count > DMSF_MAX_NOTIFICATION_RECEIVERS_INFO) ? ',...' : '.')
|
||||
controller.flash[:warning] = l(:warning_email_notifications, :to => to)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@ -110,6 +110,7 @@ module RedmineDmsf
|
||||
# Start the workflow
|
||||
revision.set_workflow(wf.id, 'start')
|
||||
if revision.save
|
||||
wf.notify_users(issue.project, revision, context[:controller])
|
||||
begin
|
||||
file.lock!
|
||||
rescue DmsfLockError => e
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user