diff --git a/addons/hr_holidays/data/hr_holidays_demo.xml b/addons/hr_holidays/data/hr_holidays_demo.xml
index b13de138ef8..4d35fb33fd6 100644
--- a/addons/hr_holidays/data/hr_holidays_demo.xml
+++ b/addons/hr_holidays/data/hr_holidays_demo.xml
@@ -62,7 +62,7 @@
20
- validate
+ confirm
@@ -77,9 +77,6 @@
-
-
-
Functional Training
@@ -98,10 +95,13 @@
12
- validate
+ confirm
+
+
+
@@ -155,7 +155,7 @@
20
- validate
+ confirm
@@ -166,7 +166,7 @@
10
- validate
+ confirm
@@ -177,10 +177,13 @@
12
- validate
+ confirm
+
+
+
@@ -220,10 +223,13 @@
20
- validate
+ confirm
+
+
+
Compliance Training
@@ -274,7 +280,7 @@
20
- validate
+ confirm
@@ -290,7 +296,7 @@
-
+
@@ -332,10 +338,13 @@
20
- validate
+ confirm
+
+
+
Consulting Training
@@ -356,7 +365,7 @@
20
- validate
+ confirm
@@ -372,10 +381,9 @@
-
+
-
Trip to London
diff --git a/addons/hr_holidays/models/hr_leave_allocation.py b/addons/hr_holidays/models/hr_leave_allocation.py
index 40ee1d1b2ba..262b6f746e9 100644
--- a/addons/hr_holidays/models/hr_leave_allocation.py
+++ b/addons/hr_holidays/models/hr_leave_allocation.py
@@ -561,6 +561,8 @@ class HolidaysAllocation(models.Model):
def create(self, vals_list):
""" Override to avoid automatic logging of creation """
for values in vals_list:
+ if 'state' in values and values['state'] not in ('draft', 'confirm'):
+ raise UserError(_('Incorrect state for new allocation'))
employee_id = values.get('employee_id', False)
if not values.get('department_id'):
values.update({'department_id': self.env['hr.employee'].browse(employee_id).department_id.id})
diff --git a/addons/hr_holidays/tests/test_accrual_allocations.py b/addons/hr_holidays/tests/test_accrual_allocations.py
index 898ec4b835f..f9b86ec853d 100644
--- a/addons/hr_holidays/tests/test_accrual_allocations.py
+++ b/addons/hr_holidays/tests/test_accrual_allocations.py
@@ -346,7 +346,7 @@ class TestAccrualAllocations(TestHrHolidaysCommon):
'holiday_status_id': self.leave_type.id,
'number_of_days': 0,
'allocation_type': 'accrual',
- 'state': 'validate',
+ 'state': 'confirm',
})
allocation_worked_time = self.env['hr.leave.allocation'].with_user(self.user_hrmanager_id).with_context(tracking_disable=True).create({
'name': 'Accrual allocation for employee',
@@ -355,8 +355,9 @@ class TestAccrualAllocations(TestHrHolidaysCommon):
'holiday_status_id': self.leave_type.id,
'number_of_days': 0,
'allocation_type': 'accrual',
- 'state': 'validate',
+ 'state': 'confirm',
})
+ (allocation_not_worked_time | allocation_worked_time).action_validate()
self.setAllocationCreateDate(allocation_not_worked_time.id, '2021-08-01 00:00:00')
self.setAllocationCreateDate(allocation_worked_time.id, '2021-08-01 00:00:00')
holiday_type = self.env['hr.leave.type'].create({
diff --git a/addons/hr_holidays/tests/test_holidays_flow.py b/addons/hr_holidays/tests/test_holidays_flow.py
index d613f9c3f46..e625f036da3 100644
--- a/addons/hr_holidays/tests/test_holidays_flow.py
+++ b/addons/hr_holidays/tests/test_holidays_flow.py
@@ -99,17 +99,17 @@ class TestHolidaysFlow(TestHrHolidaysCommon):
'holiday_status_id': holiday_status_paid_time_off.id,
'number_of_days': 20,
'employee_id': self.employee_emp_id,
- 'state': 'validate',
+ 'state': 'confirm',
'date_from': time.strftime('%Y-%m-01'),
}, {
'name': 'Paid Time off for David',
'holiday_status_id': holiday_status_paid_time_off.id,
'number_of_days': 20,
'employee_id': self.ref('hr.employee_admin'),
- 'state': 'validate',
+ 'state': 'confirm',
'date_from': time.strftime('%Y-%m-01'),
}
- ])
+ ]).action_validate()
def _check_holidays_status(holiday_status, ml, lt, rl, vrl):
self.assertEqual(holiday_status.max_leaves, ml,
@@ -252,10 +252,10 @@ class TestHolidaysFlow(TestHrHolidaysCommon):
'holiday_status_id': holiday_status_paid_time_off.id,
'number_of_days': 20,
'employee_id': self.ref('hr.employee_admin'),
- 'state': 'validate',
+ 'state': 'confirm',
'date_from': time.strftime('%Y-%m-01'),
'date_to': time.strftime('%Y-12-31'),
- })
+ }).action_validate()
leave_vals = {
'name': 'Sick Time Off',
diff --git a/addons/hr_holidays/tests/test_leave_requests.py b/addons/hr_holidays/tests/test_leave_requests.py
index e738e607d02..ad8cc846985 100644
--- a/addons/hr_holidays/tests/test_leave_requests.py
+++ b/addons/hr_holidays/tests/test_leave_requests.py
@@ -171,8 +171,7 @@ class TestLeaveRequests(TestHrHolidaysCommon):
'date_from': fields.Datetime.from_string('2017-01-01 00:00:00'),
'date_to': fields.Datetime.from_string('2017-06-01 00:00:00'),
'number_of_days': 10,
- 'state': 'validate',
- })
+ }).action_validate()
self.env['hr.leave'].with_user(self.user_employee_id).create({
'name': 'Valid time period',
diff --git a/addons/l10n_fr_hr_holidays/data/l10n_fr_hr_holidays_demo.xml b/addons/l10n_fr_hr_holidays/data/l10n_fr_hr_holidays_demo.xml
index 4d0b1067a23..02cc207af1a 100644
--- a/addons/l10n_fr_hr_holidays/data/l10n_fr_hr_holidays_demo.xml
+++ b/addons/l10n_fr_hr_holidays/data/l10n_fr_hr_holidays_demo.xml
@@ -43,7 +43,7 @@
Paid Time Off allocation
- validate
+ confirm
20
@@ -51,4 +51,7 @@
+
+
+