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