mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-09-24 22:16:24 +08:00
Merge pull request #8438 from andrej-scinote/aj_SCI_11830
Add activities for new experiment fields [SCI-11830]
This commit is contained in:
commit
b010c7b019
3 changed files with 78 additions and 12 deletions
|
@ -97,22 +97,39 @@ class ExperimentsController < ApplicationController
|
|||
|
||||
def update
|
||||
old_text = @experiment.description
|
||||
old_status = @experiment.status
|
||||
|
||||
@experiment.assign_attributes(experiment_params)
|
||||
@experiment.last_modified_by = current_user
|
||||
name_changed = @experiment.name_changed?
|
||||
description_changed = @experiment.description_changed?
|
||||
start_date_changes = @experiment.changes[:start_on]
|
||||
due_date_changes = @experiment.changes[:due_date]
|
||||
|
||||
if @experiment.save
|
||||
experiment_annotation_notification(old_text) if old_text
|
||||
|
||||
activity_type = if experiment_params[:archived] == 'false'
|
||||
:restore_experiment
|
||||
elsif name_changed && !description_changed
|
||||
:rename_experiment
|
||||
else
|
||||
:edit_experiment
|
||||
end
|
||||
log_activity(activity_type, @experiment)
|
||||
if start_date_changes.present?
|
||||
log_start_date_change_activity(start_date_changes)
|
||||
elsif due_date_changes.present?
|
||||
log_due_date_change_activity(due_date_changes)
|
||||
else
|
||||
activity_type = if experiment_params[:archived] == 'false'
|
||||
:restore_experiment
|
||||
elsif name_changed && !description_changed
|
||||
:rename_experiment
|
||||
elsif old_status != @experiment.status
|
||||
:change_experiment_status
|
||||
else
|
||||
:edit_experiment
|
||||
end
|
||||
|
||||
message_items = if activity_type == :change_experiment_status
|
||||
{ old_status: I18n.t("experiments.table.column.status.#{old_status}"),
|
||||
status: I18n.t("experiments.table.column.status.#{@experiment.status}") }
|
||||
end || {}
|
||||
log_activity(activity_type, @experiment, message_items)
|
||||
end
|
||||
|
||||
render json: { message: t('experiments.update.success_flash', experiment: @experiment.name) }, status: :ok
|
||||
else
|
||||
|
@ -550,14 +567,42 @@ class ExperimentsController < ApplicationController
|
|||
)
|
||||
end
|
||||
|
||||
def log_activity(type_of, experiment)
|
||||
def log_start_date_change_activity(start_date_changes)
|
||||
type_of = if start_date_changes[0].nil? # set start_on
|
||||
message_items = { start_on: @experiment.start_on }
|
||||
:set_experiment_start_date
|
||||
elsif start_date_changes[1].nil? # remove start_on
|
||||
message_items = { start_on: start_date_changes[0] }
|
||||
:remove_experiment_start_date
|
||||
else # change start_on
|
||||
message_items = { start_on: @experiment.start_on }
|
||||
:change_experiment_start_date
|
||||
end
|
||||
log_activity(type_of, @experiment, message_items)
|
||||
end
|
||||
|
||||
def log_due_date_change_activity(due_date_changes)
|
||||
type_of = if due_date_changes[0].nil? # set due_date
|
||||
message_items = { due_date: @experiment.due_date }
|
||||
:set_experiment_due_date
|
||||
elsif due_date_changes[1].nil? # remove due_date
|
||||
message_items = { due_date: due_date_changes[0] }
|
||||
:remove_experiment_due_date
|
||||
else # change due_date
|
||||
message_items = { due_date: @experiment.due_date }
|
||||
:change_experiment_due_date
|
||||
end
|
||||
log_activity(type_of, @experiment, message_items)
|
||||
end
|
||||
|
||||
def log_activity(type_of, experiment, message_items = {})
|
||||
Activities::CreateActivityService
|
||||
.call(activity_type: type_of,
|
||||
owner: current_user,
|
||||
team: experiment.team,
|
||||
project: experiment.project,
|
||||
subject: experiment,
|
||||
message_items: { experiment: experiment.id })
|
||||
message_items: message_items.merge({ experiment: experiment.id }))
|
||||
end
|
||||
|
||||
def log_my_module_activity(type_of, my_module)
|
||||
|
|
|
@ -556,7 +556,14 @@ class Extends
|
|||
protocol_step_form_moved: 355,
|
||||
form_block_duplicated: 356,
|
||||
form_duplicated: 357,
|
||||
form_unpublished: 358
|
||||
form_unpublished: 358,
|
||||
change_experiment_status: 361,
|
||||
set_experiment_due_date: 362,
|
||||
change_experiment_due_date: 363,
|
||||
remove_experiment_due_date: 364,
|
||||
set_experiment_start_date: 365,
|
||||
change_experiment_start_date: 366,
|
||||
remove_experiment_start_date: 367
|
||||
}
|
||||
|
||||
ACTIVITY_GROUPS = {
|
||||
|
@ -567,7 +574,7 @@ class Extends
|
|||
task_protocol: [15, 22, 16, 18, 19, 20, 21, 17, 38, 39, 100, 111, 45, 46, 47, 121, 124, 115, 118, 127, 130, 137,
|
||||
184, 185, 188, 189, *192..203, 221, 222, 224, 225, 226, 236, *249..252, *274..278, 299, 302, 305, 327, *347..352],
|
||||
task_inventory: [55, 56, 146, 147, 183],
|
||||
experiment: [*27..31, 57, 141, 165],
|
||||
experiment: [*27..31, 57, 141, 165, *361..367],
|
||||
reports: [48, 50, 49, 163, 164],
|
||||
inventories: [70, 71, 105, 144, 145, 72, 73, 74, 102, 142, 143, 75, 76, 77,
|
||||
78, 96, 107, 113, 114, *133..136, 180, 181, 182, *292..298, 308, 329],
|
||||
|
|
|
@ -372,6 +372,13 @@ en:
|
|||
form_duplicated_html: "%{user} duplicated form %{form} from %{form_old} in Forms."
|
||||
form_block_duplicated_html: "%{user} duplicated form block %{block_name} in form %{form} in Form templates."
|
||||
form_unpublished_html: "%{user} unpublished form %{form}."
|
||||
change_experiment_status_html: "%{user} changed status from <strong>%{old_status}</strong> to <strong>%{status}</strong> for experiment %{experiment}."
|
||||
set_experiment_due_date_html: "%{user} set due date %{due_date} on experiment %{experiment}."
|
||||
change_experiment_due_date_html: "%{user} changed due date %{due_date} on experiment %{experiment}."
|
||||
remove_experiment_due_date_html: "%{user} removed due date %{due_date} on experiment %{experiment}."
|
||||
set_experiment_start_date_html: "%{user} set start date %{start_on} on experiment %{experiment}."
|
||||
change_experiment_start_date_html: "%{user} changed start date %{start_on} on experiment %{experiment}."
|
||||
remove_experiment_start_date_html: "%{user} removed start date %{start_on} on experiment %{experiment}."
|
||||
activity_name:
|
||||
create_project: "Project created"
|
||||
rename_project: "Project renamed"
|
||||
|
@ -701,6 +708,13 @@ en:
|
|||
form_duplicated: "Form duplicated"
|
||||
form_block_duplicated: "Form block duplicated"
|
||||
form_unpublished: "Form unpublished"
|
||||
change_experiment_status: "Experiment status changed"
|
||||
set_experiment_due_date: "Experiment due date set"
|
||||
change_experiment_due_date: "Experiment due date changed"
|
||||
remove_experiment_due_date: "Experiment due date removed"
|
||||
set_experiment_start_date: "Experiment start date set"
|
||||
change_experiment_start_date: "Experiment start date changed"
|
||||
remove_experiment_start_date: "Experiment start date removed"
|
||||
activity_group:
|
||||
projects: "Projects"
|
||||
task_results: "Task results"
|
||||
|
|
Loading…
Add table
Reference in a new issue