diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index b89e9b4a9..023621fa0 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -374,10 +374,10 @@ class RepositoriesController < ApplicationController end def repository_users - users = User.where(id: - Repository.first.repository_rows - .joins(params[:archived_by] ? :archived_by : :created_by) - .select('users.id').distinct) + rows_type = params[:archived_by].present? ? :archived_repository_rows : :created_repository_rows + users = User.joins(rows_type) + .where(rows_type => { repository: @repository }) + .group(:id) render json: { users: users.map do |u| { diff --git a/app/models/user.rb b/app/models/user.rb index a23e6175a..6693a7063 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -195,6 +195,11 @@ class User < ApplicationRecord foreign_key: 'restored_by_id', inverse_of: :restored_by, dependent: :nullify + has_many :created_repository_rows, + class_name: 'RepositoryRow', + foreign_key: 'created_by_id', + inverse_of: :created_by, + dependent: :nullify has_many :archived_repository_rows, class_name: 'RepositoryRow', foreign_key: 'archived_by_id', diff --git a/app/services/repository_datatable_service.rb b/app/services/repository_datatable_service.rb index f6849951f..ee8b3b7d1 100644 --- a/app/services/repository_datatable_service.rb +++ b/app/services/repository_datatable_service.rb @@ -3,7 +3,7 @@ class RepositoryDatatableService attr_reader :repository_rows, :all_count, :mappings - PREDEFINED_COLUMNS = %w(row_id name added_on added_by archived_by assigned).freeze + PREDEFINED_COLUMNS = %w(row_id row_name added_on added_by archived_by assigned).freeze def initialize(repository, params, user, my_module = nil) @repository = repository @@ -127,7 +127,7 @@ class RepositoryDatatableService case filter_element_params[:repository_column_id] when 'row_id' build_row_id_filter_condition(repository_rows, filter_element_params) - when 'name' + when 'row_name' build_name_filter_condition(repository_rows, filter_element_params) when 'added_on' build_added_on_filter_condition(repository_rows, filter_element_params)