mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-09-13 08:34:49 +08:00
Merge pull request #6406 from okriuchykhin/ok_SCI_9461_v2
Fix file preview generation issues in export all [SCI-9461]
This commit is contained in:
commit
e131163f11
4 changed files with 12 additions and 19 deletions
|
@ -187,24 +187,15 @@ class TeamZipExportJob < ZipExportJob
|
|||
def prepare_preview(asset)
|
||||
if asset.previewable? && !asset.list?
|
||||
preview = asset.inline? ? asset.large_preview : asset.medium_preview
|
||||
if preview.is_a?(ActiveStorage::Preview)
|
||||
return unless preview.image.attached?
|
||||
return unless preview.processed?
|
||||
|
||||
begin
|
||||
file_name = preview.image.filename.to_s
|
||||
file_data = preview.image.download
|
||||
else
|
||||
file_name = preview.blob.filename.to_s
|
||||
file_data = nil
|
||||
|
||||
ActiveRecord::Base.transaction(requires_new: true) do
|
||||
file_data = preview.processed.service.download(preview.key)
|
||||
# handle files not processable by Vips (no preview available) or missing
|
||||
rescue Vips::Error, ActiveStorage::FileNotFoundError => e
|
||||
Rails.logger.error(e.message)
|
||||
Rails.logger.error(e.backtrace.join("\n"))
|
||||
raise ActiveRecord::Rollback
|
||||
end
|
||||
return nil if file_data.blank?
|
||||
rescue ActiveStorage::FileNotFoundError => e
|
||||
Rails.logger.error(e.message)
|
||||
Rails.logger.error(e.backtrace.join("\n"))
|
||||
return
|
||||
end
|
||||
|
||||
{
|
||||
|
|
|
@ -16,6 +16,8 @@ class ZipExportJob < ApplicationJob
|
|||
@zip_export.zip_file.attach(io: File.open(full_zip_name), filename: zip_name)
|
||||
generate_notification!
|
||||
end
|
||||
rescue Errno::ENOENT => e
|
||||
Rails.logger.error(e.message)
|
||||
ensure
|
||||
FileUtils.rm_rf([zip_input_dir, full_zip_name], secure: true)
|
||||
I18n.backend.date_format = nil
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="report-element-children">
|
||||
<%= render partial: 'reports/elements/my_module_protocol_element', locals: { protocol: my_module.protocol, export_all: true } %>
|
||||
<%= render partial: 'reports/elements/my_module_protocol_element', locals: { protocol: my_module.protocol, export_all: export_all } %>
|
||||
|
||||
<% filter_steps_for_report(my_module.protocol.steps, @settings).order(:position).each do |step| %>
|
||||
<%= render partial: 'reports/elements/my_module_step_element', locals: { step: step, export_all: export_all } %>
|
||||
|
@ -85,7 +85,7 @@
|
|||
<% if element.orderable_type == "ResultTable" %>
|
||||
<%= render partial: 'reports/elements/my_module_result_table_element', locals: { result: result, export_all: export_all, element: element} %>
|
||||
<% elsif element.orderable_type == "ResultText" %>
|
||||
<%= render partial: 'reports/elements/my_module_result_text_element', locals: { result: result, export_all: true, element: element } %>
|
||||
<%= render partial: 'reports/elements/my_module_result_text_element', locals: { result: result, export_all: export_all, element: element } %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
|
@ -110,7 +110,7 @@
|
|||
|
||||
<% if @settings.dig('task', 'activities') %>
|
||||
<div class="report-element-children">
|
||||
<%= render partial: 'reports/elements/my_module_activity_element', locals: { my_module: my_module, export_all: true } %>
|
||||
<%= render partial: 'reports/elements/my_module_activity_element', locals: { my_module: my_module, export_all: export_all } %>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
<% end %>
|
||||
<% if @settings.dig('task', 'protocol', 'step_files') %>
|
||||
<% assets.each do |asset| %>
|
||||
<%= render partial: 'reports/elements/step_asset_element', locals: { asset: asset, export_all: false } %>
|
||||
<%= render partial: 'reports/elements/step_asset_element', locals: { asset: asset, export_all: export_all } %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<% if @settings.dig('task', 'protocol', 'step_comments') %>
|
||||
|
|
Loading…
Add table
Reference in a new issue