Merge pull request #6168 from ivanscinote/SCI-9010-rework-result-activities-to-be-aligned-with-step-activities

Add and fix result activities [SCI-9010]
This commit is contained in:
Martin Artnik 2023-09-13 09:51:08 +02:00 committed by GitHub
commit 2fc4f3c033
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 114 additions and 42 deletions

View file

@ -259,7 +259,11 @@ class AssetsController < ApplicationController
)
end
when Result
log_result_activity(:edit_result, @assoc)
log_result_activity(
:result_file_deleted,
@assoc,
file: @asset.file_name
)
end
render json: { flash: I18n.t('assets.file_deleted', file_name: escape_input(@asset.file_name)) }
@ -330,7 +334,7 @@ class AssetsController < ApplicationController
message_items: message_items)
end
def log_result_activity(type_of, result)
def log_result_activity(type_of, result, message_items)
Activities::CreateActivityService
.call(activity_type: type_of,
owner: current_user,
@ -338,8 +342,7 @@ class AssetsController < ApplicationController
team: result.my_module.team,
project: result.my_module.project,
message_items: {
result: result.id,
type_of_result: t('activities.result_type.text')
})
result: result.id
}.merge(message_items))
end
end

View file

@ -39,22 +39,17 @@ module ResultElements
end
def log_result_activity(element_type_of, message_items)
# TODO
#message_items[:my_module] = @protocol.my_module.id if @protocol.in_module?
#Activities::CreateActivityService.call(
# activity_type: "#{!@step.protocol.in_module? ? 'protocol_step_' : 'task_step_'}#{element_type_of}",
# owner: current_user,
# team: @protocol.team,
# project: @protocol.in_module? ? @protocol.my_module.project : nil,
# subject: @protocol,
# message_items: {
# step: @step.id,
# step_position: {
# id: @step.id,
# value_for: 'position_plus_one'
# },
# }.merge(message_items)
#)
message_items[:my_module] = @my_module.id
Activities::CreateActivityService.call(
activity_type: element_type_of,
owner: current_user,
team: @my_module.team,
subject: @result,
message_items: {
result: @result.id
}.merge(message_items)
)
end
end
end

View file

@ -24,8 +24,8 @@ module ResultElements
))
ActiveRecord::Base.transaction do
create_in_result!(@result, result_table)
# log_step_activity(:table_added, { table_name: step_table.table.name })
create_in_result!(@result, result_table)
log_result_activity(:result_table_added, { table_name: result_table.table.name })
end
render_result_orderable_element(result_table)
@ -49,7 +49,7 @@ module ResultElements
@table.metadata = {}
end
@table.save!
#log_step_activity(:table_edited, { table_name: @table.name })
log_result_activity(:result_table_edited, { table_name: @table.name })
end
render json: @table, serializer: ResultTableSerializer, user: current_user
@ -72,7 +72,7 @@ module ResultElements
def destroy
if @table.destroy
log_result_activity(:table_deleted, { table_name: @table.name })
log_result_activity(:result_table_deleted, { table_name: @table.name })
head :ok
else
head :unprocessable_entity
@ -87,7 +87,7 @@ module ResultElements
end
@table.name += ' (1)'
new_table = @table.duplicate(@result, current_user, position + 1)
# log_result_activity(:table_duplicated, { table_name: new_table.name })
log_result_activity(:result_table_duplicated, { table_name: new_table.name })
render_result_orderable_element(new_table.result_table)
end
rescue ActiveRecord::RecordInvalid => e

View file

@ -14,7 +14,7 @@ module ResultElements
ActiveRecord::Base.transaction do
create_in_result!(@result, result_text)
#log_result_activity(:text_added, { text_name: result_text.name })
log_result_activity(:result_text_added, { text_name: result_text.name })
end
render_result_orderable_element(result_text)
@ -27,7 +27,7 @@ module ResultElements
ActiveRecord::Base.transaction do
@result_text.update!(result_text_params)
TinyMceAsset.update_images(@result_text, params[:tiny_mce_images], current_user)
#log_result_activity(:text_edited, { text_name: @result_text.name })
log_result_activity(:result_text_edited, { text_name: @result_text.name })
result_annotation_notification(old_text)
end
@ -50,7 +50,7 @@ module ResultElements
def destroy
if @result_text.destroy
log_result_activity(:text_deleted, { text_name: @result_text.name })
log_result_activity(:result_text_deleted, { text_name: @result_text.name })
head :ok
else
head :unprocessable_entity
@ -64,7 +64,7 @@ module ResultElements
element.update(position: element.position + 1)
end
new_result_text = @result_text.duplicate(@result, position + 1)
# log_result_activity(:text_duplicated, { text_name: new_result_text.name })
log_result_activity(:result_text_duplicated, { text_name: new_result_text.name })
render_result_orderable_element(new_result_text)
end
rescue ActiveRecord::RecordInvalid

View file

@ -49,18 +49,19 @@ class ResultsController < ApplicationController
def create
result = @my_module.results.create!(user: current_user)
log_activity(:add_result, { result: result })
render json: result
end
def update
@result.update!(result_params)
log_activity(:edit_result, { result: @result })
render json: @result
end
def archive
if @result.archive(current_user)
log_activity(:archive_result, { result: @result })
render json: {}, status: :ok
else
render json: { errors: @result.errors.full_messages }, status: :unprocessable_entity
@ -69,6 +70,7 @@ class ResultsController < ApplicationController
def restore
if @result.restore(current_user)
log_activity(:result_restored, { result: @result })
render json: {}, status: :ok
else
render json: { errors: @result.errors.full_messages }, status: :unprocessable_entity
@ -99,6 +101,7 @@ class ResultsController < ApplicationController
@asset.post_process_file(@my_module.team)
end
log_activity(:result_file_added, { file: @asset.file_name, result: @result })
render json: @asset,
serializer: AssetSerializer,
user: current_user
@ -125,7 +128,9 @@ class ResultsController < ApplicationController
end
def destroy
name = @result.name
if @result.destroy
log_activity(:destroy_result, { destroyed_result: name })
render json: {}, status: :ok
else
render json: { errors: @result.errors.full_messages }, status: :unprocessable_entity
@ -138,6 +143,7 @@ class ResultsController < ApplicationController
@my_module, current_user, result_name: "#{@result.name} (1)"
)
log_activity(:result_duplicated, { result: @result })
render json: new_result, serializer: ResultSerializer, user: current_user
end
end
@ -199,4 +205,23 @@ class ResultsController < ApplicationController
id: @my_module.code
}
end
def log_activity(element_type_of, message_items = {})
message_items[:my_module] = @my_module.id
subject = if message_items.key?(:result)
result = message_items[:result]
message_items[:result] = result.id
result
else
@my_module
end
Activities::CreateActivityService.call(
activity_type: element_type_of,
owner: current_user,
team: @my_module.team,
subject: subject,
message_items: message_items
)
end
end

View file

@ -243,10 +243,10 @@ class Extends
check_step_checklist_item: 20,
uncheck_step_checklist_item: 21,
edit_step: 22,
add_result: 23,
add_result_old: 23,
add_comment_to_result: 24,
archive_result: 25,
edit_result: 26,
archive_result_old: 25,
edit_result_old: 26,
create_experiment: 27,
edit_experiment: 28,
archive_experiment: 29,
@ -262,7 +262,7 @@ class Extends
delete_step_comment: 39,
edit_result_comment: 40,
delete_result_comment: 41,
destroy_result: 42,
destroy_result_old: 42,
start_edit_wopi_file: 43, # not in use
unlock_wopi_file: 44, # not in use
load_protocol_to_task_from_file: 45,
@ -450,12 +450,28 @@ class Extends
task_link_sharing_enabled: 246,
task_link_sharing_disabled: 247,
shared_task_message_edited: 248,
result_content_rearranged: 244
result_content_rearranged: 249,
add_result: 250,
edit_result: 251,
archive_result: 252,
destroy_result: 253,
result_table_added: 254,
result_file_added: 255,
result_file_deleted: 256,
result_text_added: 257,
result_text_edited: 258,
result_text_deleted: 259,
result_table_edited: 260,
result_table_deleted: 261,
result_duplicated: 262,
result_text_duplicated: 263,
result_table_duplicated: 264,
result_restored: 265
}
ACTIVITY_GROUPS = {
projects: [*0..7, 32, 33, 34, 95, 108, 65, 109, *158..162, 241, 242, 243],
task_results: [23, 26, 25, 42, 24, 40, 41, 99, 110, 122, 116, 128, 169, 172, 178],
task_results: [23, 26, 25, 42, 24, 40, 41, 99, 110, 122, 116, 128, 169, 172, 178, *249..265],
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,

View file

@ -57,13 +57,29 @@ en:
create_report_html: "%{user} created report %{report}."
edit_report_html: "%{user} edited report %{report}."
delete_report_html: "%{user} deleted report %{report}."
add_result_html: "%{user} added %{type_of_result} result %{result}."
edit_result_html: "%{user} edited %{type_of_result} result %{result}."
add_result_old_html: "%{user} added %{type_of_result} result %{result}."
add_result_html: "%{user} added result %{result}."
edit_result_old_html: "%{user} edited %{type_of_result} result %{result}."
edit_result_html: "%{user} edited result %{result}."
add_comment_to_result_html: "%{user} commented on result %{result}."
edit_result_comment_html: "%{user} edited comment on result %{result}."
delete_result_comment_html: "%{user} deleted comment on result %{result}."
archive_result_html: "%{user} archived %{type_of_result} result %{result}."
destroy_result_html: "%{user} deleted %{type_of_result} result %{result}."
archive_result_old_html: "%{user} archived %{type_of_result} result %{result}."
archive_result_html: "%{user} archived result %{result}."
destroy_result_old_html: "%{user} deleted %{type_of_result} result %{result}."
destroy_result_html: "%{user} deleted result %{destroyed_result}."
result_restored_html: "%{user} restored result %{result} from archive."
result_file_added_html: "%{user} added file <strong>%{file}</strong> to result <strong>%{result}</strong>."
result_file_deleted_html: "%{user} deleted file <strong>%{file}</strong> in result <strong>%{result}</strong>."
result_text_added_html: "%{user} created text <strong>%{text_name}</strong> in result <strong>%{result}</strong>."
result_text_edited_html: "%{user} edited text <strong>%{text_name}</strong> in result <strong>%{result}</strong>."
result_text_deleted_html: "%{user} deleted text <strong>%{text_name}</strong> in result <strong>%{result}</strong>."
result_table_added_html: "%{user} created table <strong>%{table_name}</strong> in result <strong>%{result}</strong>."
result_table_edited_html: "%{user} edited table <strong>%{table_name}</strong> in result <strong>%{result}</strong>."
result_table_deleted_html: "%{user} deleted table <strong>%{table_name}</strong> in result <strong>%{result}</strong>."
result_table_duplicated_html: "%{user} duplicated table <strong>%{table_name}</strong> in result <strong>%{result}</strong>."
result_text_duplicated_html: "%{user} duplicated text <strong>%{text_name}</strong> in result <strong>%{result}</strong>."
result_duplicated_html: "%{user} duplicated result <strong>%{result}</strong>."
create_module_html: "%{user} created task %{my_module}."
clone_module_html: "%{user} copied task %{my_module_new} from task %{my_module_original} as template."
restore_module_html: "%{user} restored task %{my_module} from archive."
@ -288,13 +304,30 @@ en:
create_report: "Report created"
edit_report: "Report edited"
delete_report: "Report deleted"
add_result_old: "Result added"
add_result: "Result added"
edit_result_old: "Result edited"
edit_result: "Result edited"
add_comment_to_result: "Result comment added"
edit_result_comment: "Result comment edited"
delete_result_comment: "Result comment deleted"
archive_result_old: "Result archived"
archive_result: "Result archived"
destroy_result_old: "Result deleted"
destroy_result: "Result deleted"
result_restored: "Result restored"
result_content_rearranged: "Result content rearranged"
result_file_added: "Result file added"
result_file_deleted: "Result file deleted"
result_text_added: "Result text added"
result_text_edited: "Result text edited"
result_text_deleted: "Result text deleted"
result_table_added: "Result table added"
result_table_edited: "Result table edited"
result_table_deleted: "Result table deleted"
result_duplicated: "Step duplicated"
result_text_duplicated: "Result text duplicated"
result_table_duplicated: "Result table duplicated"
create_module: "Task created"
clone_module: "Task copied"
archive_module: "Task archived"