From 7f8042007f75fc97becff8e0b493f1c887085c7d Mon Sep 17 00:00:00 2001 From: Ramon Bartl Date: Tue, 26 Jul 2022 22:29:54 +0200 Subject: [PATCH 1/4] Refactor report filename generation to own method --- src/bika/lims/browser/publish/emailview.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/bika/lims/browser/publish/emailview.py b/src/bika/lims/browser/publish/emailview.py index b1f34ba081..d0675eb205 100644 --- a/src/bika/lims/browser/publish/emailview.py +++ b/src/bika/lims/browser/publish/emailview.py @@ -319,8 +319,7 @@ def email_attachments(self): logger.error("Skipping empty PDF for report {}" .format(report.getId())) continue - sample = report.getAnalysisRequest() - filename = "{}.pdf".format(api.get_id(sample)) + filename = self.get_report_filename(report) filedata = pdf.data attachments.append( mailapi.to_email_attachment(filedata, filename)) @@ -550,7 +549,7 @@ def get_report_data(self, report): attachments_data = map(self.get_attachment_data, attachments) pdf = self.get_pdf(report) filesize = "{} Kb".format(self.get_filesize(pdf)) - filename = "{}.pdf".format(sample.getId()) + filename = self.get_report_filename(report) return { "sample": sample, @@ -700,6 +699,12 @@ def get_filesize(self, f): except (POSKeyError, TypeError, AttributeError): return 0.0 + def get_report_filename(self, report): + """Generate the filename for the sample PFD + """ + sample = report.getAnalysisRequest() + return "{}.pdf".format(api.get_id(sample)) + def get_pdf(self, obj): """Get the report PDF """ From 844056fb9f4726f490b68e41faae92bc0124f24e Mon Sep 17 00:00:00 2001 From: Ramon Bartl Date: Tue, 26 Jul 2022 22:34:20 +0200 Subject: [PATCH 2/4] Changelog --- CHANGES.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGES.rst b/CHANGES.rst index 74e6cdbf29..c6e09179eb 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -5,6 +5,7 @@ Changelog 2.3.0 (unreleased) ------------------ +- #2072 Refactor report filename generation to own method - #2066 Fix samples w/o active analyses are displayed under "unassigned" filter - #2065 Fix "Create Worksheet" modal visible for samples w/o unassigned analyses - #2063 Allow to customize email publication template in setup From e653d6c33501a84e3af445861912167462e4055d Mon Sep 17 00:00:00 2001 From: Ramon Bartl Date: Tue, 26 Jul 2022 22:39:41 +0200 Subject: [PATCH 3/4] Added filename method to download view as well --- src/bika/lims/browser/publish/downloadview.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/bika/lims/browser/publish/downloadview.py b/src/bika/lims/browser/publish/downloadview.py index 1d05834a8e..2574322037 100644 --- a/src/bika/lims/browser/publish/downloadview.py +++ b/src/bika/lims/browser/publish/downloadview.py @@ -18,6 +18,7 @@ # Copyright 2018-2021 by it's authors. # Some rights reserved, see README and LICENSE. +from bika.lims import api from Products.Five.browser import BrowserView @@ -29,11 +30,16 @@ def __init__(self, context, request): super(DownloadView, self).__init__(context, request) def __call__(self): - ar = self.context.getAnalysisRequest() - filename = "{}.pdf".format(ar.getId()) + filename = self.get_report_filename(self.context) pdf = self.context.getPdf() self.download(pdf.data, filename) + def get_report_filename(self, report): + """Generate the filename for the sample PFD + """ + sample = report.getAnalysisRequest() + return "{}.pdf".format(api.get_id(sample)) + def download(self, data, filename, content_type="application/pdf"): """Download the PDF """ From 1571a7e42479d4d690b06f002e5288b06de57c5d Mon Sep 17 00:00:00 2001 From: Ramon Bartl Date: Tue, 26 Jul 2022 22:46:28 +0200 Subject: [PATCH 4/4] typo --- src/bika/lims/browser/publish/downloadview.py | 2 +- src/bika/lims/browser/publish/emailview.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bika/lims/browser/publish/downloadview.py b/src/bika/lims/browser/publish/downloadview.py index 2574322037..5df3adcd46 100644 --- a/src/bika/lims/browser/publish/downloadview.py +++ b/src/bika/lims/browser/publish/downloadview.py @@ -35,7 +35,7 @@ def __call__(self): self.download(pdf.data, filename) def get_report_filename(self, report): - """Generate the filename for the sample PFD + """Generate the filename for the sample PDF """ sample = report.getAnalysisRequest() return "{}.pdf".format(api.get_id(sample)) diff --git a/src/bika/lims/browser/publish/emailview.py b/src/bika/lims/browser/publish/emailview.py index d0675eb205..d5bf7e29fc 100644 --- a/src/bika/lims/browser/publish/emailview.py +++ b/src/bika/lims/browser/publish/emailview.py @@ -700,7 +700,7 @@ def get_filesize(self, f): return 0.0 def get_report_filename(self, report): - """Generate the filename for the sample PFD + """Generate the filename for the sample PDF """ sample = report.getAnalysisRequest() return "{}.pdf".format(api.get_id(sample))