Improve the departure wizard form view aswell as the flow when using it. Removes the confirmation dialog when archiving an employee to directly display the departure wizard. Also changes departure reason to an html field instead of pure text. Task ID: 2575279 closes odoo/odoo#72367 Related: odoo/enterprise#19116 Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
33 lines
1.5 KiB
Python
33 lines
1.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import api, fields, models
|
|
|
|
|
|
class HrDepartureWizard(models.TransientModel):
|
|
_name = 'hr.departure.wizard'
|
|
_description = 'Departure Wizard'
|
|
|
|
departure_reason_id = fields.Many2one("hr.departure.reason", default=lambda self: self.env['hr.departure.reason'].search([], limit=1), required=True)
|
|
departure_description = fields.Html(string="Additional Information")
|
|
departure_date = fields.Date(string="Departure Date", required=True, default=fields.Date.today)
|
|
employee_id = fields.Many2one(
|
|
'hr.employee', string='Employee', required=True,
|
|
default=lambda self: self.env.context.get('active_id', None),
|
|
)
|
|
archive_private_address = fields.Boolean('Archive Private Address', default=True)
|
|
|
|
def action_register_departure(self):
|
|
employee = self.employee_id
|
|
if self.env.context.get('toggle_active', False) and employee.active:
|
|
employee.with_context(no_wizard=True).toggle_active()
|
|
employee.departure_reason_id = self.departure_reason_id
|
|
employee.departure_description = self.departure_description
|
|
employee.departure_date = self.departure_date
|
|
|
|
if self.archive_private_address:
|
|
# ignore contact links to internal users
|
|
private_address = employee.address_home_id
|
|
if private_address and private_address.active and not self.env['res.users'].search([('partner_id', '=', private_address.id)]):
|
|
private_address.toggle_active()
|