diff --git a/app/controllers/my_modules_controller.rb b/app/controllers/my_modules_controller.rb index 469324681..fc9bddf49 100644 --- a/app/controllers/my_modules_controller.rb +++ b/app/controllers/my_modules_controller.rb @@ -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