[IMP] *: change leave string's to time off
update various string/labels contains "Leave" in hr_holidays, hr_work_entry_contract, resource, test_resource and project_timesheet_holidays modules to "Time Off" closes odoo/odoo#107504 Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
This commit is contained in:
@@ -290,7 +290,7 @@
|
||||
<field name="color">4</field>
|
||||
</record>
|
||||
|
||||
<!--Unpaid Leave -->
|
||||
<!--Unpaid Time Off -->
|
||||
<record id="holiday_status_unpaid" model="hr.leave.type">
|
||||
<field name="name">Unpaid</field>
|
||||
<field name="requires_allocation">no</field>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<field name="groups_id" eval="[(4, ref('hr_holidays.group_hr_holidays_user'))]"/>
|
||||
</record>
|
||||
|
||||
<!--Leave Type-->
|
||||
<!--Time Off Type-->
|
||||
<record id="hr_holiday_status_dv" model="hr.leave.type">
|
||||
<field name="name">Parental Leaves</field>
|
||||
<field name="requires_allocation">yes</field>
|
||||
|
||||
@@ -35,7 +35,7 @@ def get_employee_from_context(values, context, user_employee_id):
|
||||
return employee_id_value or context.get('default_employee_id', context.get('employee_id', user_employee_id))
|
||||
|
||||
class HolidaysRequest(models.Model):
|
||||
""" Leave Requests Access specifications
|
||||
""" Time Off Requests Access specifications
|
||||
|
||||
- a regular employee / user
|
||||
- can see all leaves;
|
||||
@@ -1454,7 +1454,7 @@ class HolidaysRequest(models.Model):
|
||||
raise UserError(_('You must either be a Time off Officer or Time off Manager to approve this leave'))
|
||||
|
||||
###################################################
|
||||
# Leave modification methods
|
||||
# Time Off modification methods
|
||||
###################################################
|
||||
|
||||
def _split_leave_on_gto(self, gto): #gto = global time off
|
||||
|
||||
@@ -134,7 +134,7 @@ class HolidaysAllocation(models.Model):
|
||||
is_officer = fields.Boolean(compute='_compute_is_officer')
|
||||
accrual_plan_id = fields.Many2one('hr.leave.accrual.plan', compute="_compute_from_holiday_status_id", store=True, readonly=False, domain="['|', ('time_off_type_id', '=', False), ('time_off_type_id', '=', holiday_status_id)]", tracking=True)
|
||||
max_leaves = fields.Float(compute='_compute_leaves')
|
||||
leaves_taken = fields.Float(compute='_compute_leaves')
|
||||
leaves_taken = fields.Float(compute='_compute_leaves', string='Time off Taken')
|
||||
taken_leave_ids = fields.One2many('hr.leave', 'holiday_allocation_id', domain="[('state', 'in', ['confirm', 'validate1', 'validate'])]")
|
||||
|
||||
_sql_constraints = [
|
||||
|
||||
@@ -68,7 +68,7 @@ class HolidaysType(models.Model):
|
||||
('no_validation', 'No Validation'),
|
||||
('hr', 'By Time Off Officer'),
|
||||
('manager', "By Employee's Approver"),
|
||||
('both', "By Employee's Approver and Time Off Officer")], default='hr', string='Leave Validation')
|
||||
('both', "By Employee's Approver and Time Off Officer")], default='hr', string='Time Off Validation')
|
||||
requires_allocation = fields.Selection([
|
||||
('yes', 'Yes'),
|
||||
('no', 'No Limit')], default="yes", required=True, string='Requires allocation',
|
||||
|
||||
@@ -8,7 +8,7 @@ from odoo.osv import expression
|
||||
class CalendarLeaves(models.Model):
|
||||
_inherit = "resource.calendar.leaves"
|
||||
|
||||
holiday_id = fields.Many2one("hr.leave", string='Leave Request')
|
||||
holiday_id = fields.Many2one("hr.leave", string='Time Off Request')
|
||||
|
||||
@api.constrains('date_from', 'date_to', 'calendar_id')
|
||||
def _check_compare_dates(self):
|
||||
@@ -105,7 +105,7 @@ class CalendarLeaves(models.Model):
|
||||
class ResourceCalendar(models.Model):
|
||||
_inherit = "resource.calendar"
|
||||
|
||||
associated_leaves_count = fields.Integer("Leave Count", compute='_compute_associated_leaves_count')
|
||||
associated_leaves_count = fields.Integer("Time Off Count", compute='_compute_associated_leaves_count')
|
||||
|
||||
def _compute_associated_leaves_count(self):
|
||||
leaves_read_group = self.env['resource.calendar.leaves'].read_group(
|
||||
|
||||
@@ -14,7 +14,7 @@ class LeaveReport(models.Model):
|
||||
active_employee = fields.Boolean(readonly=True)
|
||||
number_of_days = fields.Float('Number of Days', readonly=True, group_operator="sum")
|
||||
department_id = fields.Many2one('hr.department', string='Department', readonly=True)
|
||||
leave_type = fields.Many2one("hr.leave.type", string="Leave Type", readonly=True)
|
||||
leave_type = fields.Many2one("hr.leave.type", string="Time Off Type", readonly=True)
|
||||
holiday_status = fields.Selection([
|
||||
('taken', 'Taken'), #taken = validated
|
||||
('left', 'Left'),
|
||||
|
||||
@@ -13,7 +13,7 @@ class LeaveReport(models.Model):
|
||||
|
||||
active = fields.Boolean(readonly=True)
|
||||
employee_id = fields.Many2one('hr.employee', string="Employee", readonly=True)
|
||||
leave_id = fields.Many2one('hr.leave', string="Leave Request", readonly=True)
|
||||
leave_id = fields.Many2one('hr.leave', string="Time Off Request", readonly=True)
|
||||
allocation_id = fields.Many2one('hr.leave.allocation', string="Allocation Request", readonly=True)
|
||||
active_employee = fields.Boolean(readonly=True)
|
||||
name = fields.Char('Description', readonly=True)
|
||||
@@ -24,7 +24,7 @@ class LeaveReport(models.Model):
|
||||
], string='Request Type', readonly=True)
|
||||
department_id = fields.Many2one('hr.department', string='Department', readonly=True)
|
||||
category_id = fields.Many2one('hr.employee.category', string='Employee Tag', readonly=True)
|
||||
holiday_status_id = fields.Many2one("hr.leave.type", string="Leave Type", readonly=True)
|
||||
holiday_status_id = fields.Many2one("hr.leave.type", string="Time Off Type", readonly=True)
|
||||
state = fields.Selection([
|
||||
('draft', 'To Submit'),
|
||||
('cancel', 'Cancelled'),
|
||||
|
||||
@@ -139,7 +139,7 @@
|
||||
</record>
|
||||
|
||||
<record id="hr_leave_allocation_rule_multicompany" model="ir.rule">
|
||||
<field name="name">Leave Allocations: multi company global rule</field>
|
||||
<field name="name">Time Off: multi company global rule</field>
|
||||
<field name="model_id" ref="model_hr_leave_allocation"/>
|
||||
<field name="domain_force">['|', ('holiday_status_id.company_id', '=', False), ('holiday_status_id.company_id', 'in', company_ids)]</field>
|
||||
</record>
|
||||
|
||||
@@ -119,7 +119,7 @@ class TestAcessRightsStates(TestHrHolidaysAccessRightsCommon):
|
||||
"""
|
||||
for i, status in enumerate(self.draft_status):
|
||||
values = {
|
||||
'name': 'Random Leave',
|
||||
'name': 'Random Time Off',
|
||||
'employee_id': self.employee_emp.id,
|
||||
'holiday_status_id': status.id,
|
||||
}
|
||||
@@ -133,7 +133,7 @@ class TestAcessRightsStates(TestHrHolidaysAccessRightsCommon):
|
||||
"""
|
||||
for i, status in enumerate(self.draft_status):
|
||||
values = {
|
||||
'name': 'Random Leave',
|
||||
'name': 'Random Time Off',
|
||||
'employee_id': self.employee_hruser.id,
|
||||
'holiday_status_id': status.id,
|
||||
}
|
||||
@@ -150,7 +150,7 @@ class TestAcessRightsStates(TestHrHolidaysAccessRightsCommon):
|
||||
self.employee_hruser.write({'leave_manager_id': self.user_employee.id})
|
||||
for i, status in enumerate(self.draft_status):
|
||||
values = {
|
||||
'name': 'Random Leave',
|
||||
'name': 'Random Time Off',
|
||||
'employee_id': self.employee_hruser.id,
|
||||
'holiday_status_id': status.id,
|
||||
}
|
||||
@@ -167,7 +167,7 @@ class TestAcessRightsStates(TestHrHolidaysAccessRightsCommon):
|
||||
self.employee_emp.write({'leave_manager_id': self.user_employee.id})
|
||||
for i, status in enumerate(self.draft_status):
|
||||
values = {
|
||||
'name': 'Random Leave',
|
||||
'name': 'Random Time Off',
|
||||
'employee_id': self.employee_emp.id,
|
||||
'holiday_status_id': status.id,
|
||||
}
|
||||
@@ -180,7 +180,7 @@ class TestAcessRightsStates(TestHrHolidaysAccessRightsCommon):
|
||||
"""
|
||||
for i, status in enumerate(self.draft_status):
|
||||
values = {
|
||||
'name': 'Random Leave',
|
||||
'name': 'Random Time Off',
|
||||
'employee_id': self.employee_emp.id,
|
||||
'holiday_status_id': status.id,
|
||||
}
|
||||
@@ -195,7 +195,7 @@ class TestAcessRightsStates(TestHrHolidaysAccessRightsCommon):
|
||||
"""
|
||||
for i, status in enumerate(self.draft_status):
|
||||
values = {
|
||||
'name': 'Random Leave',
|
||||
'name': 'Random Time Off',
|
||||
'employee_id': self.employee_emp.id,
|
||||
'holiday_status_id': status.id,
|
||||
}
|
||||
@@ -210,7 +210,7 @@ class TestAcessRightsStates(TestHrHolidaysAccessRightsCommon):
|
||||
"""
|
||||
for i, status in enumerate(self.draft_status):
|
||||
values = {
|
||||
'name': 'Random Leave',
|
||||
'name': 'Random Time Off',
|
||||
'employee_id': self.employee_hruser.id,
|
||||
'holiday_status_id': status.id,
|
||||
}
|
||||
@@ -224,7 +224,7 @@ class TestAcessRightsStates(TestHrHolidaysAccessRightsCommon):
|
||||
"""
|
||||
for i, status in enumerate(self.draft_status):
|
||||
values = {
|
||||
'name': 'Random Leave',
|
||||
'name': 'Random Time Off',
|
||||
'employee_id': self.employee_emp.id,
|
||||
'holiday_status_id': status.id,
|
||||
}
|
||||
@@ -241,7 +241,7 @@ class TestAcessRightsStates(TestHrHolidaysAccessRightsCommon):
|
||||
self.employee_emp.write({'leave_manager_id': self.user_hruser.id})
|
||||
for i, status in enumerate(self.draft_status):
|
||||
values = {
|
||||
'name': 'Random Leave',
|
||||
'name': 'Random Time Off',
|
||||
'employee_id': self.employee_emp.id,
|
||||
'holiday_status_id': status.id,
|
||||
}
|
||||
@@ -258,7 +258,7 @@ class TestAcessRightsStates(TestHrHolidaysAccessRightsCommon):
|
||||
self.employee_hruser.write({'leave_manager_id': self.user_hruser.id})
|
||||
for i, status in enumerate(self.draft_status):
|
||||
values = {
|
||||
'name': 'Random Leave',
|
||||
'name': 'Random Time Off',
|
||||
'employee_id': self.employee_hruser.id,
|
||||
'holiday_status_id': status.id,
|
||||
}
|
||||
@@ -271,7 +271,7 @@ class TestAcessRightsStates(TestHrHolidaysAccessRightsCommon):
|
||||
"""
|
||||
for i, status in enumerate(self.draft_status):
|
||||
values = {
|
||||
'name': 'Random Leave',
|
||||
'name': 'Random Time Off',
|
||||
'employee_id': self.employee_hruser.id,
|
||||
'holiday_status_id': status.id,
|
||||
}
|
||||
@@ -286,7 +286,7 @@ class TestAcessRightsStates(TestHrHolidaysAccessRightsCommon):
|
||||
"""
|
||||
for i, status in enumerate(self.draft_status):
|
||||
values = {
|
||||
'name': 'Random Leave',
|
||||
'name': 'Random Time Off',
|
||||
'employee_id': self.employee_hruser.id,
|
||||
'holiday_status_id': status.id,
|
||||
}
|
||||
@@ -300,7 +300,7 @@ class TestAcessRightsStates(TestHrHolidaysAccessRightsCommon):
|
||||
"""
|
||||
for i, status in enumerate(self.draft_status):
|
||||
values = {
|
||||
'name': 'Random Leave',
|
||||
'name': 'Random Time Off',
|
||||
'employee_id': self.employee_hrmanager.id,
|
||||
'holiday_status_id': status.id,
|
||||
}
|
||||
@@ -313,7 +313,7 @@ class TestAcessRightsStates(TestHrHolidaysAccessRightsCommon):
|
||||
"""
|
||||
for i, status in enumerate(self.draft_status):
|
||||
values = {
|
||||
'name': 'Random Leave',
|
||||
'name': 'Random Time Off',
|
||||
'employee_id': self.employee_hruser.id,
|
||||
'holiday_status_id': status.id,
|
||||
}
|
||||
@@ -327,7 +327,7 @@ class TestAcessRightsStates(TestHrHolidaysAccessRightsCommon):
|
||||
self.employee_hruser.write({'leave_manager_id': self.user_hrmanager.id})
|
||||
for i, status in enumerate(self.draft_status):
|
||||
values = {
|
||||
'name': 'Random Leave',
|
||||
'name': 'Random Time Off',
|
||||
'employee_id': self.employee_hruser.id,
|
||||
'holiday_status_id': status.id,
|
||||
}
|
||||
@@ -341,7 +341,7 @@ class TestAcessRightsStates(TestHrHolidaysAccessRightsCommon):
|
||||
self.employee_hrmanager.write({'leave_manager_id': self.user_hrmanager.id})
|
||||
for i, status in enumerate(self.draft_status):
|
||||
values = {
|
||||
'name': 'Random Leave',
|
||||
'name': 'Random Time Off',
|
||||
'employee_id': self.employee_hrmanager.id,
|
||||
'holiday_status_id': status.id,
|
||||
}
|
||||
@@ -354,7 +354,7 @@ class TestAcessRightsStates(TestHrHolidaysAccessRightsCommon):
|
||||
"""
|
||||
for i, status in enumerate(self.draft_status):
|
||||
values = {
|
||||
'name': 'Random Leave',
|
||||
'name': 'Random Time Off',
|
||||
'employee_id': self.employee_hruser.id,
|
||||
'holiday_status_id': status.id,
|
||||
}
|
||||
@@ -368,7 +368,7 @@ class TestAcessRightsStates(TestHrHolidaysAccessRightsCommon):
|
||||
"""
|
||||
for i, status in enumerate(self.draft_status):
|
||||
values = {
|
||||
'name': 'Random Leave',
|
||||
'name': 'Random Time Off',
|
||||
'employee_id': self.employee_hruser.id,
|
||||
'holiday_status_id': status.id,
|
||||
}
|
||||
@@ -721,7 +721,7 @@ class TestAccessRightsUnlink(TestHrHolidaysAccessRightsCommon):
|
||||
def test_leave_unlink_draft_by_user(self):
|
||||
""" A simple user may delete its leave in draft state in the future"""
|
||||
values = {
|
||||
'name': 'Random Leave',
|
||||
'name': 'Random Time Off',
|
||||
'employee_id': self.employee_emp.id,
|
||||
'holiday_status_id': self.leave_type.id,
|
||||
'state': 'draft',
|
||||
@@ -732,7 +732,7 @@ class TestAccessRightsUnlink(TestHrHolidaysAccessRightsCommon):
|
||||
def test_leave_unlink_confirm_by_user(self):
|
||||
""" A simple user may delete its leave in confirm state in the future"""
|
||||
values = {
|
||||
'name': 'Random Leave',
|
||||
'name': 'Random Time Off',
|
||||
'employee_id': self.employee_emp.id,
|
||||
'holiday_status_id': self.leave_type.id,
|
||||
'state': 'confirm',
|
||||
@@ -743,7 +743,7 @@ class TestAccessRightsUnlink(TestHrHolidaysAccessRightsCommon):
|
||||
def test_leave_unlink_confirm_in_past_by_user(self):
|
||||
""" A simple user cannot delete its leave in the past"""
|
||||
values = {
|
||||
'name': 'Random Leave',
|
||||
'name': 'Random Time Off',
|
||||
'employee_id': self.employee_emp.id,
|
||||
'holiday_status_id': self.leave_type.id,
|
||||
'state': 'confirm',
|
||||
@@ -755,7 +755,7 @@ class TestAccessRightsUnlink(TestHrHolidaysAccessRightsCommon):
|
||||
def test_leave_unlink_validate_by_user(self):
|
||||
""" A simple user cannot delete its leave in validate state"""
|
||||
values = {
|
||||
'name': 'Random Leave',
|
||||
'name': 'Random Time Off',
|
||||
'employee_id': self.employee_emp.id,
|
||||
'holiday_status_id': self.leave_type.id,
|
||||
}
|
||||
|
||||
@@ -70,19 +70,19 @@ class TestCompanyLeave(TransactionCase):
|
||||
|
||||
all_leaves = self.env['hr.leave'].search([('employee_id', '=', self.employee.id)], order='id')
|
||||
self.assertEqual(len(all_leaves), 4)
|
||||
# Original Leave
|
||||
# Original Time Off
|
||||
self.assertEqual(leave.state, 'refuse')
|
||||
# before leave
|
||||
# Before Time Off
|
||||
self.assertEqual(all_leaves[1].date_from, datetime(2020, 1, 7, 7, 0))
|
||||
self.assertEqual(all_leaves[1].date_to, datetime(2020, 1, 7, 16, 0))
|
||||
self.assertEqual(all_leaves[1].number_of_days, 1)
|
||||
self.assertEqual(all_leaves[1].state, 'confirm')
|
||||
# After leave
|
||||
# After Time Off
|
||||
self.assertEqual(all_leaves[2].date_from, datetime(2020, 1, 9, 7, 0))
|
||||
self.assertEqual(all_leaves[2].date_to, datetime(2020, 1, 9, 16, 0))
|
||||
self.assertEqual(all_leaves[2].number_of_days, 1)
|
||||
self.assertEqual(all_leaves[2].state, 'confirm')
|
||||
# Company Leave
|
||||
# Company Time Off
|
||||
self.assertEqual(all_leaves[3].date_from, datetime(2020, 1, 8, 7, 0))
|
||||
self.assertEqual(all_leaves[3].date_to, datetime(2020, 1, 8, 16, 0))
|
||||
self.assertEqual(all_leaves[3].number_of_days, 1)
|
||||
@@ -124,26 +124,26 @@ class TestCompanyLeave(TransactionCase):
|
||||
|
||||
all_leaves = self.env['hr.leave'].search([('employee_id', '=', self.employee.id)], order='id')
|
||||
self.assertEqual(len(all_leaves), 4)
|
||||
# Original Leave
|
||||
# Original Time Off
|
||||
self.assertEqual(leave.state, 'refuse')
|
||||
# before leave
|
||||
# Before Time Off
|
||||
self.assertEqual(all_leaves[1].date_from, datetime(2020, 1, 7, 7, 0))
|
||||
self.assertEqual(all_leaves[1].date_to, datetime(2020, 1, 7, 16, 0))
|
||||
self.assertEqual(all_leaves[1].number_of_days, 1)
|
||||
self.assertEqual(all_leaves[1].state, 'confirm')
|
||||
# After leave
|
||||
# After Time Off
|
||||
self.assertEqual(all_leaves[2].date_from, datetime(2020, 1, 9, 7, 0))
|
||||
self.assertEqual(all_leaves[2].date_to, datetime(2020, 1, 9, 16, 0))
|
||||
self.assertEqual(all_leaves[2].number_of_days, 1)
|
||||
self.assertEqual(all_leaves[2].state, 'confirm')
|
||||
# Company Leave
|
||||
# Company Time Off
|
||||
self.assertEqual(all_leaves[3].date_from, datetime(2020, 1, 8, 7, 0))
|
||||
self.assertEqual(all_leaves[3].date_to, datetime(2020, 1, 8, 16, 0))
|
||||
self.assertEqual(all_leaves[3].number_of_days, 1)
|
||||
self.assertEqual(all_leaves[3].state, 'validate')
|
||||
|
||||
def test_leave_whole_company_03(self):
|
||||
# TEST CASE 3: Leaves taken in half-days. Take a 0.5 days leave
|
||||
# TEST CASE 3: Time Off taken in half-days. Take a 0.5 days leave
|
||||
# Add a company leave on the same day
|
||||
# Check that leave refused
|
||||
self.paid_time_off.request_unit = 'half_day'
|
||||
@@ -180,9 +180,9 @@ class TestCompanyLeave(TransactionCase):
|
||||
|
||||
all_leaves = self.env['hr.leave'].search([('employee_id', '=', self.employee.id)], order='id')
|
||||
self.assertEqual(len(all_leaves), 2)
|
||||
# Original Leave
|
||||
# Original Time Off
|
||||
self.assertEqual(leave.state, 'refuse')
|
||||
# Company Leave
|
||||
# Company Time Off
|
||||
self.assertEqual(all_leaves[1].date_from, datetime(2020, 1, 7, 7, 0))
|
||||
self.assertEqual(all_leaves[1].date_to, datetime(2020, 1, 7, 16, 0))
|
||||
self.assertEqual(all_leaves[1].number_of_days, 1)
|
||||
@@ -224,9 +224,9 @@ class TestCompanyLeave(TransactionCase):
|
||||
|
||||
all_leaves = self.env['hr.leave'].search([('employee_id', '=', self.employee.id)], order='id')
|
||||
self.assertEqual(len(all_leaves), 2)
|
||||
# Original Leave
|
||||
# Original Time Off
|
||||
self.assertEqual(leave.state, 'refuse')
|
||||
# Company Leave
|
||||
# Company Time Off
|
||||
self.assertEqual(all_leaves[1].date_from, datetime(2020, 1, 9, 7, 0))
|
||||
self.assertEqual(all_leaves[1].date_to, datetime(2020, 1, 9, 16, 0))
|
||||
self.assertEqual(all_leaves[1].number_of_days, 1)
|
||||
@@ -275,14 +275,14 @@ class TestCompanyLeave(TransactionCase):
|
||||
|
||||
all_leaves = self.env['hr.leave'].search([('employee_id', '=', self.employee.id)], order='id')
|
||||
self.assertEqual(len(all_leaves), 3)
|
||||
# Original Leave
|
||||
# Original Time Off
|
||||
self.assertEqual(leave.state, 'refuse')
|
||||
# before leave
|
||||
# Before Time Off
|
||||
self.assertEqual(all_leaves[1].date_from, datetime(2020, 1, 6, 7, 0))
|
||||
self.assertEqual(all_leaves[1].date_to, datetime(2020, 1, 9, 16, 0))
|
||||
self.assertEqual(all_leaves[1].number_of_days, 2)
|
||||
self.assertEqual(all_leaves[1].state, 'confirm')
|
||||
# Company Leave
|
||||
# Company Time Off
|
||||
self.assertEqual(all_leaves[2].date_from, datetime(2020, 1, 10, 7, 0))
|
||||
self.assertEqual(all_leaves[2].date_to, datetime(2020, 1, 10, 16, 0))
|
||||
self.assertEqual(all_leaves[2].number_of_days, 1)
|
||||
|
||||
@@ -46,13 +46,13 @@ class TestGlobalLeaves(TestHrHolidaysCommon):
|
||||
})
|
||||
|
||||
cls.global_leave = cls.env['resource.calendar.leaves'].create({
|
||||
'name': 'Global Leave',
|
||||
'name': 'Global Time Off',
|
||||
'date_from': date(2022, 3, 7),
|
||||
'date_to': date(2022, 3, 7),
|
||||
})
|
||||
|
||||
cls.calendar_leave = cls.env['resource.calendar.leaves'].create({
|
||||
'name': 'Global Leave',
|
||||
'name': 'Global Time Off',
|
||||
'date_from': date(2022, 3, 8),
|
||||
'date_to': date(2022, 3, 8),
|
||||
'calendar_id': cls.calendar_1.id,
|
||||
@@ -61,7 +61,7 @@ class TestGlobalLeaves(TestHrHolidaysCommon):
|
||||
def test_leave_on_global_leave(self):
|
||||
with self.assertRaises(ValidationError):
|
||||
self.env['resource.calendar.leaves'].create({
|
||||
'name': 'Wrong Leave',
|
||||
'name': 'Wrong Time Off',
|
||||
'date_from': date(2022, 3, 7),
|
||||
'date_to': date(2022, 3, 7),
|
||||
'calendar_id': self.calendar_1.id,
|
||||
@@ -69,14 +69,14 @@ class TestGlobalLeaves(TestHrHolidaysCommon):
|
||||
|
||||
with self.assertRaises(ValidationError):
|
||||
self.env['resource.calendar.leaves'].create({
|
||||
'name': 'Wrong Leave',
|
||||
'name': 'Wrong Time Off',
|
||||
'date_from': date(2022, 3, 7),
|
||||
'date_to': date(2022, 3, 7),
|
||||
})
|
||||
|
||||
def test_leave_on_calendar_leave(self):
|
||||
self.env['resource.calendar.leaves'].create({
|
||||
'name': 'Correct Leave',
|
||||
'name': 'Correct Time Off',
|
||||
'date_from': date(2022, 3, 8),
|
||||
'date_to': date(2022, 3, 8),
|
||||
'calendar_id': self.calendar_2.id,
|
||||
@@ -84,14 +84,14 @@ class TestGlobalLeaves(TestHrHolidaysCommon):
|
||||
|
||||
with self.assertRaises(ValidationError):
|
||||
self.env['resource.calendar.leaves'].create({
|
||||
'name': 'Wrong Leave',
|
||||
'name': 'Wrong Time Off',
|
||||
'date_from': date(2022, 3, 8),
|
||||
'date_to': date(2022, 3, 8),
|
||||
})
|
||||
|
||||
with self.assertRaises(ValidationError):
|
||||
self.env['resource.calendar.leaves'].create({
|
||||
'name': 'Wrong Leave',
|
||||
'name': 'Wrong Time Off',
|
||||
'date_from': date(2022, 3, 8),
|
||||
'date_to': date(2022, 3, 8),
|
||||
'calendar_id': self.calendar_1.id,
|
||||
|
||||
@@ -19,11 +19,11 @@ class TestHrHolidaysCancelLeave(TestHrHolidaysCommon):
|
||||
leave_end_datetime = leave_start_datetime + relativedelta(days=3)
|
||||
|
||||
cls.hr_leave_type = cls.env['hr.leave.type'].with_user(cls.user_hrmanager).create({
|
||||
'name': 'Leave Type',
|
||||
'name': 'Time Off Type',
|
||||
'requires_allocation': 'no',
|
||||
})
|
||||
cls.holiday = cls.env['hr.leave'].with_context(mail_create_nolog=True, mail_notrack=True).with_user(cls.user_employee).create({
|
||||
'name': 'Leave 1',
|
||||
'name': 'Time Off 1',
|
||||
'employee_id': cls.employee_emp.id,
|
||||
'holiday_status_id': cls.hr_leave_type.id,
|
||||
'date_from': leave_start_datetime,
|
||||
|
||||
@@ -201,7 +201,7 @@ class TestLeaveRequests(TestHrHolidaysCommon):
|
||||
leave = leave_form.save()
|
||||
leave.action_approve()
|
||||
member_ids = self.hr_dept.member_ids.ids
|
||||
self.assertEqual(self.env['hr.leave'].search_count([('employee_id', 'in', member_ids)]), len(member_ids), "Leave should be created for members of department")
|
||||
self.assertEqual(self.env['hr.leave'].search_count([('employee_id', 'in', member_ids)]), len(member_ids), "Time Off should be created for members of department")
|
||||
|
||||
@mute_logger('odoo.models.unlink', 'odoo.addons.mail.models.mail_mail')
|
||||
def test_allocation_request(self):
|
||||
@@ -414,7 +414,7 @@ class TestLeaveRequests(TestHrHolidaysCommon):
|
||||
(0, 0, {'name': 'Friday Afternoon', 'dayofweek': '4', 'hour_from': 13, 'hour_to': 17, 'day_period': 'afternoon'})
|
||||
],
|
||||
'global_leave_ids': [(0, 0, {
|
||||
'name': 'Christmas Leave',
|
||||
'name': 'Christmas Time Off',
|
||||
'date_from': fields.Datetime.from_string('2019-12-25 00:00:00'),
|
||||
'date_to': fields.Datetime.from_string('2019-12-26 23:59:59'),
|
||||
'resource_id': False,
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
<div class="float-end"
|
||||
t-if="record.hr_icon_display.raw_value == 'presence_holiday_absent'"
|
||||
name="presence_absent">
|
||||
<span class="fa fa-plane text-warning" role="img" aria-label="To define" title="On Leave"/>
|
||||
<span class="fa fa-plane text-warning" role="img" aria-label="To define" title="On Time Off"/>
|
||||
</div>
|
||||
</xpath>
|
||||
</field>
|
||||
@@ -138,7 +138,7 @@
|
||||
<div class="float-end"
|
||||
t-if="record.hr_icon_display.raw_value == 'presence_holiday_absent'"
|
||||
name="presence_absent">
|
||||
<span class="fa fa-plane text-warning" role="img" aria-label="To define" title="On Leave"/>
|
||||
<span class="fa fa-plane text-warning" role="img" aria-label="To define" title="On Time Off"/>
|
||||
</div>
|
||||
</xpath>
|
||||
<xpath expr="//li[@id='last_login']" position="inside">
|
||||
@@ -167,7 +167,7 @@
|
||||
<!-- Employee is absent, in holiday but he is connected -->
|
||||
<div role="img" class="fa fa-fw fa-plane text-success o_button_icon hr_presence" attrs="{'invisible': [('hr_icon_display', '!=', 'presence_holiday_present')]}" aria-label="Present but on leave" title="Present but on leave" name="presence_absent_active"/>
|
||||
<!-- Employee is on holiday, not present and not connected -->
|
||||
<div role="img" class="fa fa-fw fa-plane text-warning o_button_icon hr_presence" attrs="{'invisible': [('hr_icon_display', '!=', 'presence_holiday_absent')]}" aria-label="On Leave" title="On Leave" name="presence_absent"/>
|
||||
<div role="img" class="fa fa-fw fa-plane text-warning o_button_icon hr_presence" attrs="{'invisible': [('hr_icon_display', '!=', 'presence_holiday_absent')]}" aria-label="On Time Off" title="On Time Off" name="presence_absent"/>
|
||||
</xpath>
|
||||
<xpath expr="//group[@name='managers']" position="inside">
|
||||
<field name="leave_manager_id"/>
|
||||
|
||||
@@ -9,7 +9,7 @@ from odoo import api, fields, models
|
||||
class HrDepartureWizard(models.TransientModel):
|
||||
_inherit = 'hr.departure.wizard'
|
||||
|
||||
cancel_leaves = fields.Boolean("Cancel Future Leaves", default=True,
|
||||
cancel_leaves = fields.Boolean("Cancel Future Time Off", default=True,
|
||||
help="Cancel all time off after this date.")
|
||||
archive_allocation = fields.Boolean("Archive Employee Allocations", default=True,
|
||||
help="Remove employee from existing accrual plans.")
|
||||
|
||||
@@ -2,14 +2,13 @@
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import fields, models, _
|
||||
from odoo.exceptions import ValidationError
|
||||
|
||||
|
||||
class HrHolidaysCancelLeave(models.TransientModel):
|
||||
_name = 'hr.holidays.cancel.leave'
|
||||
_description = 'Cancel Leave Wizard'
|
||||
_description = 'Cancel Time Off Wizard'
|
||||
|
||||
leave_id = fields.Many2one('hr.leave', required=True)
|
||||
leave_id = fields.Many2one('hr.leave', string="Time Off Request", required=True)
|
||||
reason = fields.Text(required=True)
|
||||
|
||||
def action_cancel_leave(self):
|
||||
|
||||
@@ -44,13 +44,13 @@ class TestWorkEntryBase(TransactionCase):
|
||||
})
|
||||
|
||||
cls.work_entry_type_unpaid = cls.env['hr.work.entry.type'].create({
|
||||
'name': 'Unpaid Leave',
|
||||
'name': 'Unpaid Time Off',
|
||||
'is_leave': True,
|
||||
'code': 'LEAVETEST300',
|
||||
})
|
||||
|
||||
cls.work_entry_type_leave = cls.env['hr.work.entry.type'].create({
|
||||
'name': 'Leave',
|
||||
'name': 'Time Off',
|
||||
'is_leave': True,
|
||||
'code': 'LEAVETEST100'
|
||||
})
|
||||
|
||||
@@ -8,7 +8,7 @@ from odoo.exceptions import RedirectWarning, UserError
|
||||
class AccountAnalyticLine(models.Model):
|
||||
_inherit = 'account.analytic.line'
|
||||
|
||||
holiday_id = fields.Many2one("hr.leave", string='Leave Request', copy=False)
|
||||
holiday_id = fields.Many2one("hr.leave", string='Time Off Request', copy=False)
|
||||
global_leave_id = fields.Many2one("resource.calendar.leaves", string="Global Time Off", ondelete='cascade')
|
||||
task_id = fields.Many2one(domain="[('company_id', '=', company_id), ('project_id.allow_timesheets', '=', True),"
|
||||
"('project_id', '=?', project_id), ('is_timeoff_task', '=', False)]")
|
||||
|
||||
@@ -6,7 +6,7 @@ from odoo import fields, models, _
|
||||
class Task(models.Model):
|
||||
_inherit = 'project.task'
|
||||
|
||||
leave_types_count = fields.Integer(compute='_compute_leave_types_count')
|
||||
leave_types_count = fields.Integer(compute='_compute_leave_types_count', string="Time Off Types Count")
|
||||
is_timeoff_task = fields.Boolean("Is Time off Task", compute="_compute_is_timeoff_task", search="_search_is_timeoff_task")
|
||||
|
||||
def _compute_leave_types_count(self):
|
||||
|
||||
@@ -18,7 +18,7 @@ class TestTimesheetHolidaysCreate(common.TransactionCase):
|
||||
def test_status_create(self):
|
||||
"""Ensure that when a status is created, it fullfills the project and task constrains"""
|
||||
status = self.env['hr.leave.type'].create({
|
||||
'name': 'A nice Leave Type',
|
||||
'name': 'A nice Time Off Type',
|
||||
'requires_allocation': 'no'
|
||||
})
|
||||
|
||||
@@ -55,14 +55,14 @@ class TestTimesheetHolidays(TestCommonTimesheet):
|
||||
self.internal_task_leaves = self.env.company.leave_timesheet_task_id
|
||||
|
||||
self.hr_leave_type_with_ts = self.env['hr.leave.type'].create({
|
||||
'name': 'Leave Type with timesheet generation',
|
||||
'name': 'Time Off Type with timesheet generation',
|
||||
'requires_allocation': 'no',
|
||||
'timesheet_generate': True,
|
||||
'timesheet_project_id': self.internal_project.id,
|
||||
'timesheet_task_id': self.internal_task_leaves.id,
|
||||
})
|
||||
self.hr_leave_type_no_ts = self.env['hr.leave.type'].create({
|
||||
'name': 'Leave Type without timesheet generation',
|
||||
'name': 'Time Off Type without timesheet generation',
|
||||
'requires_allocation': 'no',
|
||||
'timesheet_generate': False,
|
||||
'timesheet_project_id': False,
|
||||
@@ -97,7 +97,7 @@ class TestTimesheetHolidays(TestCommonTimesheet):
|
||||
# employee creates a leave request
|
||||
number_of_days = (self.leave_end_datetime - self.leave_start_datetime).days
|
||||
holiday = self.Requests.with_user(self.user_employee).create({
|
||||
'name': 'Leave 1',
|
||||
'name': 'Time Off 1',
|
||||
'employee_id': self.empl_employee.id,
|
||||
'holiday_status_id': self.hr_leave_type_with_ts.id,
|
||||
'date_from': self.leave_start_datetime,
|
||||
@@ -120,7 +120,7 @@ class TestTimesheetHolidays(TestCommonTimesheet):
|
||||
# employee creates a leave request
|
||||
number_of_days = (self.leave_end_datetime - self.leave_start_datetime).days
|
||||
holiday = self.Requests.with_user(self.user_employee).create({
|
||||
'name': 'Leave 1',
|
||||
'name': 'Time Off 1',
|
||||
'employee_id': self.empl_employee.id,
|
||||
'holiday_status_id': self.hr_leave_type_no_ts.id,
|
||||
'date_from': self.leave_start_datetime,
|
||||
@@ -134,7 +134,7 @@ class TestTimesheetHolidays(TestCommonTimesheet):
|
||||
def test_cancel_validate_holidays(self):
|
||||
number_of_days = (self.leave_end_datetime - self.leave_start_datetime).days
|
||||
holiday = self.Requests.with_user(self.user_employee).create({
|
||||
'name': 'Leave 1',
|
||||
'name': 'Time Off 1',
|
||||
'employee_id': self.empl_employee.id,
|
||||
'holiday_status_id': self.hr_leave_type_with_ts.id,
|
||||
'date_from': self.leave_start_datetime,
|
||||
@@ -173,7 +173,7 @@ class TestTimesheetHolidays(TestCommonTimesheet):
|
||||
})
|
||||
|
||||
holiday = self.Requests.with_user(self.user_employee).create({
|
||||
'name': 'Leave 1',
|
||||
'name': 'Time Off 1',
|
||||
'employee_id': self.empl_employee.id,
|
||||
'holiday_status_id': self.hr_leave_type_with_ts.id,
|
||||
'date_from': leave_start_datetime,
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="Resource" name="resource" domain="[]" context="{'group_by':'resource_id'}"/>
|
||||
<filter string="Company" name="company" domain="[]" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
|
||||
<filter string="Leave Date" name="leave_month" domain="[]" context="{'group_by':'date_from'}" help="Starting Date of Leave"/>
|
||||
<filter string="Time Off Date" name="leave_month" domain="[]" context="{'group_by':'date_from'}" help="Starting Date of Time Off"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
@@ -126,7 +126,7 @@
|
||||
<field name="name">resource.calendar.leaves.form</field>
|
||||
<field name="model">resource.calendar.leaves</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Leave Detail">
|
||||
<form string="Time Off Detail">
|
||||
<field name="company_id" invisible="1"/>
|
||||
<sheet>
|
||||
<group>
|
||||
@@ -151,7 +151,7 @@
|
||||
<field name="model">resource.calendar.leaves</field>
|
||||
<field name="priority">1</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Leave Detail">
|
||||
<tree string="Time Off Detail">
|
||||
<field name="name" string="Reason"/>
|
||||
<field name="resource_id" />
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
|
||||
@@ -124,7 +124,7 @@ class TestCalendar(TestResourceCommon):
|
||||
|
||||
def test_get_work_hours_count(self):
|
||||
self.env['resource.calendar.leaves'].create({
|
||||
'name': 'Global Leave',
|
||||
'name': 'Global Time Off',
|
||||
'resource_id': False,
|
||||
'calendar_id': self.calendar_jean.id,
|
||||
'date_from': datetime_str(2018, 4, 3, 0, 0, 0, tzinfo=self.jean.tz),
|
||||
@@ -248,7 +248,7 @@ class TestCalendar(TestResourceCommon):
|
||||
|
||||
# 2 weeks calendar week 2, leave during a day where he doesn't work this week
|
||||
leave = self.env['resource.calendar.leaves'].create({
|
||||
'name': 'Leave Jules week 2',
|
||||
'name': 'Time Off Jules week 2',
|
||||
'calendar_id': self.calendar_jules.id,
|
||||
'resource_id': False,
|
||||
'date_from': datetime_str(2018, 4, 11, 4, 0, 0, tzinfo=self.jules.tz),
|
||||
@@ -265,7 +265,7 @@ class TestCalendar(TestResourceCommon):
|
||||
|
||||
# 2 weeks calendar week 2, leave during a day where he works this week
|
||||
leave = self.env['resource.calendar.leaves'].create({
|
||||
'name': 'Leave Jules week 2',
|
||||
'name': 'Time Off Jules week 2',
|
||||
'calendar_id': self.calendar_jules.id,
|
||||
'resource_id': False,
|
||||
'date_from': datetime_str(2018, 4, 9, 0, 0, 0, tzinfo=self.jules.tz),
|
||||
|
||||
Reference in New Issue
Block a user