Reports are what your customers see. senaite.impress —
the piece that turns verified analyses into a signed PDF —
got two changes this half that most labs will notice on day one,
plus a slate of quieter fixes. This post is about what changes
for a lab. The implementation notes are at the end for whoever
wants them.
You upload your logo now
Before this release, replacing the SENAITE mark on your report
header meant either forking senaite.impress or writing a ZCML
override. Fine for a developer, absurd for a working lab.
The impress control panel now has a Report logo field. Upload
a PNG or SVG through the browser. It shows up in the default
report header at the next render. If you use custom report
templates, swap your hardcoded <img src=…> for the new helper
(one line) and the templates pick up the same field. Labs that
never touched their logo see the stock SENAITE mark exactly as
before.

Any paper size, per template
Default paper sizes — A4, Letter, Legal, and their variants — cover most reports. They do not cover a three-inch thermal analysis sticker, an oversized certificate on a bespoke sheet, or an A5 landscape half-page for chain of custody.
You now add named custom paperformats in the control panel: width, height, margins. Any report template can then be assigned to any paperformat, custom or default, in the same UI. The PDF renderer picks the size up at generation. Switching a template from A4 to a 4×6 label is a dropdown change.

The result on a real report: your logo in the header, your accreditation badge to the right, on whichever paper you picked for that template.

Report generation is more resilient
Two smaller changes matter when you run big report batches:
- Batch reports checkpoint per report instead of holding one transaction across the whole batch. A crash mid-batch now loses one report, not the whole run.
- Reports find recently-uploaded attachments even when the catalog has not caught up. Upload an attachment and generate the report immediately — the attachment appears.
Plus a fix for a rendering error on batch labels that would have paged an operator on a busy Monday.
What upgrading looks like
If you never customised your report, upgrade and everything looks the same. If your logo lived in a fork, you can throw the fork away after uploading the PNG in the control panel. If your reports use non-standard paper, you no longer maintain a paperformat plugin, you configure it.
Under the hood
For the technically curious: this half’s PRs finished migrating
the ARReport Archetypes content type to a Dexterity
ResultsReport
(#161),
added the logo upload field and a @@report-logo view
(#163),
added named paperformats
(#164),
and repaired accreditation-body logo rendering that broke on the
earlier senaite.core Dexterity migration
(#166,
#167).
Attachment lookup got a fix in
#165 and
batch labels in
#162. The
get_report_logo_url() helper is declared on IReportView and
IMultiReportView, so add-on report templates inherit it.