mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-11-10 00:11:22 +08:00
Merge pull request #2319 from urbanrotnik/ur-sci-4253-report-docx-fix
Add custom method for repository report JSON data [SCI-4253]
This commit is contained in:
commit
af082f530a
3 changed files with 24 additions and 4 deletions
|
|
@ -413,6 +413,26 @@ class MyModule < ApplicationRecord
|
||||||
{ headers: headers, data: records }
|
{ headers: headers, data: records }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def repository_docx_json(repository_id)
|
||||||
|
headers = [
|
||||||
|
I18n.t('repositories.table.id'),
|
||||||
|
I18n.t('repositories.table.row_name'),
|
||||||
|
I18n.t('repositories.table.added_on'),
|
||||||
|
I18n.t('repositories.table.added_by')
|
||||||
|
]
|
||||||
|
custom_columns = []
|
||||||
|
repository = Repository.find_by(id: repository_id)
|
||||||
|
return false unless repository
|
||||||
|
|
||||||
|
repository.repository_columns.order(:id).each do |column|
|
||||||
|
headers.push(column.name)
|
||||||
|
custom_columns.push(column.id)
|
||||||
|
end
|
||||||
|
|
||||||
|
records = repository_rows.where(repository_id: repository_id).select(:id, :name, :created_at, :created_by_id)
|
||||||
|
{ headers: headers, rows: records, custom_columns: custom_columns }
|
||||||
|
end
|
||||||
|
|
||||||
def deep_clone(current_user)
|
def deep_clone(current_user)
|
||||||
deep_clone_to_experiment(current_user, experiment)
|
deep_clone_to_experiment(current_user, experiment)
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,8 @@ module Reports::Docx::DrawMyModuleRepository
|
||||||
return unless my_module
|
return unless my_module
|
||||||
|
|
||||||
repository_id = subject['id']['repository_id']
|
repository_id = subject['id']['repository_id']
|
||||||
repository_data = my_module.repository_json(repository_id, subject['sort_order'], @user)
|
repository_data = my_module.repository_docx_json(repository_id)
|
||||||
return false unless repository_data[:data].any?
|
return false unless repository_data[:rows].any?
|
||||||
|
|
||||||
repository = ::Repository.find(repository_id)
|
repository = ::Repository.find(repository_id)
|
||||||
table = prepare_row_columns(repository_data)
|
table = prepare_row_columns(repository_data)
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ module Reports::Docx::RepositoryHelper
|
||||||
|
|
||||||
def prepare_row_columns(repository_data)
|
def prepare_row_columns(repository_data)
|
||||||
result = [repository_data[:headers]]
|
result = [repository_data[:headers]]
|
||||||
repository_data[:data].repository_rows.each do |record|
|
repository_data[:rows].each do |record|
|
||||||
row = []
|
row = []
|
||||||
row.push(record.id)
|
row.push(record.id)
|
||||||
row.push(escape_input(record.name))
|
row.push(escape_input(record.name))
|
||||||
|
|
@ -18,7 +18,7 @@ module Reports::Docx::RepositoryHelper
|
||||||
cell_values[cell.repository_column_id] = cell.value.formatted
|
cell_values[cell.repository_column_id] = cell.value.formatted
|
||||||
end
|
end
|
||||||
|
|
||||||
repository_data[:data].mappings.each do |column_id, _position|
|
repository_data[:custom_columns].each do |column_id|
|
||||||
value = cell_values[column_id]
|
value = cell_values[column_id]
|
||||||
row.push(value)
|
row.push(value)
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue