1
0
forked from Mapan/odoo17e
odoo17e-kedaikipas58/addons/documents_sign/models/documents_workflow_rule.py
2024-12-10 09:04:09 +07:00

52 lines
2.2 KiB
Python

# -*- coding: utf-8 -*-
from odoo import models, fields, api, exceptions, _
class WorkflowActionRuleSign(models.Model):
_inherit = ['documents.workflow.rule']
create_model = fields.Selection(selection_add=[('sign.template.new', "Signature PDF Template"),
('sign.template.direct', "PDF to Sign")])
def _compute_limited_to_single_record(self):
super(WorkflowActionRuleSign, self)._compute_limited_to_single_record()
for record in self:
if record.create_model == 'sign.template.direct':
record.limited_to_single_record = True
def create_record(self, documents=None):
rv = super(WorkflowActionRuleSign, self).create_record(documents=documents)
if self.create_model.startswith('sign.template'):
new_obj = None
create_values_list = []
for document in documents:
create_values = {
'attachment_id': document.attachment_id.id,
'favorited_ids': [(4, self.env.user.id)],
}
if self.folder_id:
create_values['folder_id'] = self.folder_id.id
elif self.domain_folder_id:
create_values['folder_id'] = self.domain_folder_id.id
if document.tag_ids:
create_values['documents_tag_ids'] = [(6, 0, document.tag_ids.ids)]
create_values_list.append(create_values)
templates = self.env['sign.template'].create(create_values_list)
action = {
'type': 'ir.actions.act_window',
'res_model': 'sign.template',
'name': _("New templates"),
'view_id': False,
'view_mode': 'kanban',
'views': [(False, "kanban"), (False, "form")],
'domain': [('id', 'in', templates.ids)],
'context': self._context,
}
if len(templates.ids) == 1:
return templates.go_to_custom_template(sign_directly_without_mail=self.create_model == 'sign.template.direct')
return action
return rv