def calibration_report(self): """ Process form paramters, create a pdf calibration report form and generate a thumbnail view. """ form = Form(ReportSchema(), buttons=("submit",)) if "submit" in self.request.POST: #log.info("submit: %s", self.request.POST) controls = self.request.POST.items() try: appstruct = form.validate(controls) rendered_form = form.render(appstruct) report = self.populate_data(appstruct) self.makedir_write_files(appstruct) pdf = WasatchSinglePage(filename=report.filename, report=report) pdf.write_thumbnail() return {"form":rendered_form, "appstruct":appstruct} except ValidationFailure as exc: #log.exception(exc) log.info("Validation failure") return {'form':exc.render()} return {"form":form.render()}
def test_can_return_blob_main_pdf(self): from calibrationreport.pdfgenerator import WasatchSinglePage pdf = WasatchSinglePage(return_blob=True) blob_data = pdf.return_blob() self.assertTrue(size_range(len(blob_data), 101194, ok_range=5000))
def generate_calibration_report(self, appstruct, checkout_id): """ Use the generator object from the calibration report module to create a single page pdf. """ report = EmptyReport() report.serial = appstruct["serial"] report.coefficient_0 = appstruct["coefficient_0"] report.coefficient_1 = appstruct["coefficient_1"] report.coefficient_2 = appstruct["coefficient_2"] report.coefficient_3 = appstruct["coefficient_3"] pdf = WasatchSinglePage(report=report, return_blob=True) blob_data = pdf.return_blob() log.info("PDF report blob: %s", len(blob_data)) new_file = File(filename="Calibration_Report.pdf", file_data=blob_data) dbqry = DBSession.query(Checkout) checkout = dbqry.filter(Checkout.id == checkout_id).one() checkout.files.append(new_file) blob_data = pdf.return_thumbnail_blob() self.cache_blob(blob_data, checkout_id, "calibration_report_thumbnail.png") log.info("thumbnail report blob: %s", len(blob_data)) new_file = File(filename="calibration_report_thumbnail.png", file_data=blob_data) dbqry = DBSession.query(Checkout) checkout = dbqry.filter(Checkout.id == checkout_id).one() checkout.files.append(new_file)
def test_can_return_blob_thumbnail_from_pdf(self): from calibrationreport.pdfgenerator import WasatchSinglePage pdf = WasatchSinglePage(return_blob=True) blob_data = pdf.return_thumbnail_blob() self.assertTrue(size_range(len(blob_data), 198863, ok_range=40000))
def test_thumbnail_generation(self): # Create the default report from calibrationreport.pdfgenerator import WasatchSinglePage filename = "default.pdf" self.assertFalse(touch_erase(filename)) pdf = WasatchSinglePage() self.assertTrue(file_range(filename, 101194, ok_range=5000)) # Generate the thumbnail of the first page png_filename = pdf.write_thumbnail() # Verify the size is as epected self.assertTrue(file_range(png_filename, 198863, ok_range=40000))