from odoo import api, fields, models class DocumentPage(models.Model): _inherit = "document.page" is_printable = fields.Boolean( compute="_compute_is_printable", store=True, help="Indicates if the document can be printed based on its tags", ) @api.depends("tag_ids", "tag_ids.is_printable") def _compute_is_printable(self): for record in self: if not record.tag_ids: record.is_printable = True else: record.is_printable = all(tag.is_printable for tag in record.tag_ids) def action_print_document_page(self): for record in self: if not record.is_printable: return None return self.env.ref("document_page.report_document_page").report_action(self)