[FIX] hr_holidays: Fix out of office message default value
If a user has an ooom in his Preferences, it should be used as the default value for a leave ooom. closes odoo/odoo#33890 Signed-off-by: Romain Libert (rli) <rli@odoo.com>
This commit is contained in:
@@ -266,6 +266,11 @@ class HolidaysRequest(models.Model):
|
||||
self.request_unit_hours = False
|
||||
self.request_unit_custom = False
|
||||
|
||||
@api.onchange('user_id')
|
||||
def _onchange_user_id(self):
|
||||
if not self.out_of_office_message:
|
||||
self.out_of_office_message = self.user_id.out_of_office_message
|
||||
|
||||
@api.onchange('request_date_from_period', 'request_hour_from', 'request_hour_to',
|
||||
'request_date_from', 'request_date_to',
|
||||
'employee_id')
|
||||
|
||||
@@ -4,26 +4,29 @@
|
||||
from datetime import datetime
|
||||
from dateutil.relativedelta import relativedelta
|
||||
|
||||
from odoo.tests.common import tagged, users, warmup
|
||||
from odoo.tests.common import tagged, users, warmup, Form
|
||||
from odoo.addons.hr_holidays.tests.common import TestHrHolidaysBase
|
||||
|
||||
|
||||
@tagged('out_of_office')
|
||||
class TestOutOfOffice(TestHrHolidaysBase):
|
||||
|
||||
def test_leave_ooo(self):
|
||||
leave_type = self.env['hr.leave.type'].create({
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.leave_type = self.env['hr.leave.type'].create({
|
||||
'name': 'Legal Leaves',
|
||||
'time_type': 'leave',
|
||||
'allocation_type': 'no',
|
||||
})
|
||||
|
||||
def test_leave_ooo(self):
|
||||
self.assertNotEqual(self.employee_hruser.user_id.im_status, 'leave_offline', 'user should not be on leave')
|
||||
self.assertNotEqual(self.employee_hruser.user_id.partner_id.im_status, 'leave_offline', 'user should not be on leave')
|
||||
leave_date_end = (datetime.today() + relativedelta(days=3))
|
||||
leave = self.env['hr.leave'].create({
|
||||
'name': 'Christmas',
|
||||
'employee_id': self.employee_hruser.id,
|
||||
'holiday_status_id': leave_type.id,
|
||||
'holiday_status_id': self.leave_type.id,
|
||||
'date_from': (datetime.today() - relativedelta(days=1)),
|
||||
'date_to': leave_date_end,
|
||||
'out_of_office_message': 'contact tde in case of problems',
|
||||
@@ -51,6 +54,29 @@ class TestOutOfOffice(TestHrHolidaysBase):
|
||||
self.assertEqual(infos[0]['direct_partner'][0]['out_of_office_date_end'], leave_date_end)
|
||||
self.assertEqual(infos[0]['direct_partner'][0]['out_of_office_message'], 'contact tde in case of problems')
|
||||
|
||||
def test_leave_ooo_use_default(self):
|
||||
""" Out of office message from Preferences should be used as default value """
|
||||
self.user_hruser.out_of_office_message = 'contact xdo in case of problems'
|
||||
|
||||
leave_form = Form(self.env['hr.leave'].sudo(self.user_hruser), view='hr_holidays.hr_leave_view_form')
|
||||
leave_form.date_from = datetime.today() - relativedelta(days=1)
|
||||
leave_form.date_to = datetime.today()
|
||||
leave_form.holiday_status_id = self.leave_type
|
||||
leave = leave_form.save()
|
||||
self.assertEqual(leave.out_of_office_message, 'contact xdo in case of problems')
|
||||
|
||||
def test_leave_ooo_overwrite_default(self):
|
||||
""" Out of office message default value should be overwrittable """
|
||||
self.user_hruser.out_of_office_message = 'contact xdo in case of problems'
|
||||
|
||||
leave_form = Form(self.env['hr.leave'].sudo(self.user_hruser), view='hr_holidays.hr_leave_view_form')
|
||||
leave_form.date_from = datetime.today() - relativedelta(days=1)
|
||||
leave_form.date_to = datetime.today()
|
||||
leave_form.holiday_status_id = self.leave_type
|
||||
leave_form.out_of_office_message = 'contact tde in case of problems'
|
||||
leave = leave_form.save()
|
||||
self.assertEqual(leave.out_of_office_message, 'contact tde in case of problems')
|
||||
|
||||
|
||||
@tagged('out_of_office')
|
||||
class TestOutOfOfficePerformance(TestHrHolidaysBase):
|
||||
|
||||
@@ -246,6 +246,7 @@
|
||||
</div>
|
||||
|
||||
<field name="name" attrs="{'readonly': [('state', 'not in', ('draft', 'confirm'))]}"/>
|
||||
<field name="user_id" invisible="1"/>
|
||||
<field name="out_of_office_message"/>
|
||||
</group>
|
||||
<group name="col_right">
|
||||
|
||||
Reference in New Issue
Block a user