render headings

pull/414/head
Pete Matsyburka 10 months ago
parent 20d09f6dff
commit 8e3caae849

@ -26,9 +26,9 @@ module Submissions
submission.submitters.where(completed_at: nil) submission.submitters.where(completed_at: nil)
end end
submitters.preload(attachments_attachments: :blob).each do |s| submitters.preload(attachments_attachments: :blob).each_with_index do |s, index|
GenerateResultAttachments.fill_submitter_fields(s, submission.account, pdfs_index, GenerateResultAttachments.fill_submitter_fields(s, submission.account, pdfs_index,
with_signature_id:, is_flatten:) with_signature_id:, is_flatten:, with_headings: index.zero?)
end end
template = submission.template template = submission.template

@ -147,15 +147,18 @@ module Submissions
fill_submitter_fields(submitter, submitter.account, pdfs_index, with_signature_id:, is_flatten:) fill_submitter_fields(submitter, submitter.account, pdfs_index, with_signature_id:, is_flatten:)
end end
def fill_submitter_fields(submitter, account, pdfs_index, with_signature_id:, is_flatten:) def fill_submitter_fields(submitter, account, pdfs_index, with_signature_id:, is_flatten:, with_headings: nil)
cell_layouter = HexaPDF::Layout::TextLayouter.new(text_valign: :center, text_align: :center) cell_layouter = HexaPDF::Layout::TextLayouter.new(text_valign: :center, text_align: :center)
attachments_data_cache = {} attachments_data_cache = {}
return pdfs_index if submitter.submission.template_fields.blank? return pdfs_index if submitter.submission.template_fields.blank?
with_headings = find_last_submitter(submitter.submission, submitter:).blank? if with_headings.nil?
submitter.submission.template_fields.each do |field| submitter.submission.template_fields.each do |field|
next if field['submitter_uuid'] != submitter.uuid next if field['type'] == 'heading' && !with_headings
next if field['submitter_uuid'] != submitter.uuid && field['type'] != 'heading'
field.fetch('areas', []).each do |area| field.fetch('areas', []).each do |area|
pdf = pdfs_index[area['attachment_uuid']] pdf = pdfs_index[area['attachment_uuid']]
@ -188,6 +191,7 @@ module Submissions
font = pdf.fonts.add(field.dig('preferences', 'font').presence || FONT_NAME) font = pdf.fonts.add(field.dig('preferences', 'font').presence || FONT_NAME)
value = submitter.values[field['uuid']] value = submitter.values[field['uuid']]
value = field['default_value'] if field['type'] == 'heading'
text_align = field.dig('preferences', 'align').to_s.to_sym.presence || text_align = field.dig('preferences', 'align').to_s.to_sym.presence ||
(value.to_s.match?(RTL_REGEXP) ? :right : :left) (value.to_s.match?(RTL_REGEXP) ? :right : :left)

Loading…
Cancel
Save