knowledge/document_print_control/models/document_page.py

26 lines
807 B
Python

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)