proposals_discussion_plugin_confirm_tasks_controller.rb
1.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
class ProposalsDiscussionPluginConfirmTasksController < MyProfileController
protect :perform_task, :profile, :only => [:approve_proposal, :reprove_proposal]
def approve_proposal
result = {}
if request.post?
result = process_decision(params, :finish)
end
render json: result
end
def reprove_proposal
result = {}
if request.post?
result = process_decision(params, :cancel)
end
render json: result
end
private
def process_decision(params, decision)
result = {
success: false,
message: _('Error flagging proposal. Please, contact the system admin')
}
if params[:task_id] and request.post?
begin
task = profile.find_in_all_tasks(params[:task_id])
task.tag_list = params[:tag_list] if params[:tag_list].presence
task.article_parent_id = params[:article_parent_id] if decision.to_s == 'finish'
task.email_template_id = params[:email_template_id]
task.send(decision, current_person)
result = {:success => true }
rescue Exception => ex
message = "#{task.title} (#{task.requestor ? task.requestor.name : task.author_name})" if task
message = "#{message} #{ex.message}"
result[:message] += ". #{message}"
end
return result
end
end
end