Report Printed Flag
This module provides a generic and extensible configuration layer to mark records as printed when specific PDF reports are generated.
Main features:
Reusable Mixin (report.printed.mixin) that any model can inherit to gain:
A printed Boolean field
A printed_log_ids One2many relation to audit logs
A printed_report_names computed field with printed report names
An action_view_printed_logs() method
Generic configuration per company and model
Per-report configuration using rules
Optional domain conditions per report
Automatic printed flag update
Optional logging of report executions
Optional computation of printed report names
Full multi-company support with isolated configurations
User interface for browsing printed report logs
Extension modules simply inherit the mixin:
class AccountMove(models.Model):
_name = 'account.move'
_inherit = ['account.move', 'report.printed.mixin']
All printed flag functionality is inherited automatically.
Limitations:
Only applies to QWeb PDF reports (qweb-pdf)
Extension modules must inherit report.printed.mixin to gain printed field support
Domain expressions must be valid Python domains
Table of contents
Usage
For End Users
Install report_printed_flag module
Install extension modules that support printed flags (e.g., report_printed_flag_account)
Go to Settings > Reporting > Printed Flag > Configurations
Create a configuration for your model (Company + Model)
Add report rules (select report + optional domain condition)
Generate a configured report from a document (e.g., print an invoice)
Result:
The printed field is automatically set to True
A log entry is created (if enabled in configuration)
Printed report names are computed (if enabled in configuration)
Access logs via:
Settings > Reporting > Printed Flag > Logs
For Module Developers
To add printed flag support to a custom model:
Create your model inheriting from report.printed.mixin:
class MyModel(models.Model): _name = ‘my.model’ _inherit = [‘my.model’, ‘report.printed.mixin’]
Create QWeb PDF reports for your model (standard Odoo process)
Instruct users to configure which reports trigger the printed flag via the UI
That’s it! The mixin provides all field and method implementations automatically.
Optional: Add UI Elements
You may optionally add buttons to your views to open the logs:
<button name="action_view_printed_logs"
type="object"
string="View Printed Logs"
icon="fa-print"
invisible="not printed_report_names"/>
Known issues / Roadmap
Provide official extension modules (stock, account)
Add support for additional report types (HTML, XLSX)
Optimize performance for high-volume batch printing
Improve handling of large datasets
Bug Tracker
Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.
Do not contact contributors directly about support or help with technical issues.
Credits
Contributors
Binhex Systems Solutions S.L.:
Ariel Torres
Rolando Pérez Rebollo
Maintainers
This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.
This module is part of the OCA/reporting-engine project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
Metadata
Release files for odoo-addon-report-printed-flag 17.0.1.0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| odoo_addon_report_printed_flag-17.0.1.0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Release files / odoo_addon_report_printed_flag-17.0.1.0.0.2-py3-none-any.whl
| Download URL | odoo_addon_report_printed_flag-17.0.1.0.0.2-py3-none-any.whl |
|---|---|
| Size | 44.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
532bb77b49d600e839ad524faf8b2b702c0da3aed13ccded645377641217923c
|
|
BLAKE2b-256 checksum How to use checksums |
2eb6a9d7d9d80aa5d5a5b88ba12a75773c1d2719f167166a54c0a337e77e2fe3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.4
|