summaryrefslogtreecommitdiff
path: root/addons/hr_holidays/models
diff options
context:
space:
mode:
authorVictor Feyens <vfe@odoo.com>2020-07-14 14:29:10 +0000
committerVictor Feyens <vfe@odoo.com>2020-07-23 16:38:17 +0000
commit71ab12840bc787ca486202255cd6faa21281b9e1 (patch)
treedc8b093e25f9215f2f2c53ff0a084500c88ef560 /addons/hr_holidays/models
parentc69a092b98ad7a7f8e03024d170efa30038c89a0 (diff)
[IMP] *: do not specify unwanted defaults in default_get
When default_get is called, the wanted fields are specified through the fields_list arg. It is useless to fill the values for unwanted fields. As default_get is called for nearly all records creation, simplifying the default_get overrides: * remove potential wrong side-effects of the values * remove some useless or wrong defaults computations (searches, refs, ...)
Diffstat (limited to 'addons/hr_holidays/models')
-rw-r--r--addons/hr_holidays/models/hr_leave.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/addons/hr_holidays/models/hr_leave.py b/addons/hr_holidays/models/hr_leave.py
index 9456c3ac33e..c16206aef79 100644
--- a/addons/hr_holidays/models/hr_leave.py
+++ b/addons/hr_holidays/models/hr_leave.py
@@ -73,11 +73,15 @@ class HolidaysRequest(models.Model):
defaults = super(HolidaysRequest, self).default_get(fields_list)
defaults = self._default_get_request_parameters(defaults)
- LeaveType = self.env['hr.leave.type'].with_context(employee_id=defaults.get('employee_id'), default_date_from=defaults.get('date_from', fields.Datetime.now()))
- lt = LeaveType.search([('valid', '=', True)], limit=1)
+ if 'holiday_status_id' in fields_list and not defaults.get('holiday_status_id'):
+ lt = self.env['hr.leave.type'].search([('valid', '=', True)], limit=1)
- defaults['holiday_status_id'] = lt.id if lt else defaults.get('holiday_status_id')
- defaults['state'] = 'confirm' if lt and lt.leave_validation_type != 'no_validation' else 'draft'
+ if lt:
+ defaults['holiday_status_id'] = lt.id
+
+ if 'state' in fields_list and not defaults.get('state'):
+ lt = self.env['hr.leave.type'].browse(defaults.get('holiday_status_id'))
+ defaults['state'] = 'confirm' if lt and lt.leave_validation_type != 'no_validation' else 'draft'
return defaults
def _default_get_request_parameters(self, values):