Odoo18-Base/addons/sale_gelato/models/product_document.py
2025-03-04 12:23:19 +07:00

29 lines
973 B
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import _, fields, models
from odoo.exceptions import UserError
class ProductDocument(models.Model):
_inherit = 'product.document'
# Technical field to tell apart Gelato print images from other product documents.
is_gelato = fields.Boolean(readonly=True)
def _gelato_prepare_file_payload(self):
""" Create the payload for a single file of an 'orders' request.
:return: The file payload.
:rtype: dict
"""
if not self.datas:
raise UserError(_("Print images must be set on products before they can be ordered."))
query_string = f'access_token={self.ir_attachment_id.generate_access_token()[0]}'
url = f'{self.get_base_url()}{self.ir_attachment_id.image_src}?{query_string}'
return {
'type': self.name.lower(), # Gelato requires lowercase types.
'url': url,
}