19.0 vanilla

This commit is contained in:
Ernad Husremovic 2026-03-09 09:31:00 +01:00
parent a1137a1456
commit e1d89e11e3
2789 changed files with 1093187 additions and 605897 deletions

View file

@ -1,29 +1,29 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, fields, models, _
from odoo.exceptions import UserError
class DepartureReason(models.Model):
_name = "hr.departure.reason"
class HrDepartureReason(models.Model):
_name = 'hr.departure.reason'
_description = "Departure Reason"
_order = "sequence"
sequence = fields.Integer("Sequence", default=10)
name = fields.Char(string="Reason", required=True, translate=True)
# YTI TODO: Move reason_code to hr + adapt _unlink_except_default_departure_reasons
# to use the codes instead of refs
country_id = fields.Many2one('res.country', string='Country', default=lambda self: self.env.company.country_id)
country_code = fields.Char(related='country_id.code')
@api.model
def _get_default_departure_reasons(self):
return {
'fired': 342,
'resigned': 343,
'retired': 340,
}
return {self.env.ref(reason_ref) for reason_ref in (
'hr.departure_fired',
'hr.departure_resigned',
'hr.departure_retired',
)}
@api.ondelete(at_uninstall=False)
def _unlink_except_default_departure_reasons(self):
master_reasons = [self.env.ref('hr.departure_fired', False), self.env.ref('hr.departure_resigned', False), self.env.ref('hr.departure_retired', False)]
if any(reason in master_reasons for reason in self):
master_departure_codes = self._get_default_departure_reasons()
if any(reason in master_departure_codes for reason in self):
raise UserError(_('Default departure reasons cannot be deleted.'))