diff --git a/app/controllers/experiments_controller.rb b/app/controllers/experiments_controller.rb index c1c854342..dd0428bea 100644 --- a/app/controllers/experiments_controller.rb +++ b/app/controllers/experiments_controller.rb @@ -80,9 +80,6 @@ class ExperimentsController < ApplicationController @experiment.archived = true @experiment.archived_by = current_user @experiment.archived_on = DateTime.now - @experiment.my_modules.each do |my_module| - my_module.archive(current_user) - end if @experiment.save flash[:success] = t('experiments.archive.success_flash', experiment: @experiment.name) diff --git a/app/models/project.rb b/app/models/project.rb index 5c2dd4d33..6b8a5d09f 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -149,12 +149,18 @@ class Project < ActiveRecord::Base if role.blank? MyModule.none elsif role == 'owner' - project_my_modules.where(archived: false) + project_my_modules + .joins(:experiment) + .where('experiments.archived=false') + .where('my_modules.archived=false') + else project_my_modules .joins(:user_my_modules) - .where('user_my_modules.user_id IN (?)', user.id) - .where(archived: false) + .joins(:experiment) + .where('experiments.archived=false AND user_my_modules.user_id IN (?)', + user.id) + .where('my_modules.archived=false') .distinct end end