Skip to content

Instantly share code, notes, and snippets.

@CakJuice
Created August 18, 2018 02:47
Show Gist options
  • Save CakJuice/784cd0c331ba37807dbf8b1815214f5c to your computer and use it in GitHub Desktop.
Save CakJuice/784cd0c331ba37807dbf8b1815214f5c to your computer and use it in GitHub Desktop.
Generate attachment on Odoo 10
import base64
from odoo import models, fields, api
class SomeModel(models.Model):
_name = 'some.model'
field1 = fields.Char(string="Field 1")
field2 = fields.Boolean(string="Field 2")
@api.multi
def action_generate_attachment(self):
""" this method called from button action in view xml """
# generate pdf from report, use report's report_name as params for get_pdf
REPORT_NAME = 'some_report_name'
pdf = self.env['report'].get_pdf(self.ids, REPORT_NAME)
b64_pdf = base64.encodestring(pdf)
# save pdf as attachment
ATTACHMENT_NAME = "My Attachment Name"
return self.env['ir.attachment'].create({
'name': ATTACHMENT_NAME,
'type': 'binary',
'datas': b64_pdf,
'datas_fname': ATTACHMENT_NAME + '.pdf',
'store_fname': ATTACHMENT_NAME,
'res_model': self._name,
'res_id': self.id,
'mimetype': 'application/x-pdf'
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment