mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-11-10 08:21:37 +08:00
Merge pull request #2676 from mlorb/ml-sci-4786
Revert default_scope for active repositories [SCI-4786]
This commit is contained in:
commit
30de400cf9
14 changed files with 32 additions and 23 deletions
|
|
@ -51,7 +51,7 @@ class AtWhoController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def repositories
|
def repositories
|
||||||
repositories = Repository.accessible_by_teams(@team)
|
repositories = Repository.active.accessible_by_teams(@team)
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.json do
|
format.json do
|
||||||
render json: {
|
render json: {
|
||||||
|
|
|
||||||
|
|
@ -115,7 +115,7 @@ class MyModuleRepositoriesController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def load_repository
|
def load_repository
|
||||||
@repository = Repository.with_archived.find_by(id: params[:id])
|
@repository = Repository.find_by(id: params[:id])
|
||||||
render_404 unless @repository
|
render_404 unless @repository
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -478,7 +478,8 @@ class ReportsController < ApplicationController
|
||||||
|
|
||||||
def load_available_repositories
|
def load_available_repositories
|
||||||
@available_repositories = []
|
@available_repositories = []
|
||||||
repositories = Repository.accessible_by_teams(current_team)
|
repositories = Repository.active
|
||||||
|
.accessible_by_teams(current_team)
|
||||||
.name_like(search_params[:q])
|
.name_like(search_params[:q])
|
||||||
.limit(Constants::SEARCH_LIMIT)
|
.limit(Constants::SEARCH_LIMIT)
|
||||||
.select(:id, :name, :team_id, :permission_level)
|
.select(:id, :name, :team_id, :permission_level)
|
||||||
|
|
|
||||||
|
|
@ -368,13 +368,17 @@ class RepositoriesController < ApplicationController
|
||||||
|
|
||||||
def load_repository
|
def load_repository
|
||||||
repository_id = params[:id] || params[:repository_id]
|
repository_id = params[:id] || params[:repository_id]
|
||||||
@repository = Repository.accessible_by_teams(current_team).with_archived.find_by(id: repository_id)
|
@repository = Repository.accessible_by_teams(current_team).find_by(id: repository_id)
|
||||||
render_404 unless @repository
|
render_404 unless @repository
|
||||||
end
|
end
|
||||||
|
|
||||||
def load_repositories
|
def load_repositories
|
||||||
@repositories = Repository.accessible_by_teams(current_team).order('repositories.created_at ASC')
|
@repositories = Repository.accessible_by_teams(current_team).order('repositories.created_at ASC')
|
||||||
@repositories = @repositories.archived if params[:archived] || @repository&.archived?
|
@repositories = if params[:archived] || @repository&.archived?
|
||||||
|
@repositories.archived
|
||||||
|
else
|
||||||
|
@repositories.active
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def set_inline_name_editing
|
def set_inline_name_editing
|
||||||
|
|
@ -428,7 +432,7 @@ class RepositoriesController < ApplicationController
|
||||||
|
|
||||||
def selected_repos_params
|
def selected_repos_params
|
||||||
process_ids = params[:selected_repos].map(&:to_i).uniq
|
process_ids = params[:selected_repos].map(&:to_i).uniq
|
||||||
Repository.where(id: process_ids, team_id: current_team).with_archived.pluck(:id)
|
Repository.where(id: process_ids, team_id: current_team).pluck(:id)
|
||||||
end
|
end
|
||||||
|
|
||||||
def repository_response(message)
|
def repository_response(message)
|
||||||
|
|
|
||||||
|
|
@ -204,7 +204,6 @@ class RepositoryRowsController < ApplicationController
|
||||||
|
|
||||||
def load_repository
|
def load_repository
|
||||||
@repository = Repository.accessible_by_teams(current_team)
|
@repository = Repository.accessible_by_teams(current_team)
|
||||||
.with_archived
|
|
||||||
.eager_load(:repository_columns)
|
.eager_load(:repository_columns)
|
||||||
.find_by(id: params[:repository_id])
|
.find_by(id: params[:repository_id])
|
||||||
render_404 unless @repository
|
render_404 unless @repository
|
||||||
|
|
|
||||||
|
|
@ -123,7 +123,7 @@ module ReportsHelper
|
||||||
end
|
end
|
||||||
|
|
||||||
def assign_repository_or_snapshot(my_module, element_id, snapshot, repository)
|
def assign_repository_or_snapshot(my_module, element_id, snapshot, repository)
|
||||||
original_repository = Repository.with_archived.find_by(id: element_id) if element_id
|
original_repository = Repository.find_by(id: element_id) if element_id
|
||||||
repository ||= snapshot
|
repository ||= snapshot
|
||||||
repository || my_module.active_snapshot_or_live(original_repository) || original_repository
|
repository || my_module.active_snapshot_or_live(original_repository) || original_repository
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -48,8 +48,7 @@ class Activity < ApplicationRecord
|
||||||
}
|
}
|
||||||
|
|
||||||
scope :repositories_joins, lambda {
|
scope :repositories_joins, lambda {
|
||||||
joins("LEFT JOIN repositories ON subject_type = 'RepositoryBase' AND subject_id = repositories.id " \
|
joins("LEFT JOIN repositories ON subject_type = 'RepositoryBase' AND subject_id = repositories.id")
|
||||||
"AND repositories.archived != TRUE")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
scope :reports_joins, lambda {
|
scope :reports_joins, lambda {
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,9 @@ class Repository < RepositoryBase
|
||||||
uniqueness: { scope: :team_id, case_sensitive: false },
|
uniqueness: { scope: :team_id, case_sensitive: false },
|
||||||
length: { maximum: Constants::NAME_MAX_LENGTH }
|
length: { maximum: Constants::NAME_MAX_LENGTH }
|
||||||
|
|
||||||
|
scope :active, -> { where(archived: false) }
|
||||||
|
scope :archived, -> { where(archived: true) }
|
||||||
|
|
||||||
scope :accessible_by_teams, lambda { |teams|
|
scope :accessible_by_teams, lambda { |teams|
|
||||||
left_outer_joins(:team_repositories)
|
left_outer_joins(:team_repositories)
|
||||||
.where('repositories.team_id IN (?) '\
|
.where('repositories.team_id IN (?) '\
|
||||||
|
|
@ -45,9 +48,6 @@ class Repository < RepositoryBase
|
||||||
.distinct
|
.distinct
|
||||||
}
|
}
|
||||||
|
|
||||||
default_scope { where.not(archived: true) }
|
|
||||||
scope :with_archived, -> { unscope(where: :archived) }
|
|
||||||
scope :archived, -> { with_archived.where(archived: true) }
|
|
||||||
scope :used_on_task_but_unshared, lambda { |task, team|
|
scope :used_on_task_but_unshared, lambda { |task, team|
|
||||||
where(id: task.repository_rows
|
where(id: task.repository_rows
|
||||||
.select(:repository_id))
|
.select(:repository_id))
|
||||||
|
|
@ -57,13 +57,13 @@ class Repository < RepositoryBase
|
||||||
def self.within_global_limits?
|
def self.within_global_limits?
|
||||||
return true unless Rails.configuration.x.global_repositories_limit.positive?
|
return true unless Rails.configuration.x.global_repositories_limit.positive?
|
||||||
|
|
||||||
with_archived.count < Rails.configuration.x.global_repositories_limit
|
count < Rails.configuration.x.global_repositories_limit
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.within_team_limits?(team)
|
def self.within_team_limits?(team)
|
||||||
return true unless Rails.configuration.x.team_repositories_limit.positive?
|
return true unless Rails.configuration.x.team_repositories_limit.positive?
|
||||||
|
|
||||||
team.repositories.with_archived.count < Rails.configuration.x.team_repositories_limit
|
team.repositories.count < Rails.configuration.x.team_repositories_limit
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.search(
|
def self.search(
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ class RepositorySnapshot < RepositoryBase
|
||||||
after_save :refresh_report_references, if: :saved_change_to_selected
|
after_save :refresh_report_references, if: :saved_change_to_selected
|
||||||
before_destroy :refresh_report_references_for_destroy, prepend: true
|
before_destroy :refresh_report_references_for_destroy, prepend: true
|
||||||
|
|
||||||
belongs_to :original_repository, -> { unscope(where: :archived) },
|
belongs_to :original_repository,
|
||||||
foreign_key: :parent_id,
|
foreign_key: :parent_id,
|
||||||
class_name: 'Repository',
|
class_name: 'Repository',
|
||||||
inverse_of: :repository_snapshots,
|
inverse_of: :repository_snapshots,
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,7 @@ module Dashboard
|
||||||
.projects_joins(:from_experiments)
|
.projects_joins(:from_experiments)
|
||||||
.repositories_joins
|
.repositories_joins
|
||||||
.reports_joins
|
.reports_joins
|
||||||
|
.where('repositories.archived IS NOT TRUE')
|
||||||
.where('projects.archived IS NOT TRUE')
|
.where('projects.archived IS NOT TRUE')
|
||||||
.where('experiments.archived IS NOT TRUE')
|
.where('experiments.archived IS NOT TRUE')
|
||||||
.where('my_modules.archived IS NOT TRUE')
|
.where('my_modules.archived IS NOT TRUE')
|
||||||
|
|
|
||||||
|
|
@ -7,14 +7,15 @@ module Repositories
|
||||||
|
|
||||||
ActiveRecord::Base.transaction do
|
ActiveRecord::Base.transaction do
|
||||||
@repositories.each do |repository|
|
@repositories.each do |repository|
|
||||||
log_activity(:archive_inventory, repository)
|
|
||||||
|
|
||||||
repository.archive!(@user)
|
repository.archive!(@user)
|
||||||
|
|
||||||
RepositoryActions::ArchiveRowsService.call(repository: repository,
|
RepositoryActions::ArchiveRowsService.call(repository: repository,
|
||||||
repository_rows: repository.repository_rows.pluck(:id),
|
repository_rows: repository.repository_rows.pluck(:id),
|
||||||
user: @user,
|
user: @user,
|
||||||
team: @team,
|
team: @team,
|
||||||
log_activities: false)
|
log_activities: false)
|
||||||
|
|
||||||
|
log_activity(:archive_inventory, repository)
|
||||||
end
|
end
|
||||||
rescue ActiveRecord::RecordNotSaved
|
rescue ActiveRecord::RecordNotSaved
|
||||||
@errors[:archiving_error] = I18n.t('repositories.archive_inventories.unsuccess_flash')
|
@errors[:archiving_error] = I18n.t('repositories.archive_inventories.unsuccess_flash')
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ module Repositories
|
||||||
private
|
private
|
||||||
|
|
||||||
def scoped_repositories(ids)
|
def scoped_repositories(ids)
|
||||||
Repository.where(id: ids, team_id: @team).with_archived
|
Repository.where(id: ids, team_id: @team)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,7 @@
|
||||||
<%= form.check_box :module_activity, label: t("projects.reports.elements.modals.module_contents_inner.activity") %>
|
<%= form.check_box :module_activity, label: t("projects.reports.elements.modals.module_contents_inner.activity") %>
|
||||||
</li>
|
</li>
|
||||||
<% # List all repositories, no matter whether rows are assigned or not %>
|
<% # List all repositories, no matter whether rows are assigned or not %>
|
||||||
<% Repository.accessible_by_teams(@project.team).with_archived.order(created_at: :asc).select(:id, :name).find_each do |repository| %>
|
<% Repository.accessible_by_teams(@project.team).order(created_at: :asc).select(:id, :name).find_each do |repository| %>
|
||||||
<li>
|
<li>
|
||||||
<%= form.check_box "module_repository_#{repository.id}", label: repository.name.capitalize, data: { id: repository.id } %>
|
<%= form.check_box "module_repository_#{repository.id}", label: repository.name.capitalize, data: { id: repository.id } %>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
||||||
|
|
@ -47,18 +47,22 @@ describe Repository, type: :model do
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'Scopes' do
|
describe 'Scopes' do
|
||||||
describe 'default_scope' do
|
describe '#active and #archived' do
|
||||||
before do
|
before do
|
||||||
create :repository
|
create :repository
|
||||||
create :repository, :archived
|
create :repository, :archived
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns only active rows' do
|
it 'returns only active rows' do
|
||||||
expect(Repository.count).to be_eql 1
|
expect(Repository.active.count).to be_eql 1
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'returns only archived rows' do
|
||||||
|
expect(Repository.archived.count).to be_eql 1
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns all rows' do
|
it 'returns all rows' do
|
||||||
expect(Repository.with_archived.count).to be_eql 2
|
expect(Repository.count).to be_eql 2
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue