Merge pull request #560 from mlorb/ml_sci_1195

Add experiment level to notifications [SCI-1195]
This commit is contained in:
mlorb 2017-04-20 18:23:27 +02:00 committed by GitHub
commit d3eaf8802c
20 changed files with 95 additions and 16 deletions

View file

@ -252,6 +252,7 @@ class CanvasController < ApplicationController
Activity.create(
type_of: :archive_module,
project: my_module.experiment.project,
experiment: my_module.experiment,
my_module: my_module,
user: current_user,
message: t(

View file

@ -126,6 +126,10 @@ module StepsActions
step.my_module.experiment.project.name,
project_url(step.my_module.experiment.project)
),
experiment: link_to(
step.my_module.experiment.name,
canvas_experiment_url(step.my_module.experiment)
),
my_module: link_to(
step.my_module.name,
protocols_my_module_url(step.my_module)

View file

@ -51,6 +51,7 @@ class ExperimentsController < ApplicationController
Activity.create(
type_of: :create_experiment,
project: @experiment.project,
experiment: @experiment,
user: current_user,
message: I18n.t(
'activities.create_experiment',
@ -101,6 +102,7 @@ class ExperimentsController < ApplicationController
Activity.create(
type_of: :edit_experiment,
project: @experiment.project,
experiment: @experiment,
user: current_user,
message: I18n.t(
'activities.edit_experiment',
@ -141,6 +143,7 @@ class ExperimentsController < ApplicationController
Activity.create(
type_of: :archive_experiment,
project: @experiment.project,
experiment: @experiment,
user: current_user,
message: I18n.t(
'activities.archive_experiment',
@ -190,6 +193,7 @@ class ExperimentsController < ApplicationController
Activity.create(
type_of: :clone_experiment,
project: project,
experiment: @experiment,
user: current_user,
message: I18n.t(
'activities.clone_experiment',
@ -240,6 +244,7 @@ class ExperimentsController < ApplicationController
Activity.create(
type_of: :move_experiment,
project: project,
experiment: @experiment,
user: current_user,
message: I18n.t(
'activities.move_experiment',

View file

@ -59,6 +59,7 @@ class MyModuleCommentsController < ApplicationController
type_of: :add_comment_to_module,
user: current_user,
project: @my_module.experiment.project,
experiment: @my_module.experiment,
my_module: @my_module,
message: t(
'activities.add_comment_to_module',
@ -117,6 +118,7 @@ class MyModuleCommentsController < ApplicationController
type_of: :edit_module_comment,
user: current_user,
project: @my_module.experiment.project,
experiment: @my_module.experiment,
my_module: @my_module,
message: t(
'activities.edit_module_comment',
@ -143,6 +145,7 @@ class MyModuleCommentsController < ApplicationController
type_of: :delete_module_comment,
user: current_user,
project: @my_module.experiment.project,
experiment: @my_module.experiment,
my_module: @my_module,
message: t(
'activities.delete_module_comment',
@ -209,6 +212,9 @@ class MyModuleCommentsController < ApplicationController
project_url(@my_module
.experiment
.project)),
experiment: link_to(@my_module.experiment.name,
canvas_experiment_url(@my_module
.experiment)),
my_module: link_to(@my_module.name,
protocols_my_module_url(
@my_module

View file

@ -147,6 +147,7 @@ class MyModulesController < ApplicationController
Activity.create(
type_of: :archive_module,
project: @my_module.experiment.project,
experiment: @my_module.experiment,
my_module: @my_module,
user: current_user,
message: t(
@ -163,6 +164,7 @@ class MyModulesController < ApplicationController
Activity.create(
type_of: :restore_module,
project: @my_module.experiment.project,
experiment: @my_module.experiment,
my_module: @my_module,
user: current_user,
message: t(
@ -179,6 +181,7 @@ class MyModulesController < ApplicationController
Activity.create(
type_of: :change_module_description,
project: @my_module.experiment.project,
experiment: @my_module.experiment,
my_module: @my_module,
user: current_user,
message: t(
@ -284,6 +287,7 @@ class MyModulesController < ApplicationController
Activity.create(
type_of: :assign_sample,
project: @my_module.experiment.project,
experiment: @my_module.experiment,
my_module: @my_module,
user: current_user,
message: I18n.t(
@ -321,6 +325,7 @@ class MyModulesController < ApplicationController
Activity.create(
type_of: :unassign_sample,
project: @my_module.experiment.project,
experiment: @my_module.experiment,
my_module: @my_module,
user: current_user,
message: I18n.t(
@ -403,6 +408,7 @@ class MyModulesController < ApplicationController
Activity.create(
user: current_user,
project: @project,
experiment: @experiment,
my_module: @my_module,
message: message,
type_of: completed ? :complete_task : :uncomplete_task

View file

@ -403,6 +403,7 @@ class ProtocolsController < ApplicationController
Activity.create(
type_of: :revert_protocol,
project: @protocol.my_module.experiment.project,
experiment: @protocol.my_module.experiment,
my_module: @protocol.my_module,
user: current_user,
message: I18n.t(
@ -492,6 +493,7 @@ class ProtocolsController < ApplicationController
Activity.create(
type_of: :load_protocol_from_repository,
project: @protocol.my_module.experiment.project,
experiment: @protocol.my_module.experiment,
my_module: @protocol.my_module,
user: current_user,
message: I18n.t(
@ -539,6 +541,7 @@ class ProtocolsController < ApplicationController
Activity.create(
type_of: :load_protocol_from_file,
project: @protocol.my_module.experiment.project,
experiment: @protocol.my_module.experiment,
my_module: @protocol.my_module,
user: current_user,
message: I18n.t(

View file

@ -48,6 +48,7 @@ class ResultAssetsController < ApplicationController
type_of: :add_result,
user: current_user,
project: @my_module.experiment.project,
experiment: @my_module.experiment,
my_module: @my_module,
message: t(
"activities.add_asset_result",
@ -126,6 +127,7 @@ class ResultAssetsController < ApplicationController
Activity.create(
type_of: :archive_result,
project: @my_module.experiment.project,
experiment: @my_module.experiment,
my_module: @my_module,
user: current_user,
message: t(
@ -170,6 +172,7 @@ class ResultAssetsController < ApplicationController
type_of: :edit_result,
user: current_user,
project: @my_module.experiment.project,
experiment: @my_module.experiment,
my_module: @my_module,
message: t(
"activities.edit_asset_result",

View file

@ -55,6 +55,7 @@ class ResultCommentsController < ApplicationController
type_of: :add_comment_to_result,
user: current_user,
project: @result.my_module.experiment.project,
experiment: @result.my_module.experiment,
my_module: @result.my_module,
message: t(
'activities.add_comment_to_result',
@ -113,6 +114,7 @@ class ResultCommentsController < ApplicationController
type_of: :edit_result_comment,
user: current_user,
project: @result.my_module.experiment.project,
experiment: @result.my_module.experiment,
my_module: @result.my_module,
message: t(
'activities.edit_result_comment',
@ -139,6 +141,7 @@ class ResultCommentsController < ApplicationController
type_of: :delete_result_comment,
user: current_user,
project: @result.my_module.experiment.project,
experiment: @result.my_module.experiment,
my_module: @result.my_module,
message: t(
'activities.delete_result_comment',
@ -208,6 +211,9 @@ class ResultCommentsController < ApplicationController
project_url(@result.my_module
.experiment
.project)),
experiment: link_to(@result.my_module.experiment.name,
canvas_experiment_url(@result.my_module
.experiment)),
my_module: link_to(@result.my_module.name,
protocols_my_module_url(
@result.my_module

View file

@ -49,6 +49,7 @@ class ResultTablesController < ApplicationController
type_of: :add_result,
user: current_user,
project: @my_module.experiment.project,
experiment: @my_module.experiment,
my_module: @my_module,
message: t(
"activities.add_table_result",
@ -106,6 +107,7 @@ class ResultTablesController < ApplicationController
Activity.create(
type_of: :archive_result,
project: @my_module.experiment.project,
experiment: @my_module.experiment,
my_module: @my_module,
user: current_user,
message: t(
@ -125,6 +127,7 @@ class ResultTablesController < ApplicationController
type_of: :edit_result,
user: current_user,
project: @my_module.experiment.project,
experiment: @my_module.experiment,
my_module: @my_module,
message: t(
"activities.edit_table_result",

View file

@ -48,6 +48,7 @@ class ResultTextsController < ApplicationController
type_of: :add_result,
user: current_user,
project: @my_module.experiment.project,
experiment: @my_module.experiment,
my_module: @my_module,
message: t(
"activities.add_text_result",
@ -107,6 +108,7 @@ class ResultTextsController < ApplicationController
Activity.create(
type_of: :archive_result,
project: @my_module.experiment.project,
experiment: @my_module.experiment,
my_module: @my_module,
user: current_user,
message: t(
@ -126,6 +128,7 @@ class ResultTextsController < ApplicationController
type_of: :edit_result,
user: current_user,
project: @my_module.experiment.project,
experiment: @my_module.experiment,
my_module: @my_module,
message: t(
"activities.edit_text_result",
@ -229,6 +232,9 @@ class ResultTextsController < ApplicationController
project_url(@result.my_module
.experiment
.project)),
experiment: link_to(@result.my_module.experiment.name,
canvas_experiment_url(@result.my_module
.experiment)),
my_module: link_to(@result.my_module.name,
protocols_my_module_url(
@result.my_module

View file

@ -20,6 +20,7 @@ class ResultsController < ApplicationController
type_of: :destroy_result,
user: current_user,
project: @my_module.experiment.project,
experiment: @my_module.experiment,
my_module: @my_module,
message: act_log
)

View file

@ -57,6 +57,7 @@ class StepCommentsController < ApplicationController
type_of: :add_comment_to_step,
user: current_user,
project: @step.my_module.experiment.project,
experiment: @step.my_module.experiment,
my_module: @step.my_module,
message: t(
"activities.add_comment_to_step",
@ -117,6 +118,7 @@ class StepCommentsController < ApplicationController
type_of: :edit_step_comment,
user: current_user,
project: @step.my_module.experiment.project,
experiment: @step.my_module.experiment,
my_module: @step.my_module,
message: t(
'activities.edit_step_comment',
@ -146,6 +148,7 @@ class StepCommentsController < ApplicationController
type_of: :delete_step_comment,
user: current_user,
project: @step.my_module.experiment.project,
experiment: @step.my_module.experiment,
my_module: @step.my_module,
message: t(
'activities.delete_step_comment',
@ -217,6 +220,9 @@ class StepCommentsController < ApplicationController
project_url(@step.my_module
.experiment
.project)),
experiment: link_to(@step.my_module.experiment.name,
canvas_experiment_url(@step.my_module
.experiment)),
my_module: link_to(@step.my_module.name,
protocols_my_module_url(
@step.my_module

View file

@ -64,6 +64,7 @@ class StepsController < ApplicationController
type_of: :create_step,
user: current_user,
project: @my_module.experiment.project,
experiment: @my_module.experiment,
my_module: @my_module,
message: t(
"activities.create_step",
@ -183,6 +184,7 @@ class StepsController < ApplicationController
type_of: :edit_step,
user: current_user,
project: @my_module.experiment.project,
experiment: @my_module.experiment,
my_module: @my_module,
message: t(
"activities.edit_step",
@ -297,6 +299,7 @@ class StepsController < ApplicationController
Activity.create(
user: current_user,
project: protocol.my_module.experiment.project,
experiment: protocol.my_module.experiment,
my_module: protocol.my_module,
message: message,
type_of: checked ? :check_step_checklist_item : :uncheck_step_checklist_item
@ -369,6 +372,7 @@ class StepsController < ApplicationController
Activity.create(
user: current_user,
project: protocol.my_module.experiment.project,
experiment: protocol.my_module.experiment,
my_module: protocol.my_module,
message: message,
type_of: completed ? :complete_step : :uncomplete_step

View file

@ -50,6 +50,7 @@ class UserMyModulesController < ApplicationController
Activity.create(
user: current_user,
project: @um.my_module.experiment.project,
experiment: @um.my_module.experiment,
my_module: @um.my_module,
message: message,
type_of: :assign_user_to_module
@ -84,6 +85,7 @@ class UserMyModulesController < ApplicationController
Activity.create(
user: current_user,
project: @um.my_module.experiment.project,
experiment: @um.my_module.experiment,
my_module: @um.my_module,
message: message,
type_of: :unassign_user_from_module

View file

@ -63,6 +63,7 @@ class Activity < ActiveRecord::Base
validates :project, :user, presence: true
belongs_to :project, inverse_of: :activities
belongs_to :experiment, inverse_of: :activities
belongs_to :my_module, inverse_of: :activities
belongs_to :user, inverse_of: :activities
@ -82,13 +83,24 @@ class Activity < ActiveRecord::Base
.url_helpers
.project_path(project)}'>
#{project.name}</a>"
task_m = "| #{I18n.t('search.index.module')}
<a href='#{Rails
.application
.routes
.url_helpers
.protocols_my_module_path(my_module)}'>
#{my_module.name}</a>" if my_module
if experiment
experiment_m = "| #{I18n.t('search.index.experiment')}
<a href='#{Rails
.application
.routes
.url_helpers
.canvas_experiment_path(experiment)}'>
#{experiment.name}</a>"
end
if my_module
task_m = "| #{I18n.t('search.index.module')}
<a href='#{Rails
.application
.routes
.url_helpers
.protocols_my_module_path(my_module)}'>
#{my_module.name}</a>"
end
notification = Notification.create(
type_of: notification_type,
@ -97,7 +109,8 @@ class Activity < ActiveRecord::Base
message:
ActionController::Base
.helpers.sanitize(
"#{I18n.t('search.index.project')} #{project_m} #{task_m}",
"#{I18n.t('search.index.project')}
#{project_m} #{experiment_m} #{task_m}",
tags: %w(strong a)
),
generator_user_id: user.id

View file

@ -11,6 +11,7 @@ class Experiment < ActiveRecord::Base
has_many :my_modules, inverse_of: :experiment, dependent: :destroy
has_many :my_module_groups, inverse_of: :experiment, dependent: :destroy
has_many :report_elements, inverse_of: :experiment, dependent: :destroy
has_many :activities, inverse_of: :experiment
has_attached_file :workflowimg
validates_attachment :workflowimg,
@ -145,6 +146,7 @@ class Experiment < ActiveRecord::Base
type_of: :create_module,
user: current_user,
project: self.project,
experiment: m.experiment,
my_module: m,
message: I18n.t(
"activities.create_module",
@ -159,6 +161,7 @@ class Experiment < ActiveRecord::Base
Activity.create(
type_of: :clone_module,
project: mn.experiment.project,
experiment: mn.experiment,
my_module: mn,
user: current_user,
message: I18n.t(

View file

@ -128,6 +128,7 @@ class Step < ActiveRecord::Base
Activity.create(
type_of: :destroy_step,
project: protocol.my_module.experiment.project,
experiment: protocol.my_module.experiment,
my_module: protocol.my_module,
user: @current_user,
message: I18n.t(

View file

@ -98,6 +98,7 @@ module WopiUtil
type_of: :start_edit_wopi_file,
user: current_user,
project: @my_module.experiment.project,
experiment: @my_module.experiment,
my_module: @my_module,
message: t(
started_editing ? 'activities.start_edit_wopi_file_result' :

View file

@ -740,7 +740,7 @@ en:
no_archived_modules: "No archived tasks!"
restore_option: "Restore"
archived_on: "Archived on"
archived_on_title: "Module archived on %{date} at %{time}."
archived_on_title: "Task archived on %{date} at %{time}."
my_module_groups:
new:
@ -1028,9 +1028,9 @@ en:
add_comment_to_project: "<i>%{user}</i> commented on project <strong>%{project}</strong>."
edit_project_comment: "<i>%{user}</i> edited comment on project <strong>%{project}</strong>."
delete_project_comment: "<i>%{user}</i> deleted comment on project <strong>%{project}</strong>."
add_comment_to_module: "<i>%{user}</i> commented on module <strong>%{module}</strong>."
edit_module_comment: "<i>%{user}</i> edited comment on module <strong>%{module}</strong>."
delete_module_comment: "<i>%{user}</i> deleted comment on module <strong>%{module}</strong>."
add_comment_to_module: "<i>%{user}</i> commented on task <strong>%{module}</strong>."
edit_module_comment: "<i>%{user}</i> edited comment on task <strong>%{module}</strong>."
delete_module_comment: "<i>%{user}</i> deleted comment on task <strong>%{module}</strong>."
edit_step_comment: "<i>%{user}</i> edited comment on Step %{step} <strong>%{step_name}</strong>."
delete_step_comment: "<i>%{user}</i> deleted comment on Step %{step} <strong>%{step_name}</strong>."
edit_result_comment: "<i>%{user}</i> edited comment on result <strong>%{result}</strong>."
@ -1520,19 +1520,19 @@ en:
recent_changes: "Recent changes"
system_message: "sciNote system message"
deliver: 'Exportable content'
experiment_annotation_title: "%{user} mentioned you in %{experiment} experiment."
experiment_annotation_title: "%{user} mentioned you in experiment %{experiment}."
experiment_annotation_message_html: "Project: %{project} | Experiment: %{experiment}"
project_comment_annotation_title: "%{user} mentioned you in a comment on project %{project}."
project_annotation_message_html: "Project: %{project}"
my_module_comment_annotation_title: "%{user} mentioned you in a comment on task %{my_module}."
my_module_annotation_message_html: "Project: %{project} | Task: %{my_module}"
my_module_annotation_message_html: "Project: %{project} | Experiment: %{experiment} | Task: %{my_module}"
step_comment_annotation_title: "%{user} mentioned you in a comment on step %{step}."
step_description_title: "%{user} mentioned you in a description on step %{step}."
checklist_title: "%{user} mentioned you in a checklist on step %{step}."
step_annotation_message_html: "Project: %{project} | Task: %{my_module} | Step: %{step}"
step_annotation_message_html: "Project: %{project} | Experiment: %{experiment} | Task: %{my_module} | Step: %{step}"
result_annotation_title: "%{user} mentioned you in result %{result}."
result_comment_annotation_title: "%{user} mentioned you in a comment on result %{result}."
result_annotation_message_html: "Project: %{project} | Task: %{my_module}"
result_annotation_message_html: "Project: %{project} | Experiment: %{experiment} | Task: %{my_module}"
sample_annotation_title: "%{user} mentioned you in Column: %{column} of Sample %{sample}"
sample_annotation_message_html: "Sample: %{sample} | Column: %{column}"
protocol_step_annotation_message_html: "Protocol: %{protocol}"

View file

@ -0,0 +1,5 @@
class AddExperimentToActivities < ActiveRecord::Migration
def change
add_reference :activities, :experiment, index: true, foreign_key: true
end
end