From 4c33abff051dbc61290b45830bfee4495c92d890 Mon Sep 17 00:00:00 2001 From: aignatov-bio Date: Mon, 30 Mar 2020 15:16:14 +0200 Subject: [PATCH 1/2] Assign user after task created --- app/models/experiment.rb | 2 ++ app/models/my_module.rb | 15 +++++++++++++++ app/services/create_my_module_service.rb | 3 +++ 3 files changed, 20 insertions(+) diff --git a/app/models/experiment.rb b/app/models/experiment.rb index 65c6fe8e8..c9d9483d3 100644 --- a/app/models/experiment.rb +++ b/app/models/experiment.rb @@ -293,6 +293,8 @@ class Experiment < ApplicationRecord my_module.last_modified_by = current_user my_module.save! + my_module.assign_user(current_user) + ids_map[m[:id]] = my_module.id.to_s end my_modules.reload diff --git a/app/models/my_module.rb b/app/models/my_module.rb index a4d01c6f5..fa3264045 100644 --- a/app/models/my_module.rb +++ b/app/models/my_module.rb @@ -539,6 +539,21 @@ class MyModule < ApplicationRecord end end + def assign_user(user, assigned_by = nil) + user_my_modules.create( + assigned_by: assigned_by || user, + user: user + ) + Activities::CreateActivityService + .call(activity_type: :assign_user_to_module, + owner: assigned_by || user, + team: experiment.project.team, + project: experiment.project, + subject: self, + message_items: { my_module: id, + user_target: user.id }) + end + private def create_blank_protocol diff --git a/app/services/create_my_module_service.rb b/app/services/create_my_module_service.rb index 144f53521..80a305508 100644 --- a/app/services/create_my_module_service.rb +++ b/app/services/create_my_module_service.rb @@ -32,6 +32,9 @@ class CreateMyModuleService @my_module.save! create_my_module_activity + + @my_module.assign_user(@user) + @params[:experiment].generate_workflow_img new_my_module = @my_module end From 6d41d4d1129dfd9a1e5608d17d0589199110ff1a Mon Sep 17 00:00:00 2001 From: aignatov-bio Date: Tue, 31 Mar 2020 14:16:31 +0200 Subject: [PATCH 2/2] Fix tests --- spec/models/experiment_spec.rb | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/spec/models/experiment_spec.rb b/spec/models/experiment_spec.rb index 602990bbe..4552dcac6 100644 --- a/spec/models/experiment_spec.rb +++ b/spec/models/experiment_spec.rb @@ -103,7 +103,9 @@ describe Experiment, type: :model do expect(Activities::CreateActivityService) .to(receive(:call) .with(hash_including(activity_type: :create_module))) - + expect(Activities::CreateActivityService) + .to(receive(:call) + .with(hash_including(activity_type: :assign_user_to_module))) function_call end @@ -137,12 +139,15 @@ describe Experiment, type: :model do .to(receive(:call) .with(hash_including(activity_type: :clone_module))).exactly(3).times - + expect(Activities::CreateActivityService) + .to(receive(:call) + .with(hash_including(activity_type: + :assign_user_to_module))).exactly(3).times function_call end it 'creats 3 new activities in DB' do - expect { function_call }.to change { Activity.all.count }.by(3) + expect { function_call }.to change { Activity.all.count }.by(6) end end