Move task completion activity and notification creation to separate methods [SCI-999]

This commit is contained in:
Oleksii Kriuchykhin 2017-02-16 13:36:05 +01:00
parent 218e96b1f0
commit 4fb5fa79af

View file

@ -349,48 +349,8 @@ class MyModulesController < ApplicationController
@my_module.completed? ? @my_module.uncomplete : @my_module.complete
completed = @my_module.completed?
if @my_module.save
# Create activity
str = 'activities.uncomplete_module'
str = 'activities.complete_module' if completed
message = t(str,
user: current_user.full_name,
module: @my_module.name)
Activity.create(
user: current_user,
project: @project,
my_module: @my_module,
message: message,
type_of: completed ? :complete_task : :uncomplete_task
)
if completed
title = I18n.t('notifications.types.recent_changes')
message = I18n.t(
'notifications.task_completed',
user: current_user.full_name,
module: @my_module.name,
date: l(@my_module.completed_on, format: :full),
project:
view_context.link_to(@project.name, project_path(@project)),
experiment:
view_context.link_to(
@my_module.experiment.name,
canvas_experiment_path(@my_module.experiment)
)
)
notification = Notification.create(
type_of: :recent_changes,
title: title,
message: sanitize_input(message),
generator_user_id: current_user.id
)
if current_user.recent_notification
UserNotification.create(
notification: notification, user: current_user
)
end
end
task_completion_activity
task_completion_notification if completed
# Create localized title for complete/uncomplete button
button_title = t('my_modules.buttons.complete')
@ -421,6 +381,51 @@ class MyModulesController < ApplicationController
private
def task_completion_activity
completed = @my_module.completed?
str = 'activities.uncomplete_module'
str = 'activities.complete_module' if completed
message = t(str,
user: current_user.full_name,
module: @my_module.name)
Activity.create(
user: current_user,
project: @project,
my_module: @my_module,
message: message,
type_of: completed ? :complete_task : :uncomplete_task
)
end
def task_completion_notification
title = I18n.t('notifications.types.recent_changes')
message = I18n.t(
'notifications.task_completed',
user: current_user.full_name,
module: @my_module.name,
date: l(@my_module.completed_on, format: :full),
project:
view_context.link_to(@project.name, project_path(@project)),
experiment:
view_context.link_to(
@my_module.experiment.name,
canvas_experiment_path(@my_module.experiment)
)
)
notification = Notification.create(
type_of: :recent_changes,
title: title,
message: sanitize_input(message),
generator_user_id: current_user.id
)
if current_user.recent_notification
UserNotification.create(
notification: notification, user: current_user
)
end
end
def load_vars
@my_module = MyModule.find_by_id(params[:id])
if @my_module