forked from Mapan/odoo17e
52 lines
2.2 KiB
Python
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
|