forked from Mapan/odoo17e
35 lines
1.5 KiB
Python
35 lines
1.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import models, _
|
|
|
|
|
|
class MailActivitySchedule(models.TransientModel):
|
|
_inherit = 'mail.activity.schedule'
|
|
|
|
def _plan_filter_activity_templates_to_schedule(self):
|
|
if self.res_model != 'hr.employee':
|
|
return super()._plan_filter_activity_templates_to_schedule()
|
|
return self.plan_id.template_ids.filtered(lambda a: not a.is_signature_request or a.responsible_count > 2)
|
|
|
|
def action_schedule_plan(self):
|
|
res = super().action_schedule_plan()
|
|
if self.res_model != 'hr.employee':
|
|
return res
|
|
|
|
for employee in self._get_applied_on_records():
|
|
for signature_request in self.plan_id.template_ids - self._plan_filter_activity_templates_to_schedule():
|
|
employee_role = signature_request.employee_role_id
|
|
responsible = signature_request._determine_responsible(self.plan_on_demand_user_id, employee)['responsible']
|
|
|
|
self.env['hr.contract.sign.document.wizard'].create({
|
|
'contract_id': employee.contract_id.id,
|
|
'employee_ids': [(4, employee.id)],
|
|
'responsible_id': responsible.id,
|
|
'employee_role_id': employee_role and employee_role.id,
|
|
'sign_template_ids': [(4, signature_request.sign_template_id.id)],
|
|
'subject': _('Signature Request'),
|
|
}).validate_signature()
|
|
|
|
return res
|