diff --git a/app/controllers/canvas_controller.rb b/app/controllers/canvas_controller.rb
index 91dd8bd8e..3b4b0c93a 100644
--- a/app/controllers/canvas_controller.rb
+++ b/app/controllers/canvas_controller.rb
@@ -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(
diff --git a/app/controllers/concerns/steps_actions.rb b/app/controllers/concerns/steps_actions.rb
index f7a4e9ede..293c4b2e1 100644
--- a/app/controllers/concerns/steps_actions.rb
+++ b/app/controllers/concerns/steps_actions.rb
@@ -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)
diff --git a/app/controllers/experiments_controller.rb b/app/controllers/experiments_controller.rb
index 9456ac72f..264b97871 100644
--- a/app/controllers/experiments_controller.rb
+++ b/app/controllers/experiments_controller.rb
@@ -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',
diff --git a/app/controllers/my_module_comments_controller.rb b/app/controllers/my_module_comments_controller.rb
index fb2c12a6b..994cd6c03 100644
--- a/app/controllers/my_module_comments_controller.rb
+++ b/app/controllers/my_module_comments_controller.rb
@@ -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
diff --git a/app/controllers/my_modules_controller.rb b/app/controllers/my_modules_controller.rb
index d4ce4358a..290d3d42a 100644
--- a/app/controllers/my_modules_controller.rb
+++ b/app/controllers/my_modules_controller.rb
@@ -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
diff --git a/app/controllers/protocols_controller.rb b/app/controllers/protocols_controller.rb
index 8b7c5dd93..1cab571da 100644
--- a/app/controllers/protocols_controller.rb
+++ b/app/controllers/protocols_controller.rb
@@ -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(
diff --git a/app/controllers/result_assets_controller.rb b/app/controllers/result_assets_controller.rb
index 3ce0b8745..75247bb05 100644
--- a/app/controllers/result_assets_controller.rb
+++ b/app/controllers/result_assets_controller.rb
@@ -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",
diff --git a/app/controllers/result_comments_controller.rb b/app/controllers/result_comments_controller.rb
index 3387a0400..d65a03dc2 100644
--- a/app/controllers/result_comments_controller.rb
+++ b/app/controllers/result_comments_controller.rb
@@ -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
diff --git a/app/controllers/result_tables_controller.rb b/app/controllers/result_tables_controller.rb
index c4e4243cb..4fefe1701 100644
--- a/app/controllers/result_tables_controller.rb
+++ b/app/controllers/result_tables_controller.rb
@@ -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",
diff --git a/app/controllers/result_texts_controller.rb b/app/controllers/result_texts_controller.rb
index 7fe013435..f6969dcd8 100644
--- a/app/controllers/result_texts_controller.rb
+++ b/app/controllers/result_texts_controller.rb
@@ -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
diff --git a/app/controllers/results_controller.rb b/app/controllers/results_controller.rb
index 2d4e27b96..fbff11215 100644
--- a/app/controllers/results_controller.rb
+++ b/app/controllers/results_controller.rb
@@ -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
)
diff --git a/app/controllers/step_comments_controller.rb b/app/controllers/step_comments_controller.rb
index 76361d96e..27b6ebf96 100644
--- a/app/controllers/step_comments_controller.rb
+++ b/app/controllers/step_comments_controller.rb
@@ -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
diff --git a/app/controllers/steps_controller.rb b/app/controllers/steps_controller.rb
index c4bd82e3e..d02ecf455 100644
--- a/app/controllers/steps_controller.rb
+++ b/app/controllers/steps_controller.rb
@@ -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
diff --git a/app/controllers/user_my_modules_controller.rb b/app/controllers/user_my_modules_controller.rb
index 1e11ad401..b0d9e7ed2 100644
--- a/app/controllers/user_my_modules_controller.rb
+++ b/app/controllers/user_my_modules_controller.rb
@@ -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
diff --git a/app/models/activity.rb b/app/models/activity.rb
index e97b4d449..47541a78f 100644
--- a/app/models/activity.rb
+++ b/app/models/activity.rb
@@ -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}"
- task_m = "| #{I18n.t('search.index.module')}
-
- #{my_module.name}" if my_module
+ if experiment
+ experiment_m = "| #{I18n.t('search.index.experiment')}
+
+ #{experiment.name}"
+ end
+ if my_module
+ task_m = "| #{I18n.t('search.index.module')}
+
+ #{my_module.name}"
+ 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
diff --git a/app/models/experiment.rb b/app/models/experiment.rb
index 07f137273..e314ba7bb 100644
--- a/app/models/experiment.rb
+++ b/app/models/experiment.rb
@@ -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(
diff --git a/app/models/step.rb b/app/models/step.rb
index 5624b8755..df1db9e11 100644
--- a/app/models/step.rb
+++ b/app/models/step.rb
@@ -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(
diff --git a/app/utilities/wopi_util.rb b/app/utilities/wopi_util.rb
index b508856c7..4529189c0 100644
--- a/app/utilities/wopi_util.rb
+++ b/app/utilities/wopi_util.rb
@@ -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' :
diff --git a/config/locales/en.yml b/config/locales/en.yml
index b2368e13c..665a23e0b 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -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: "%{user} commented on project %{project}."
edit_project_comment: "%{user} edited comment on project %{project}."
delete_project_comment: "%{user} deleted comment on project %{project}."
- add_comment_to_module: "%{user} commented on module %{module}."
- edit_module_comment: "%{user} edited comment on module %{module}."
- delete_module_comment: "%{user} deleted comment on module %{module}."
+ add_comment_to_module: "%{user} commented on task %{module}."
+ edit_module_comment: "%{user} edited comment on task %{module}."
+ delete_module_comment: "%{user} deleted comment on task %{module}."
edit_step_comment: "%{user} edited comment on Step %{step} %{step_name}."
delete_step_comment: "%{user} deleted comment on Step %{step} %{step_name}."
edit_result_comment: "%{user} edited comment on result %{result}."
@@ -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}"
diff --git a/db/migrate/20170418153541_add_experiment_to_activities.rb b/db/migrate/20170418153541_add_experiment_to_activities.rb
new file mode 100644
index 000000000..58ef688e0
--- /dev/null
+++ b/db/migrate/20170418153541_add_experiment_to_activities.rb
@@ -0,0 +1,5 @@
+class AddExperimentToActivities < ActiveRecord::Migration
+ def change
+ add_reference :activities, :experiment, index: true, foreign_key: true
+ end
+end