From 196b6628ae614f43c8d10192551ded4f7dd691f2 Mon Sep 17 00:00:00 2001 From: wandji Date: Tue, 22 Aug 2023 13:24:43 +0100 Subject: [PATCH] Add task protocol activities for gene sequence asset actions [SCI-8965] (#6013) --- .../gene_sequence_assets_controller.rb | 31 +++++++++++++++++++ config/initializers/extends.rb | 8 +++-- config/locales/global_activities/en.yml | 4 +++ 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/app/controllers/gene_sequence_assets_controller.rb b/app/controllers/gene_sequence_assets_controller.rb index 8d3e898ee..a080ec38c 100644 --- a/app/controllers/gene_sequence_assets_controller.rb +++ b/app/controllers/gene_sequence_assets_controller.rb @@ -20,16 +20,25 @@ class GeneSequenceAssetsController < ApplicationController def edit @file_url = rails_representation_url(@asset.file) @file_name = @asset.render_file_name + @ove_enabled = OpenVectorEditorService.enabled? + log_activity(:protocol_sequence_asset_edit_started) render :edit, layout: false end def create save_asset! + log_activity(:protocol_sequence_asset_added) head :ok end def update save_asset! + log_activity(:protocol_sequence_asset_edit_finished) + head :ok + end + + def destroy + log_activity(:protocol_sequence_asset_deleted) head :ok end @@ -133,4 +142,26 @@ class GeneSequenceAssetsController < ApplicationController false end end + + def log_activity(type_of, message_items = {}) + return unless @parent.is_a?(Step) + + my_module = @parent.my_module + default_items = { + protocol: @protocol.id, + my_module: my_module&.id, + step: @parent.id, + asset_name: { id: @asset.id, value_for: 'file_name' }, + step_position: { id: @parent.id, value_for: 'position_plus_one' } + } + message_items = default_items.merge(message_items) + + Activities::CreateActivityService + .call(activity_type: type_of, + owner: current_user, + team: @protocol.team, + project: my_module&.project, + subject: @protocol, + message_items: message_items) + end end diff --git a/config/initializers/extends.rb b/config/initializers/extends.rb index 9362e225f..e92dc8380 100644 --- a/config/initializers/extends.rb +++ b/config/initializers/extends.rb @@ -448,7 +448,11 @@ class Extends team_sharing_tasks_disabled: 245, task_link_sharing_enabled: 246, task_link_sharing_disabled: 247, - shared_task_message_edited: 248 + shared_task_message_edited: 248, + protocol_sequence_asset_added: 249, + protocol_sequence_asset_edit_started: 250, + protocol_sequence_asset_edit_finished: 251, + protocol_sequence_asset_deleted: 252 } ACTIVITY_GROUPS = { @@ -457,7 +461,7 @@ class Extends task: [8, 58, 9, 59, *10..14, 35, 36, 37, 53, 54, *60..63, 138, 139, 140, 64, 66, 106, 126, 120, 132, *146..148, 166, 246, 247, 248], task_protocol: [15, 22, 16, 18, 19, 20, 21, 17, 38, 39, 100, 111, 45, 46, 47, 121, 124, 115, 118, 127, 130, 137, - 217, 168, 171, 177, 184, 185, 188, 189, *192..203, 222, 224, 225, 226, 236], + 217, 168, 171, 177, 184, 185, 188, 189, *192..203, 222, 224, 225, 226, 236, *249..252], task_inventory: [55, 56, 146, 147, 183], experiment: [*27..31, 57, 141, 165], reports: [48, 50, 49, 163, 164], diff --git a/config/locales/global_activities/en.yml b/config/locales/global_activities/en.yml index d213c6728..03ba35bcd 100644 --- a/config/locales/global_activities/en.yml +++ b/config/locales/global_activities/en.yml @@ -273,6 +273,10 @@ en: task_link_sharing_enabled_html: "%{user} enabled link sharing for task %{my_module}." task_link_sharing_disabled_html: "%{user} disabled link sharing for task %{my_module}." shared_task_message_edited_html: "%{user} edited message for shared task %{my_module}." + protocol_sequence_asset_added_html: "%{user} created sequence %{asset_name} on protocol’s step %{step_position} %{step} on task %{my_module}." + protocol_sequence_asset_edit_started_html: "%{user} edited sequence %{asset_name} on protocol’s step %{step_position} %{step} on task %{my_module}: editing started." + protocol_sequence_asset_edit_finished_html: "%{user} edited sequence %{asset_name} on protocol’s step %{step_position} %{step} on task %{my_module}: editing finished." + protocol_sequence_asset_deleted_html: "%{user} deleted sequence %{asset_name} on protocol’s step %{step_position} %{step} on task %{my_module}." activity_name: create_project: "Project created" rename_project: "Project renamed"