Refactor upon the review requests

This commit is contained in:
Mojca Lorber 2019-03-20 21:34:47 +01:00
parent e34ddeaefd
commit c55e314ed5
21 changed files with 87 additions and 153 deletions

View file

@ -189,7 +189,7 @@ class CanvasController < ApplicationController
team: my_module.experiment.project.team,
project: my_module.experiment.project,
subject: my_module,
message_items: { my_module: @my_module.id })
message_items: { my_module: my_module.id })
end
# Create workflow image

View file

@ -189,21 +189,8 @@ class MyModulesController < ApplicationController
:change_task_due_date
end
# rubocop:enable Metrics/BlockNesting
Activities::CreateActivityService
.call(activity_type: type_of,
owner: current_user,
subject: @my_module,
project:
@my_module.experiment.project,
team: current_team,
message_items: {
my_module: @my_module.id,
my_module_duedate:
{
id: @my_module.id,
value_for: 'due_date'
}
})
log_activity(type_of, my_module_duedate: { id: @my_module.id,
value_for: 'due_date' })
end
end
end
@ -421,8 +408,10 @@ class MyModulesController < ApplicationController
if records_names.any?
records_names.uniq!
log_activity_assign_unassign_records(:assign_repository_record,
records_names)
log_activity(:assign_repository_record,
repository: @repository.id,
record_names: records_names.join(', '))
flash = I18n.t('repositories.assigned_records_flash',
records: records_names.join(', '))
flash = I18n.t('repositories.assigned_records_downstream_flash',
@ -468,8 +457,10 @@ class MyModulesController < ApplicationController
records.update_all(last_modified_by_id: current_user.id)
if records.any?
log_activity_assign_unassign_records(:unassign_repository_record,
records.map(&:name))
log_activity(:unassign_repository_record,
repository: @repository.id,
record_names: records.map(&:name).join(', '))
flash = I18n.t('repositories.unassigned_records_flash',
records: records.map(&:name).join(', '))
respond_to do |format|
@ -663,25 +654,15 @@ class MyModulesController < ApplicationController
:archived)
end
def log_activity(type_of)
Activities::CreateActivityService
.call(activity_type: type_of,
owner: current_user,
team: @my_module.experiment.project.team,
project: @my_module.experiment.project,
subject: @my_module,
message_items: { my_module: @my_module.id })
end
def log_activity(type_of, message_items = {})
message_items = { my_module: @my_module.id }.merge(message_items)
def log_activity_assign_unassign_records(type_of, records_names)
Activities::CreateActivityService
.call(activity_type: type_of,
owner: current_user,
team: @my_module.experiment.project.team,
project: @my_module.experiment.project,
subject: @my_module,
message_items: { my_module: @my_module.id,
repository: @repository.id,
record_names: records_names.join(', ') })
message_items: message_items)
end
end

View file

@ -172,14 +172,8 @@ class ProjectsController < ApplicationController
if !return_error && @project.update(project_params)
# Add activities if needed
if message_visibility.present?
Activities::CreateActivityService
.call(activity_type: :change_project_visibility,
owner: current_user,
subject: @project,
team: @project.team,
project: @project,
message_items: { project: @project.id,
visibility: message_visibility })
log_activity(:change_project_visibility,
visibility: message_visibility)
end
if message_renamed.present?
log_activity(:rename_project)
@ -349,13 +343,15 @@ class ProjectsController < ApplicationController
render_403 unless can_manage_project?(@project)
end
def log_activity(type_of)
def log_activity(type_of, message_items = {})
message_items = { project: @project.id }.merge(message_items)
Activities::CreateActivityService
.call(activity_type: type_of,
owner: current_user,
subject: @project,
team: @project.team,
project: @project,
message_items: { project: @project.id })
message_items: message_items)
end
end

View file

@ -376,7 +376,9 @@ class ProtocolsController < ApplicationController
end
else
# Everything good, display flash & render 200
log_activity_task_protocol(:update_protocol_in_task_from_repository)
log_activity(:update_protocol_in_task_from_repository,
@protocol.my_module.experiment.project,
protocol_repository: @protocol.parent.id)
flash[:success] = t(
'my_modules.protocols.revert_flash'
)
@ -416,7 +418,9 @@ class ProtocolsController < ApplicationController
end
else
# Everything good, record activity, display flash & render 200
log_activity_task_protocol(:update_protocol_in_repository_from_task)
log_activity(:update_protocol_in_repository_from_task,
@protocol.my_module.experiment.project,
protocol_repository: @protocol.parent.id)
flash[:success] = t(
'my_modules.protocols.update_parent_flash'
)
@ -456,7 +460,9 @@ class ProtocolsController < ApplicationController
end
else
# Everything good, display flash & render 200
log_activity_task_protocol(:update_protocol_in_task_from_repository)
log_activity(:update_protocol_in_task_from_repository,
@protocol.my_module.experiment.project,
protocol_repository: @protocol.parent.id)
flash[:success] = t(
'my_modules.protocols.update_from_parent_flash'
)
@ -496,7 +502,9 @@ class ProtocolsController < ApplicationController
end
else
# Everything good, record activity, display flash & render 200
log_activity_task_protocol(:load_protocol_to_task_from_repository)
log_activity(:load_protocol_to_task_from_repository,
@protocol.my_module.experiment.project,
protocol_repository: @protocol.parent.id)
flash[:success] = t('my_modules.protocols.load_from_repository_flash')
flash.keep(:success)
format.json { render json: {}, status: :ok }
@ -533,15 +541,8 @@ class ProtocolsController < ApplicationController
end
else
# Everything good, record activity, display flash & render 200
Activities::CreateActivityService
.call(activity_type: :load_protocol_to_task_from_file,
owner: current_user,
subject: @protocol,
team: current_team,
project: @protocol.my_module.experiment.project,
message_items: {
protocol: @protocol.id
})
log_activity(:load_protocol_to_task_from_file,
@protocol.my_module.experiment.project)
flash[:success] = t(
'my_modules.protocols.load_from_file_flash'
)
@ -1201,27 +1202,15 @@ class ProtocolsController < ApplicationController
render_403 unless can_create_protocols_in_repository?(current_team)
end
def log_activity(type_of)
Activities::CreateActivityService
.call(activity_type: type_of,
owner: current_user,
subject: @protocol,
team: current_team,
message_items: {
protocol: @protocol.id
})
end
def log_activity(type_of, project = nil, message_items = {})
message_items = { protocol: @protocol.id }.merge(message_items)
def log_activity_task_protocol(type_of)
Activities::CreateActivityService
.call(activity_type: type_of,
owner: current_user,
subject: @protocol,
team: current_team,
project: @protocol.my_module.experiment.project,
message_items: {
protocol_task: @protocol.id,
protocol_reporitory: @protocol.parent.id
})
project: project,
message_items: message_items)
end
end

View file

@ -131,13 +131,7 @@ class ReportsController < ApplicationController
report = Report.find_by_id(report_id)
next unless report.present? && can_manage_reports?(current_team)
# record an activity
Activities::CreateActivityService
.call(activity_type: :delete_report,
owner: current_user,
subject: report,
team: report.team,
project: report.project,
message_items: { report: report.id })
log_activity(:delete_report, report)
report.destroy
end
@ -493,13 +487,13 @@ class ReportsController < ApplicationController
:html)
end
def log_activity(type_of)
def log_activity(type_of, report = @report)
Activities::CreateActivityService
.call(activity_type: type_of,
owner: current_user,
subject: @report,
team: @report.team,
project: @report.project,
message_items: { report: @report.id })
subject: report,
team: report.team,
project: report.project,
message_items: { report: report.id })
end
end

View file

@ -208,17 +208,7 @@ class ResultAssetsController < ApplicationController
# Post process file here
asset.post_process_file(@my_module.experiment.project.team)
# Generate activity
Activities::CreateActivityService
.call(activity_type: :add_result,
owner: current_user,
subject: result,
team: @my_module.experiment.project.team,
project: @my_module.experiment.project,
message_items: {
result: result.id,
result_type: t('activities.result_type.asset')
})
log_activity(:add_result, result)
else
success = false
end
@ -226,15 +216,15 @@ class ResultAssetsController < ApplicationController
{ status: success, results: results }
end
def log_activity(type_of)
def log_activity(type_of, result = @result)
Activities::CreateActivityService
.call(activity_type: type_of,
owner: current_user,
subject: @result,
subject: result,
team: @my_module.experiment.project.team,
project: @my_module.experiment.project,
message_items: {
result: @result.id,
result: result.id,
result_type: t('activities.result_type.asset')
})
end

View file

@ -265,21 +265,14 @@ class StepsController < ApplicationController
# This should always hold true (only in module can
# check items be checked, but still check just in case)
if @protocol.in_module?
Activities::CreateActivityService
.call(activity_type: type_of,
owner: current_user,
subject: @protocol,
team: current_team,
project: @protocol.my_module.experiment.project,
message_items: {
protocol: @protocol.id,
step: @chk_item.checklist.step.id,
step_position: { id: @chk_item.checklist.step.id,
value_for: 'position' },
checkbox: text_activity,
num_completed: completed_items.to_s,
num_all: all_items.to_s
})
log_activity(type_of,
@protocol.my_module.experiment.project,
step: @chk_item.checklist.step.id,
step_position: { id: @chk_item.checklist.step.id,
value_for: 'position' },
checkbox: text_activity,
num_completed: completed_items.to_s,
num_all: all_items.to_s)
end
end
else
@ -315,19 +308,10 @@ class StepsController < ApplicationController
# module protocols, so my_module is always
# not nil; nonetheless, check if my_module is present
if @protocol.in_module?
Activities::CreateActivityService
.call(activity_type: type_of,
owner: current_user,
subject: @protocol,
team: current_team,
project: @protocol.my_module.experiment.project,
message_items: {
protocol: @protocol.id,
step: @step.id,
step_position: { id: @step.id, value_for: 'position' },
num_completed: completed_steps.to_s,
num_all: all_steps.to_s
})
log_activity(type_of,
@protocol.my_module.experiment.project,
num_completed: completed_steps.to_s,
num_all: all_steps.to_s)
end
end
@ -616,17 +600,18 @@ class StepsController < ApplicationController
)
end
def log_activity(type_of, project = nil)
def log_activity(type_of, project = nil, message_items = {})
default_items = { protocol: @protocol.id,
step: @step.id,
step_position: { id: @step.id, value_for: 'position' } }
message_items = default_items.merge(message_items)
Activities::CreateActivityService
.call(activity_type: type_of,
owner: current_user,
subject: @protocol,
team: current_team,
project: project,
message_items: {
protocol: @protocol.id,
step: @step.id,
step_position: { id: @step.id, value_for: 'position' }
})
message_items: message_items)
end
end

View file

@ -50,9 +50,9 @@ en:
create_step_html: "%{user} created protocol %{protocol}'s step %{step_position} %{step}."
edit_step_html: "%{user} edited protocol %{protocol}'s step %{step_position} %{step}."
destroy_step_html: "%{user} deleted protocol %{protocol}'s step %{step_position} %{step}."
load_protocol_to_task_from_repository_html: "%{user} loaded protocol %{protocol_task} to task from Protocol repository %{protocol_repository}."
load_protocol_to_task_from_repository_html: "%{user} loaded protocol %{protocol} to task from Protocol repository %{protocol_repository}."
load_protocol_to_task_from_file_html: "%{user} loaded protocol %{protocol} to task from file."
update_protocol_in_task_from_repository_html: "%{user} updated protocol %{protocol_task} on task with version from Protocol repository %{protocol_repository}."
update_protocol_in_task_from_repository_html: "%{user} updated protocol %{protocol} on task with version from Protocol repository %{protocol_repository}."
check_step_checklist_item_html: "%{user} completed checklist item %{checkbox} (%{num_completed}/%{num_all} completed) in protocol %{protocol}'s step %{step_position} %{step}."
uncheck_step_checklist_item_html: "%{user} uncompleted checklist item %{checkbox} (%{num_completed}/%{num_all} completed) in protocol %{protocol}'s step %{step_position} %{step}."
add_comment_to_step_html: "%{user} commented on protocol %{protocol}'s step %{step_position} %{step}."
@ -62,8 +62,8 @@ en:
uncomplete_step_html: "%{user} uncompleted protocol %{protocol}'s step %{step_position} %{step} (%{num_completed}/%{num_all} completed)."
complete_task_html: "%{user} completed task %{my_module}."
uncomplete_task_html: "%{user} uncompleted task %{my_module}."
assign_repository_records_html: "%{user} assigned inventory item(s) %{record_names} from inventory %{repository} to task %{my_module}."
unassign_repository_records_html: "%{user} unassigned inventory item(s) %{record_names} from inventory %{repository} to task %{my_module}."
assign_repository_record_html: "%{user} assigned inventory item(s) %{record_names} from inventory %{repository} to task %{my_module}."
unassign_repository_record_html: "%{user} unassigned inventory item(s) %{record_names} from inventory %{repository} to task %{my_module}."
assign_user_to_project_html: "%{user} assigned user %{user_target} with user role %{role} to project %{project}."
unassign_user_from_project_html: "%{user} removed user %{user_target} with user role %{role} from project %{project}."
change_user_role_on_project_html: "%{user} changed %{user_target}'s role on project %{project} to %{role}."

View file

@ -87,8 +87,7 @@ describe ExperimentsController, type: :controller do
describe '#archive' do
let(:params) do
{ id: experiment.id,
experiment: { name: 'test experiment A1',
description: 'test description one' } }
experiment: { archived: false } }
end
it 'calls create activity service' do
expect(Activities::CreateActivityService).to receive(:call)

View file

@ -5,7 +5,7 @@ require 'rails_helper'
describe ProjectCommentsController, type: :controller do
login_user
let(:user) { User.first }
let(:user) { subject.current_user }
let(:team) { create :team, created_by: user }
let(:user_team) { create :user_team, team: team, user: user }
let(:user_project) { create :user_project, :owner, user: user }

View file

@ -5,7 +5,7 @@ require 'rails_helper'
describe ReportsController, type: :controller do
login_user
let(:user) { User.first }
let(:user) { subject.current_user }
let!(:team) { create :team, created_by: user }
let!(:user_team) { create :user_team, team: team, user: user }
let(:user_project) { create :user_project, :owner, user: user }

View file

@ -3,7 +3,7 @@ require 'rails_helper'
describe RepositoryListItemsController, type: :controller do
login_user
render_views
let(:user) { User.first }
let(:user) { subject.current_user }
let!(:team) { create :team, created_by: user }
let!(:user_team) { create :user_team, team: team, user: user }
let!(:repository) { create :repository, team: team, created_by: user }

View file

@ -5,7 +5,7 @@ require 'rails_helper'
describe ResultAssetsController, type: :controller do
login_user
let(:user) { User.first }
let(:user) { subject.current_user }
let!(:team) { create :team, :with_members }
let!(:user_project) { create :user_project, :owner, user: user }
let(:project) do

View file

@ -5,8 +5,8 @@ require 'rails_helper'
describe ResultCommentsController, type: :controller do
login_user
let(:user) { User.first }
let!(:team) { create :team, :with_members }
let(:user) { subject.current_user }
let!(:team) { create :team, created_by: user, users: [user] }
let!(:user_project) { create :user_project, :owner, user: user }
let(:project) do
create :project, team: team, user_projects: [user_project]

View file

@ -5,8 +5,8 @@ require 'rails_helper'
describe ResultTablesController, type: :controller do
login_user
let(:user) { User.first }
let!(:team) { create :team, :with_members }
let(:user) { subject.current_user }
let!(:team) { create :team, created_by: user, users: [user] }
let!(:user_project) { create :user_project, :owner, user: user }
let(:project) do
create :project, team: team, user_projects: [user_project]

View file

@ -5,7 +5,7 @@ require 'rails_helper'
describe ResultTextsController, type: :controller do
login_user
let(:user) { User.first }
let(:user) { subject.current_user }
let!(:team) { create :team, :with_members }
let!(:user_project) { create :user_project, :owner, user: user }
let(:project) do

View file

@ -5,7 +5,7 @@ require 'rails_helper'
describe ResultsController, type: :controller do
login_user
let(:user) { User.first }
let(:user) { subject.current_user }
let!(:team) { create :team, :with_members }
let!(:user_project) { create :user_project, :owner, user: user }
let(:project) do

View file

@ -5,7 +5,7 @@ require 'rails_helper'
describe SystemNotificationsController, type: :controller do
login_user
render_views
let(:user) { User.first }
let(:user) { subject.current_user }
describe 'Methods' do
let(:notifcation_one) { create :system_notification }

View file

@ -5,7 +5,7 @@ require 'rails_helper'
describe UserProjectsController, type: :controller do
login_user
let(:user) { User.first }
let(:user) { subject.current_user }
let(:user_two) { create :user }
let(:target_user) { create :user }
let!(:team) { create :team, created_by: user }

View file

@ -3,7 +3,7 @@
FactoryBot.define do
factory :result_comment do
user
result
message { Faker::Lorem.sentence }
result { create(:result) }
end
end

View file

@ -2,7 +2,7 @@
FactoryBot.define do
factory :result_table do
table { create(:table) }
result { create(:result) }
table
result
end
end