mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-09-20 14:45:56 +08:00
Fix inclusion of relationships column in repository exports [SCI-9716] (#6954)
This commit is contained in:
parent
393e624c16
commit
a43eacaa22
|
@ -59,6 +59,9 @@ function prepareRepositoryHeaderForExport(th) {
|
|||
case 'archived-on':
|
||||
val = -8;
|
||||
break;
|
||||
case 'relationship':
|
||||
val = -9;
|
||||
break;
|
||||
default:
|
||||
val = th.attr('id');
|
||||
}
|
||||
|
|
|
@ -48,7 +48,9 @@ class RepositoriesExportJob < ApplicationJob
|
|||
csv_file = FileUtils.touch("#{path}/#{repository_name}.csv").first
|
||||
|
||||
# Define headers and columns IDs
|
||||
col_ids = [-3, -4, -5, -6, -7, -8] + repository.repository_columns.map(&:id)
|
||||
col_ids = [-3, -4, -5, -6, -7, -8]
|
||||
col_ids << -9 if Repository.repository_row_connections_enabled?
|
||||
col_ids += repository.repository_columns.map(&:id)
|
||||
|
||||
# Define callback function for file name
|
||||
assets = {}
|
||||
|
@ -66,7 +68,7 @@ class RepositoriesExportJob < ApplicationJob
|
|||
|
||||
# Generate CSV
|
||||
csv_data = RepositoryZipExport.to_csv(repository.repository_rows, col_ids, @user, repository, handle_name_func)
|
||||
File.binwrite(csv_file, csv_data)
|
||||
File.binwrite(csv_file, csv_data.encode('UTF-8', invalid: :replace, undef: :replace))
|
||||
|
||||
# Save all attachments (it doesn't work directly in callback function
|
||||
assets.each do |asset, asset_path|
|
||||
|
|
|
@ -30,7 +30,7 @@ class RepositoryZipExportJob < ZipExportJob
|
|||
rows = ordered_row_ids.collect { |id| id_row_map[id.to_i] }
|
||||
end
|
||||
data = RepositoryZipExport.to_csv(rows,
|
||||
params[:header_ids],
|
||||
params[:header_ids].map(&:to_i),
|
||||
@user,
|
||||
repository,
|
||||
nil,
|
||||
|
|
|
@ -251,7 +251,9 @@ class TeamZipExportJob < ZipExportJob
|
|||
csv_file_path = "#{path}/#{repo_name}.csv"
|
||||
|
||||
# Define headers and columns IDs
|
||||
col_ids = [-3, -4, -5, -6, 'relationship'] + repo.repository_columns.map(&:id)
|
||||
col_ids = [-3, -4, -5, -6]
|
||||
col_ids << -9 if Repository.repository_row_connections_enabled?
|
||||
col_ids += repo.repository_columns.map(&:id)
|
||||
|
||||
# Define callback function for file name
|
||||
assets = {}
|
||||
|
@ -269,7 +271,7 @@ class TeamZipExportJob < ZipExportJob
|
|||
|
||||
# Generate CSV
|
||||
csv_data = RepositoryZipExport.to_csv(repo.repository_rows, col_ids, @user, repo, handle_name_func)
|
||||
File.binwrite(csv_file_path, csv_data)
|
||||
File.binwrite(csv_file_path, csv_data.encode('UTF-8', invalid: :replace, undef: :replace))
|
||||
|
||||
# Save all attachments (it doesn't work directly in callback function
|
||||
assets.each do |asset, asset_path|
|
||||
|
|
|
@ -9,21 +9,21 @@ module RepositoryZipExport
|
|||
add_consumption = in_module && !repository.is_a?(RepositorySnapshot) && repository.has_stock_management?
|
||||
column_ids.each do |c_id|
|
||||
case c_id
|
||||
when '-1', '-2'
|
||||
when -1, -2
|
||||
next
|
||||
when '-3'
|
||||
when -3
|
||||
csv_header << I18n.t('repositories.table.id')
|
||||
when '-4'
|
||||
when -4
|
||||
csv_header << I18n.t('repositories.table.row_name')
|
||||
when '-5'
|
||||
when -5
|
||||
csv_header << I18n.t('repositories.table.added_by')
|
||||
when '-6'
|
||||
when -6
|
||||
csv_header << I18n.t('repositories.table.added_on')
|
||||
when '-7'
|
||||
when -7
|
||||
csv_header << I18n.t('repositories.table.archived_by')
|
||||
when '-8'
|
||||
when -8
|
||||
csv_header << I18n.t('repositories.table.archived_on')
|
||||
when 'relationship'
|
||||
when -9
|
||||
csv_header << I18n.t('repositories.table.parents')
|
||||
csv_header << I18n.t('repositories.table.children')
|
||||
else
|
||||
|
@ -32,29 +32,29 @@ module RepositoryZipExport
|
|||
end
|
||||
csv_header << I18n.t('repositories.table.row_consumption') if add_consumption
|
||||
|
||||
CSV.generate(force_quotes: true) do |csv|
|
||||
CSV.generate do |csv|
|
||||
csv << csv_header
|
||||
rows.each do |row|
|
||||
csv_row = []
|
||||
column_ids.each do |c_id|
|
||||
case c_id
|
||||
when '-1', '-2'
|
||||
when -1, -2
|
||||
next
|
||||
when '-3'
|
||||
when -3
|
||||
csv_row << (repository.is_a?(RepositorySnapshot) ? row.parent_id : row.id)
|
||||
when '-4'
|
||||
when -4
|
||||
csv_row << row.name
|
||||
when '-5'
|
||||
when -5
|
||||
csv_row << row.created_by.full_name
|
||||
when '-6'
|
||||
when -6
|
||||
csv_row << I18n.l(row.created_at, format: :full)
|
||||
when '-7'
|
||||
when -7
|
||||
csv_row << (row.archived? && row.archived_by.present? ? row.archived_by.full_name : '')
|
||||
when '-8'
|
||||
when -8
|
||||
csv_row << (row.archived? && row.archived_on.present? ? I18n.l(row.archived_on, format: :full) : '')
|
||||
when 'relationship'
|
||||
csv_row << row.parent_repository_rows.map(&:code).join('; ')
|
||||
csv_row << row.child_repository_rows.map(&:code).join('; ')
|
||||
when -9
|
||||
csv_row << row.parent_repository_rows.map(&:code).join(' | ')
|
||||
csv_row << row.child_repository_rows.map(&:code).join(' | ')
|
||||
else
|
||||
cell = row.repository_cells.find_by(repository_column_id: c_id)
|
||||
|
||||
|
|
Loading…
Reference in a new issue