diff --git a/src/submissions/__init__.py b/src/submissions/__init__.py index 3dcdfea..ab29be3 100644 --- a/src/submissions/__init__.py +++ b/src/submissions/__init__.py @@ -4,7 +4,7 @@ from pathlib import Path # Version of the realpython-reader package __project__ = "submissions" -__version__ = "202305.2b" +__version__ = "202305.3b" __author__ = {"name":"Landon Wark", "email":"Landon.Wark@phac-aspc.gc.ca"} __copyright__ = "2022-2023, Government of Canada" diff --git a/src/submissions/frontend/custom_widgets/sub_details.py b/src/submissions/frontend/custom_widgets/sub_details.py index 7c0a988..9240d2b 100644 --- a/src/submissions/frontend/custom_widgets/sub_details.py +++ b/src/submissions/frontend/custom_widgets/sub_details.py @@ -1,6 +1,7 @@ ''' Contains widgets specific to the submission summary and submission details. ''' +import base64 from datetime import datetime from PyQt6 import QtPrintSupport from PyQt6.QtWidgets import ( @@ -238,6 +239,7 @@ class SubmissionDetails(QDialog): Renders submission to html, then creates and saves .pdf file to user selected file. """ template = env.get_template("submission_details.html") + self.base_dict['barcode'] = base64.b64encode(make_plate_barcode(self.base_dict['Plate Number'], width=120, height=30)).decode('utf-8') html = template.render(sub=self.base_dict) home_dir = Path(self.ctx["directory_path"]).joinpath(f"Submission_Details_{self.base_dict['Plate Number']}.pdf").resolve().__str__() fname = Path(QFileDialog.getSaveFileName(self, "Save File", home_dir, filter=".pdf")[0]) diff --git a/src/submissions/frontend/main_window_functions.py b/src/submissions/frontend/main_window_functions.py index 4fc2095..1a094f1 100644 --- a/src/submissions/frontend/main_window_functions.py +++ b/src/submissions/frontend/main_window_functions.py @@ -35,7 +35,6 @@ from .custom_widgets.pop_ups import AlertPop, QuestionAsker from .custom_widgets import ReportDatePicker, ReagentTypeForm from .custom_widgets.misc import ImportReagent from .visualizations.control_charts import create_charts, construct_html -import asyncio logger = logging.getLogger(f"submissions.{__name__}") diff --git a/src/submissions/frontend/visualizations/barcode.py b/src/submissions/frontend/visualizations/barcode.py index 16ca96c..5f1b1e1 100644 --- a/src/submissions/frontend/visualizations/barcode.py +++ b/src/submissions/frontend/visualizations/barcode.py @@ -1,8 +1,8 @@ -from reportlab.graphics.barcode import createBarcodeDrawing, createBarcodeImageInMemory +from reportlab.graphics.barcode import createBarcodeImageInMemory from reportlab.graphics.shapes import Drawing from reportlab.lib.units import mm -def make_plate_barcode(text:str) -> Drawing: +def make_plate_barcode(text:str, width:int=100, height:int=25) -> Drawing: # return createBarcodeDrawing('Code128', value=text, width=200, height=50, humanReadable=True) - return createBarcodeImageInMemory('Code128', value=text, width=100*mm, height=25*mm, humanReadable=True, format="png") \ No newline at end of file + return createBarcodeImageInMemory('Code128', value=text, width=width*mm, height=height*mm, humanReadable=True, format="png") \ No newline at end of file diff --git a/src/submissions/templates/submission_details.html b/src/submissions/templates/submission_details.html index 89d46dd..95f386c 100644 --- a/src/submissions/templates/submission_details.html +++ b/src/submissions/templates/submission_details.html @@ -3,9 +3,9 @@ Submission Details for {{ sub['Plate Number'] }} - {% set excluded = ['reagents', 'samples', 'controls', 'ext_info', 'pcr_info', 'comments'] %} + {% set excluded = ['reagents', 'samples', 'controls', 'ext_info', 'pcr_info', 'comments', 'barcode'] %} -

Submission Details for {{ sub['Plate Number'] }}

+

Submission Details for {{ sub['Plate Number'] }}

   

{% for key, value in sub.items() if key not in excluded %} {% if loop.index == 1 %}    {{ key }}: {% if key=='Cost' %}{{ "${:,.2f}".format(value) }}{% else %}{{ value }}{% endif %}