From 2accebcc6ea04114db75382ef1be8f16e6d581c1 Mon Sep 17 00:00:00 2001 From: Julien Portalier Date: Mon, 16 Jan 2023 23:47:04 +0100 Subject: [PATCH] Fix: use Prawn instead of slow+abandoned WickedPDF/wkhtmltopdf --- Dockerfile | 16 +- Dockerfile-dev | 40 +--- Gemfile | 3 +- Gemfile.lock | 14 +- app/assets/fonts/Roboto/LICENSE.txt | 202 ++++++++++++++++++ app/assets/fonts/Roboto/RobotoMono-Bold.ttf | Bin 0 -> 87008 bytes .../fonts/Roboto/RobotoMono-Regular.ttf | Bin 0 -> 86908 bytes app/assets/stylesheets/_barcode_card.scss | 54 ----- app/assets/stylesheets/pdf.scss | 5 - app/controllers/boxes_controller.rb | 15 +- app/controllers/samples_controller.rb | 30 +-- app/documents/base_pdf.rb | 20 ++ app/documents/box_label_pdf.rb | 24 +++ app/documents/label_pdf.rb | 65 ++++++ app/documents/sample_label_pdf.rb | 11 + app/documents/samples_label_pdf.rb | 15 ++ app/helpers/barcode_helper.rb | 2 +- app/views/boxes/barcode.pdf.haml | 14 -- app/views/boxes/print.pdf.haml | 4 - app/views/layouts/pdf.html.haml | 8 - app/views/samples/barcode.pdf.haml | 18 -- app/views/samples/bulk_print.pdf.haml | 2 - config/application.rb | 2 +- config/initializers/wicked_pdf.rb | 27 --- 24 files changed, 377 insertions(+), 214 deletions(-) create mode 100644 app/assets/fonts/Roboto/LICENSE.txt create mode 100644 app/assets/fonts/Roboto/RobotoMono-Bold.ttf create mode 100644 app/assets/fonts/Roboto/RobotoMono-Regular.ttf delete mode 100644 app/assets/stylesheets/pdf.scss create mode 100644 app/documents/base_pdf.rb create mode 100644 app/documents/box_label_pdf.rb create mode 100644 app/documents/label_pdf.rb create mode 100644 app/documents/sample_label_pdf.rb create mode 100644 app/documents/samples_label_pdf.rb delete mode 100644 app/views/boxes/barcode.pdf.haml delete mode 100644 app/views/boxes/print.pdf.haml delete mode 100644 app/views/layouts/pdf.html.haml delete mode 100644 app/views/samples/barcode.pdf.haml delete mode 100644 app/views/samples/bulk_print.pdf.haml delete mode 100644 config/initializers/wicked_pdf.rb diff --git a/Dockerfile b/Dockerfile index 7b9745aba..2f3531282 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,19 +3,9 @@ FROM ruby:2.4 # Cleanup expired Let's Encrypt CA (Sept 30, 2021) RUN sed -i '/^mozilla\/DST_Root_CA_X3/s/^/!/' /etc/ca-certificates.conf && update-ca-certificates -f -RUN \ - apt-get update && \ - apt-get install -y \ - cron \ - # wkhtmltopdf dependencies \ - xfonts-75dpi \ - xfonts-base \ - && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* - -# wkhtmltopdf -RUN curl -L https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.stretch_amd64.deb --output wkhtmltopdf.deb && \ - dpkg -i wkhtmltopdf.deb && \ - rm -f wkhtmltopdf.deb +RUN apt-get update && \ + apt-get install -y cron && \ + apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # Create a user for the web app. RUN addgroup --gid 9999 app && \ diff --git a/Dockerfile-dev b/Dockerfile-dev index ca7aef1b1..cc4afcccb 100644 --- a/Dockerfile-dev +++ b/Dockerfile-dev @@ -1,5 +1,12 @@ FROM ruby:2.4 +# Cleanup expired Let's Encrypt CA (Sept 30, 2021) +RUN sed -i '/^mozilla\/DST_Root_CA_X3/s/^/!/' /etc/ca-certificates.conf && update-ca-certificates -f + +RUN apt-get update && \ + apt-get install -y cron default-mysql-client && \ + apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + # ENV POIROT_STDOUT true # ENV POIROT_SUPPRESS_RAILS_LOG true # ENV NNDD_VERSION "cdx-0.11-pre7" @@ -8,36 +15,3 @@ FROM ruby:2.4 # RUN \ # mkdir -p /app/public/ && \ # curl -L https://github.com/instedd/notifiable-diseases/releases/download/$NNDD_VERSION/nndd.tar.gz | tar -xzv -C /app/public/ - -ENV LOCAL_SHARE "/usr/local/share" - -# Cleanup expired Let's Encrypt CA (Sept 30, 2021) -RUN sed -i '/^mozilla\/DST_Root_CA_X3/s/^/!/' /etc/ca-certificates.conf && update-ca-certificates -f - -RUN \ - apt-get update && \ - apt-get install -y \ - build-essential \ - chrpath \ - cron \ - libssl-dev \ - libxft-dev \ - libfreetype6 \ - libfreetype6-dev \ - libfontconfig1 \ - libfontconfig1-dev \ - # wkhtmltopdf dependencies \ - xfonts-75dpi \ - xfonts-base \ - imagemagick \ - ghostscript \ - libgs-dev \ - default-mysql-client \ - && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* - -ARG TARGETARCH - -# wkhtmltopdf -RUN curl -L https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.buster_${TARGETARCH}.deb --output wkhtmltopdf.deb && \ - dpkg -i wkhtmltopdf.deb && \ - rm -f wkhtmltopdf.deb diff --git a/Gemfile b/Gemfile index c329177b9..c7452a85e 100644 --- a/Gemfile +++ b/Gemfile @@ -31,7 +31,8 @@ gem 'csv_builder', '~> 2.1' gem 'haml-rails', '~> 0.9' gem 'jbuilder', '~> 2.5' gem 'view_components', git: 'https://github.com/manastech/rails-view_components.git', branch: 'master' -gem 'wicked_pdf', '~> 2.1' +gem 'prawn' +gem 'prawn-svg' # Authentication # gem 'bcrypt-ruby', '~> 3.1.2' diff --git a/Gemfile.lock b/Gemfile.lock index 770628389..755563a90 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -375,6 +375,14 @@ GEM parallel paranoia (2.4.3) activerecord (>= 4.0, < 6.2) + pdf-core (0.7.0) + prawn (2.2.2) + pdf-core (~> 0.7.0) + ttfunk (~> 1.5) + prawn-svg (0.32.0) + css_parser (~> 1.6) + prawn (>= 0.11.1, < 3) + rexml (~> 3.2) premailer (1.12.1) addressable css_parser (>= 1.6.0) @@ -544,6 +552,7 @@ GEM tilt (2.0.11) timecop (0.9.6) trollop (2.9.10) + ttfunk (1.6.2.1) turbolinks (2.5.4) coffee-rails tzinfo (1.2.10) @@ -570,8 +579,6 @@ GEM websocket-extensions (0.1.5) whenever (1.0.0) chronic (>= 0.6.3) - wicked_pdf (2.6.3) - activesupport xpath (3.2.0) nokogiri (~> 1.8) @@ -629,6 +636,8 @@ DEPENDENCIES parallel_tests (~> 3.5.1) paranoia (< 2.5.0) poirot_rails! + prawn + prawn-svg premailer-rails (< 1.10) pry-byebug (< 3.10.0) pry-rescue @@ -666,7 +675,6 @@ DEPENDENCIES web-console (< 4.0) webmock (~> 2.3.1) whenever (~> 1.0) - wicked_pdf (~> 2.1) BUNDLED WITH 1.17.3 diff --git a/app/assets/fonts/Roboto/LICENSE.txt b/app/assets/fonts/Roboto/LICENSE.txt new file mode 100644 index 000000000..75b52484e --- /dev/null +++ b/app/assets/fonts/Roboto/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/app/assets/fonts/Roboto/RobotoMono-Bold.ttf b/app/assets/fonts/Roboto/RobotoMono-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8eff26c1e4c2db1fddb6bb4214cb9210ecc73b49 GIT binary patch literal 87008 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 SamplePresenter.new(@sample, request.format) }, - margin: { top: 0, bottom: 0, left: 0, right: 0 }, - page_width: "1in", - page_height: "1in", - show_as_html: params.key?("debug") + sample = Sample.find(params[:id]) + return unless authorize_resource(sample, READ_SAMPLE) + + send_data SampleLabelPdf.render(sample), + filename: "cdx_sample_#{sample.uuid}.pdf", + type: "application/pdf", + disposition: "inline" end def bulk_print samples = Sample.where(id: params[:sample_ids]) return unless authorize_resources(samples, READ_SAMPLE) - render pdf: "cdx_samples_#{samples.size}_#{DateTime.now.strftime("%Y%m%d-%H%M")}", - template: "samples/bulk_print.pdf", - layout: "layouts/pdf.html", - locals: { samples: samples.preload(:sample_identifiers).map { |s| SamplePresenter.new(s, request.format) } }, - margin: { top: 0, bottom: 0, left: 0, right: 0 }, - page_width: "1in", - page_height: "1in", - show_as_html: params.key?("debug") + send_data SamplesLabelPdf.render(samples.preload(:box, :sample_identifiers)), + filename: "cdx_samples_#{samples.size}_#{DateTime.now.strftime("%Y%m%d-%H%M")}", + type: "application/pdf", + disposition: "inline" end def edit diff --git a/app/documents/base_pdf.rb b/app/documents/base_pdf.rb new file mode 100644 index 000000000..94aacffbd --- /dev/null +++ b/app/documents/base_pdf.rb @@ -0,0 +1,20 @@ +class BasePdf + include Prawn::View + + def self.render(*args) + view = new(*args) + view.setup + view.template + view.render + end + + def assets_path + @assets_path ||= Rails.root.join("app/assets") + end + + def setup + end + + def template + end +end diff --git a/app/documents/box_label_pdf.rb b/app/documents/box_label_pdf.rb new file mode 100644 index 000000000..a79d1c1d9 --- /dev/null +++ b/app/documents/box_label_pdf.rb @@ -0,0 +1,24 @@ +class BoxLabelPdf < SamplesLabelPdf + def initialize(box, samples) + @box = box + super(samples) + end + + def template + render_uuid(@box.uuid) + render_box_details + render_cdx_logo + + start_new_page + super + end + + protected + + def render_box_details + text_lines [ + @box.institution.name.truncate(22), + "#{@box.purpose} (#{@samples.size} samples)", + ] + end +end diff --git a/app/documents/label_pdf.rb b/app/documents/label_pdf.rb new file mode 100644 index 000000000..6a0b7cc01 --- /dev/null +++ b/app/documents/label_pdf.rb @@ -0,0 +1,65 @@ +class LabelPdf < BasePdf + def document + @document ||= Prawn::Document.new( + top_margin: 1.8, + left_margin: 2.4, + right_margin: 2, + bottom_margin: 0, + page_size: [72, 72], # 1in == 72pt + print_scaling: :none + ) + end + + def setup + font_families.update("RobotoMono" => { + normal: assets_path.join("fonts/Roboto/RobotoMono-Regular.ttf"), + bold: assets_path.join("fonts/Roboto/RobotoMono-Bold.ttf"), + }) + font "RobotoMono" + font_size 5.3 + default_leading 0 + end + + protected + + def render_uuid(uuid) + svg qrcode_svg(uuid), width: 27.4, height: 27.4, position: :center, enable_web_requests: false + move_down 1.6 + text_line uuid, align: :center, leading: 0.2 + move_up 0.6 + end + + def qrcode_svg(value) + barcode = Barby::QrCode.new(value, level: :m) + outputter = Barby::SvgOutputter.new(barcode) + outputter.xdim = 2 + outputter.margin = 0 + outputter.to_svg + end + + def render_sample_details(sample) + text_lines [ + "I.N. #{sample.isolate_name}".truncate(22), + "I.M. #{sample.inactivation_method}".truncate(22), + "P.D. #{sample.date_produced.strftime("%m/%d/%Y")}", + ], leading: -0.5 + end + + def render_cdx_logo + bounding_box [0.6, 7], width: bounds.right do + image assets_path.join("images/cdx-logo-bw.png"), width: 8.9, height: 4.1 + move_up 4.5 + text "https://cdx.io", indent_paragraphs: 10.8, character_spacing: -0.07, size: 4.1 + end + end + + def text_lines(lines, leading: -0.5, **options) + lines.each_with_index do |line, index| + text_line line, leading: leading, **options + end + end + + def text_line(line, **options) + text line, character_spacing: -0.2, **options + end +end diff --git a/app/documents/sample_label_pdf.rb b/app/documents/sample_label_pdf.rb new file mode 100644 index 000000000..72949aca9 --- /dev/null +++ b/app/documents/sample_label_pdf.rb @@ -0,0 +1,11 @@ +class SampleLabelPdf < LabelPdf + def initialize(sample) + @sample = SamplePresenter.new(sample, Mime::Type.lookup("application/pdf")) + end + + def template + render_uuid(@sample.uuid) + render_sample_details(@sample) + render_cdx_logo + end +end diff --git a/app/documents/samples_label_pdf.rb b/app/documents/samples_label_pdf.rb new file mode 100644 index 000000000..f5190d630 --- /dev/null +++ b/app/documents/samples_label_pdf.rb @@ -0,0 +1,15 @@ +class SamplesLabelPdf < LabelPdf + def initialize(samples) + format = Mime::Type.lookup("application/pdf") + @samples = samples.map { |sample| SamplePresenter.new(sample, format) } + end + + def template + @samples.each_with_index do |sample, index| + start_new_page unless index == 0 + render_uuid(sample.uuid) + render_sample_details(sample) + render_cdx_logo + end + end +end diff --git a/app/helpers/barcode_helper.rb b/app/helpers/barcode_helper.rb index 777dff50f..3ab899621 100644 --- a/app/helpers/barcode_helper.rb +++ b/app/helpers/barcode_helper.rb @@ -14,7 +14,7 @@ def barcode(code) def image_barcode(code) barcode = Barby::Code93.new(code) - file = Tempfile.new(['barcode', '.png']) + file = Tempfile.new(['barcode', '.png'], encoding: "BINARY") outputter = Barby::PngOutputter.new(barcode) outputter.xdim = 2 file.write outputter.to_png diff --git a/app/views/boxes/barcode.pdf.haml b/app/views/boxes/barcode.pdf.haml deleted file mode 100644 index 0b467bddc..000000000 --- a/app/views/boxes/barcode.pdf.haml +++ /dev/null @@ -1,14 +0,0 @@ -.barcode-card-print - .barcode-content - .barcode - = image_tag barcode_img_data_url(box.uuid) - .code - .uuid - #{box.uuid} - .code - #{(box.institution.name).truncate(22)} - .code - #{box.purpose} (#{box.samples.count} samples) - .logo - = image_tag wicked_pdf_asset_base64('cdx-logo-bw.png') - .label https://cdx.io diff --git a/app/views/boxes/print.pdf.haml b/app/views/boxes/print.pdf.haml deleted file mode 100644 index 1f8324638..000000000 --- a/app/views/boxes/print.pdf.haml +++ /dev/null @@ -1,4 +0,0 @@ -= render template: "boxes/barcode", locals: { box: box } - -- samples.each do |sample| - = render template: "samples/barcode", locals: { sample: sample } diff --git a/app/views/layouts/pdf.html.haml b/app/views/layouts/pdf.html.haml deleted file mode 100644 index 89de282c6..000000000 --- a/app/views/layouts/pdf.html.haml +++ /dev/null @@ -1,8 +0,0 @@ -!!! -%html - %head - %title Connected Diagnostics Platform - = stylesheet_link_tag wicked_pdf_asset_base64("pdf") - = wicked_pdf_stylesheet_link_tag "https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;700&display=swap" - %body - = yield diff --git a/app/views/samples/barcode.pdf.haml b/app/views/samples/barcode.pdf.haml deleted file mode 100644 index a5c5e848c..000000000 --- a/app/views/samples/barcode.pdf.haml +++ /dev/null @@ -1,18 +0,0 @@ -.barcode-card-print - .barcode-content - -# .title - -# = sample.institution - .barcode - = image_tag barcode_img_data_url(sample.uuid) - .code - .uuid - #{sample.uuid} - .code - I.N. #{sample.isolate_name} - .code - I.M. #{sample.inactivation_method} - .code - P.D. #{sample.date_produced_description} - .logo - = image_tag wicked_pdf_asset_base64('cdx-logo-bw.png') - .label https://cdx.io diff --git a/app/views/samples/bulk_print.pdf.haml b/app/views/samples/bulk_print.pdf.haml deleted file mode 100644 index 731036c25..000000000 --- a/app/views/samples/bulk_print.pdf.haml +++ /dev/null @@ -1,2 +0,0 @@ -- samples.each do |sample| - = render template: "samples/barcode.pdf", locals: { sample: sample } diff --git a/config/application.rb b/config/application.rb index c6b234bd4..b6c52ec0e 100644 --- a/config/application.rb +++ b/config/application.rb @@ -28,7 +28,7 @@ class Application < Rails::Application g.assets = false end config.autoload_paths << Rails.root.join("features", "support", "page_objects") - config.autoload_paths += %W(#{config.root}/lib) + config.autoload_paths += %W(#{config.root}/documents #{config.root}/lib) config.assets.precompile += %w( mailer.css ) diff --git a/config/initializers/wicked_pdf.rb b/config/initializers/wicked_pdf.rb deleted file mode 100644 index e7a2d3302..000000000 --- a/config/initializers/wicked_pdf.rb +++ /dev/null @@ -1,27 +0,0 @@ -# WickedPDF Global Configuration -# -# Use this to set up shared configuration options for your entire application. -# Any of the configuration options shown here can also be applied to single -# models by passing arguments to the `render :pdf` call. -# -# To learn more, check out the README: -# -# https://github.com/mileszs/wicked_pdf/blob/master/README.md - -WickedPdf.config = { - # Path to the wkhtmltopdf executable: This usually isn't needed if using - # one of the wkhtmltopdf-binary family of gems. - exe_path: '/usr/local/bin/wkhtmltopdf', - # or - # exe_path: Gem.bin_path('wkhtmltopdf-binary', 'wkhtmltopdf') - - # Layout file to be used for all PDFs - # (but can be overridden in `render :pdf` calls) - # layout: 'pdf.html', - - # Using wkhtmltopdf without an X server can be achieved by enabling the - # 'use_xvfb' flag. This will wrap all wkhtmltopdf commands around the - # 'xvfb-run' command, in order to simulate an X server. - # - # use_xvfb: true, -}