From 242d81e66ee256208746771cc28a9280cd8aa345 Mon Sep 17 00:00:00 2001 From: David Tran Date: Thu, 17 Feb 2022 09:52:41 +0000 Subject: [PATCH] [IMP] hr_holidays: separate value preparation and record creation into 2 methods for others to extend functionality 1. _prepare_resource_leave_vals_list() that will prepare value for creation later in _create_resource_leave() 2. _create_resource_leave() now calls the _prepare_resource_leave_vals_list() instead of having done the job itself closes odoo/odoo#87081 X-original-commit: 6040670f24da60b1f1b2f1814423c473cc060c8c Signed-off-by: Yannick Tivisse (yti) --- addons/hr_holidays/models/hr_leave.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/addons/hr_holidays/models/hr_leave.py b/addons/hr_holidays/models/hr_leave.py index 278cc0b8b1e..c717b068ba8 100644 --- a/addons/hr_holidays/models/hr_leave.py +++ b/addons/hr_holidays/models/hr_leave.py @@ -1076,11 +1076,10 @@ class HolidaysRequest(models.Model): # Business methods #################################################### - def _create_resource_leave(self): - """ This method will create entry in resource calendar time off object at the time of holidays validated - :returns: created `resource.calendar.leaves` + def _prepare_resource_leave_vals_list(self): + """Hook method for others to inject data """ - vals_list = [{ + return [{ 'name': _("%s: Time Off", leave.employee_id.name), 'date_from': leave.date_from, 'holiday_id': leave.id, @@ -1089,6 +1088,12 @@ class HolidaysRequest(models.Model): 'calendar_id': leave.employee_id.resource_calendar_id.id, 'time_type': leave.holiday_status_id.time_type, } for leave in self] + + def _create_resource_leave(self): + """ This method will create entry in resource calendar time off object at the time of holidays validated + :returns: created `resource.calendar.leaves` + """ + vals_list = self._prepare_resource_leave_vals_list() return self.env['resource.calendar.leaves'].sudo().create(vals_list) def _remove_resource_leave(self):