Files
enterprise/documents_product/models/documents_workflow_rule.py
T
2024-04-28 11:43:49 +08:00

42 lines
1.8 KiB
Python

# -*- coding: utf-8 -*-
from odoo import models, fields, api, exceptions
class WorkflowActionRuleProduct(models.Model):
_inherit = ['documents.workflow.rule']
create_model = fields.Selection(selection_add=[('product.template', "Product template")])
def create_record(self, documents=None):
rv = super(WorkflowActionRuleProduct, self).create_record(documents=documents)
if self.create_model == 'product.template':
product = self.env[self.create_model].create({'name': 'product created from Documents'})
image_is_set = False
for document in documents:
# this_document is the document in use for the workflow
this_document = document
if (document.res_model or document.res_id) and document.res_model != 'documents.document':
attachment_copy = document.attachment_id.with_context(no_document=True).copy()
this_document = document.copy({'attachment_id': attachment_copy.id})
this_document.write({
'res_model': product._name,
'res_id': product.id,
})
if 'image' in this_document.mimetype and not image_is_set:
product.write({'image_1920': this_document.datas})
image_is_set = True
view_id = product.get_formview_id()
return {
'type': 'ir.actions.act_window',
'res_model': 'product.template',
'name': "New product template",
'context': self._context,
'view_mode': 'form',
'views': [(view_id, "form")],
'res_id': product.id if product else False,
'view_id': view_id,
}
return rv