diff --git a/addons/hr/data/hr_data.xml b/addons/hr/data/hr_data.xml
index a6487ffe2b7..e05352d383e 100644
--- a/addons/hr/data/hr_data.xml
+++ b/addons/hr/data/hr_data.xml
@@ -62,16 +62,19 @@
0
Fired
+ 342
1
Resigned
+ 343
2
Retired
+ 340
diff --git a/addons/hr/models/hr_departure_reason.py b/addons/hr/models/hr_departure_reason.py
index f30f792266c..cfb88cbf2d4 100644
--- a/addons/hr/models/hr_departure_reason.py
+++ b/addons/hr/models/hr_departure_reason.py
@@ -12,8 +12,7 @@ class DepartureReason(models.Model):
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
+ reason_code = fields.Integer()
def _get_default_departure_reasons(self):
return {
@@ -24,6 +23,6 @@ class DepartureReason(models.Model):
@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().values()
+ if any(reason.reason_code in master_departure_codes for reason in self):
raise UserError(_('Default departure reasons cannot be deleted.'))