# frozen_string_literal: true module PdfDocuments class CustomerReport < Base private def generate logo @prawn_document.formatted_text_box [ { text: "Dieses Dokument wurd am #{Time.current.strftime('%d %B %Y')} um #{Time.current.strftime('%H:%M:%S')} erstellt.", size: 8, align: :right } ], align: :right heading1 params.report.name rich_text params.report.comment params.report.export[:elements].each.with_index(1) do |(element, success_criteria), element_index| new_page if element_index > 1 without_page_break do heading2 "#{element_index} #{element.title}" bold("#{element.page.path}") safe_display(element.screenshot) { image(_1.variant(:thumbnail), height: 160) && move_down(5) } end rich_text element.description move_down(10) success_criteria.each.with_index(1) do |success_criterion, sc_index| success_criterion_row(success_criterion, [ element_index, sc_index ]) end end end private def success_criterion_row(success_criterion, index) heading3 "#{index.join(".")} #{success_criterion.title}" safe_display(success_criterion.test_comment) do without_page_break do heading4 "Kommentar" rich_text success_criterion.test_comment end end safe_display(success_criterion.quick_criterion) do without_page_break do heading4 "Kriterium" rich_text success_criterion.quick_criterion end end safe_display(success_criterion.quick_fail) do without_page_break do heading4 "Fail" rich_text success_criterion.quick_fail end end safe_display(success_criterion.quick_fix) do without_page_break do heading4 "Fix" rich_text success_criterion.quick_fix end end heading4("Protokollnummer") text(success_criterion.number) move_down(10) end end end