diff --git a/verdigado_attendance/models/hr_leave_type.py b/verdigado_attendance/models/hr_leave_type.py
index 86cb760..0e29e54 100644
--- a/verdigado_attendance/models/hr_leave_type.py
+++ b/verdigado_attendance/models/hr_leave_type.py
@@ -12,7 +12,13 @@ class HrLeaveType(models.Model):
def _get_days_request(self):
"""Add a formatted version for every field used in calendar header"""
result = super()._get_days_request()
- for key in ("virtual_leaves_taken", "virtual_remaining_leaves"):
+ for key in (
+ "virtual_leaves_taken",
+ "virtual_remaining_leaves",
+ "usable_remaining_leaves",
+ ):
+ if key not in result[1]:
+ continue
if result[1]["request_unit"] == "hour":
formatted = self.env["ir.qweb.field.float_time"].value_to_html(
float(result[1][key]), {}
@@ -21,6 +27,13 @@ def _get_days_request(self):
formatted = result[1][key]
result[1]["%s_formatted" % key] = formatted
result[1]["dashboard_action_id"] = self.dashboard_action_id.id
+ if (
+ "usable_remaining_leaves_formatted" in result[1]
+ and "virtual_remaining_leaves_formatted" not in result[1]
+ ):
+ result[1]["virtual_remaining_leaves_formatted"] = result[1][
+ "virtual_usable_leaves_formatted"
+ ]
return result
@api.model
diff --git a/verdigado_attendance/static/src/js/systray.esm.js b/verdigado_attendance/static/src/js/systray.esm.js
index f326da7..3e8a0e1 100644
--- a/verdigado_attendance/static/src/js/systray.esm.js
+++ b/verdigado_attendance/static/src/js/systray.esm.js
@@ -23,7 +23,7 @@ var OvertimeSystray = Widget.extend({
args: [],
kwargs: {context: session.user_context},
}).then(function (data) {
- self.$("a").text(data[1].virtual_remaining_leaves_formatted);
+ self.$("a").text(data[1].usable_remaining_leaves_formatted);
});
},
});
diff --git a/verdigado_attendance/static/src/xml/hr_holidays.xml b/verdigado_attendance/static/src/xml/hr_holidays.xml
index f08df79..1bfbf32 100644
--- a/verdigado_attendance/static/src/xml/hr_holidays.xml
+++ b/verdigado_attendance/static/src/xml/hr_holidays.xml
@@ -15,19 +15,19 @@
and we replace all of them with the formatted version
/-->
- timeoff[1]['virtual_remaining_leaves_formatted']
+ timeoff[1]['usable_remaining_leaves_formatted']
- timeoff[1]['virtual_remaining_leaves_formatted']
+ timeoff[1]['usable_remaining_leaves_formatted']
diff --git a/verdigado_attendance/tests/test_holidays.py b/verdigado_attendance/tests/test_holidays.py
index e9e0158..b0a0b14 100644
--- a/verdigado_attendance/tests/test_holidays.py
+++ b/verdigado_attendance/tests/test_holidays.py
@@ -1,12 +1,20 @@
# Copyright 2023 Hunki Enterprises BV
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
+from datetime import date
+
from odoo import exceptions
from .hr_case import HrCase
class TestHolidays(HrCase):
+ def _at_date(self, status, date, field):
+ """Return value of some holiday status field at a time"""
+ return status.get_employees_days(
+ self.verdigado_user.employee_id.ids, date=date
+ )[self.verdigado_user.employee_id.id][status.id][field]
+
def test_standard_flow_past(self):
"""Test that employees can request holidays for the past"""
holiday = (
@@ -32,7 +40,9 @@ def test_standard_flow_past(self):
holiday_as_officer = holiday.with_user(self.verdigado_officer)
holiday_as_officer.action_validate()
self.assertEqual(holiday.number_of_days, 3)
- self.assertEqual(holiday_status.remaining_leaves, 27)
+ self.assertEqual(
+ self._at_date(holiday_status, date(2023, 12, 31), "remaining_leaves"), 27
+ )
resource_leave = self.env["resource.calendar.leaves"].search(
[("holiday_id", "in", holiday.ids)]
)
@@ -44,7 +54,9 @@ def test_standard_flow_past(self):
holiday.unlink()
holiday_as_officer.unlink()
self.assertFalse(resource_leave.exists())
- self.assertEqual(holiday_status.remaining_leaves, 30)
+ self.assertEqual(
+ self._at_date(holiday_status, date(2023, 12, 31), "remaining_leaves"), 30
+ )
def test_standard_flow_future(self):
"""Test that employees can request holidays for the future"""
@@ -73,5 +85,10 @@ def test_standard_flow_future(self):
[("holiday_id", "in", holiday.ids)]
)
self.assertTrue(resource_leave)
+ self.assertEqual(
+ self._at_date(holiday_status, date(2042, 12, 31), "remaining_leaves"), 27
+ )
holiday.unlink()
- self.assertEqual(holiday_status.remaining_leaves, 30)
+ self.assertEqual(
+ self._at_date(holiday_status, date(2042, 12, 31), "remaining_leaves"), 30
+ )