mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-03-03 19:24:48 +08:00
Fix forms export [SCI-11479]
This commit is contained in:
parent
caff6ee1e9
commit
15c7aedad3
3 changed files with 27 additions and 10 deletions
|
@ -4,6 +4,8 @@ require 'caxlsx'
|
|||
|
||||
class FormResponsesZipExportJob < ZipExportJob
|
||||
include StringUtility
|
||||
include BreadcrumbsHelper
|
||||
include Rails.application.routes.url_helpers
|
||||
|
||||
private
|
||||
|
||||
|
@ -40,7 +42,9 @@ class FormResponsesZipExportJob < ZipExportJob
|
|||
form_fields.each do |form_field|
|
||||
form_field_value = form_field_values.find_by(form_field_id: form_field.id, latest: true)
|
||||
if form_field_value.present?
|
||||
if form_field_value.value_in_range?
|
||||
if form_field_value.not_applicable
|
||||
row.add_cell I18n.t('forms.export.values.not_applicable')
|
||||
elsif form_field_value.value_in_range?
|
||||
row.add_cell form_field_value.formatted
|
||||
else
|
||||
row.add_cell form_field_value.formatted, style: warning_bg_style
|
||||
|
@ -74,12 +78,13 @@ class FormResponsesZipExportJob < ZipExportJob
|
|||
def breadcrumbs(form_response)
|
||||
return '' unless (my_module = form_response&.step&.my_module)
|
||||
|
||||
[
|
||||
"#{my_module.project.name} (#{my_module.project.code})",
|
||||
"#{my_module.experiment.name} (#{my_module.experiment.code})",
|
||||
"#{my_module.name} (#{my_module.code})",
|
||||
breadcrumbs = generate_breadcrumbs(my_module, []).map { |i| "#{i[:name]}(#{i[:code]})" }
|
||||
|
||||
breadcrumbs += [
|
||||
my_module.protocol.name || I18n.t('search.index.untitled_protocol'),
|
||||
form_response.step.name || I18n.t('protocols.steps.default_name')
|
||||
].join('/ ')
|
||||
]
|
||||
|
||||
breadcrumbs.join('/ ')
|
||||
end
|
||||
end
|
||||
|
|
|
@ -19,6 +19,10 @@ class FormDatetimeFieldValue < FormFieldValue
|
|||
end
|
||||
|
||||
def formatted
|
||||
range? ? [datetime&.utc, datetime_to&.utc].join(' - ') : datetime&.utc.to_s
|
||||
if form_field.data['time']
|
||||
range? ? [datetime&.utc, datetime_to&.utc].join(' - ') : datetime&.utc.to_s
|
||||
else
|
||||
range? ? [datetime&.to_date, datetime_to&.to_date].join(' - ') : datetime&.to_date.to_s
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -8,7 +8,11 @@ module BreadcrumbsHelper
|
|||
|
||||
case subject
|
||||
when Project
|
||||
parent = subject.team
|
||||
if subject.project_folder
|
||||
parent = subject.project_folder
|
||||
else
|
||||
parent = subject.team
|
||||
end
|
||||
url = project_path(subject)
|
||||
when Experiment
|
||||
parent = subject.project
|
||||
|
@ -29,7 +33,11 @@ module BreadcrumbsHelper
|
|||
view_mode = subject.archived? ? 'archived' : 'active'
|
||||
url = my_module_results_path(subject.my_module, view_mode:)
|
||||
when ProjectFolder
|
||||
parent = subject.team
|
||||
if subject.parent_folder
|
||||
parent = subject.parent_folder
|
||||
else
|
||||
parent = subject.team
|
||||
end
|
||||
url = project_folder_path(subject)
|
||||
when RepositoryBase
|
||||
parent = subject.team
|
||||
|
@ -71,7 +79,7 @@ module BreadcrumbsHelper
|
|||
url = projects_path(team: subject.id)
|
||||
end
|
||||
|
||||
breadcrumbs << { name: subject.name, url: } if subject.name.present?
|
||||
breadcrumbs << { name: subject.name, code: subject.try(:code), url:} if subject.name.present?
|
||||
|
||||
if parent
|
||||
generate_breadcrumbs(parent, breadcrumbs)
|
||||
|
|
Loading…
Reference in a new issue