[FIX] hr_holidays: float representation issues with 38 hours schedule

Steps:
- Install Time Off
- Go to Employees
- Click an employee (A)
- Change Work Information > Schedule > Working Hours to "Standard 38 hours/week"
- Go to Time Off > Managers > Time Off
- Click Create
- Select employee (A)
- In the title, select Unpaid
- From 2020-12-20 to 2020-12-24

Bug:
Float representation issue: 4.00 Days (30.400000000000002 Hours)

Explanation:
Changing formatting of `number_of_hours_text` from '%s' to '%g'. This affects the way this value is displayed: 0.0 Hours is now 0 Hours.

opw:2418740

X-original-commit: 0bbd31ca0a2c24fac55e2f6277d727a1d0c58c54
This commit is contained in:
nie
2020-12-29 11:24:20 +00:00
parent 7c7822bd7d
commit 37bc6b52a7
2 changed files with 13 additions and 13 deletions
+1 -1
View File
@@ -522,7 +522,7 @@ class HolidaysRequest(models.Model):
def _compute_number_of_hours_text(self):
# YTI Note: All this because a readonly field takes all the width on edit mode...
for leave in self:
leave.number_of_hours_text = '%s%s Hours%s' % (
leave.number_of_hours_text = '%s%g Hours%s' % (
'' if leave.request_unit_half or leave.request_unit_hours else '(',
float_round(leave.number_of_hours_display, precision_digits=2),
'' if leave.request_unit_half or leave.request_unit_hours else ')')
@@ -34,7 +34,7 @@ class TestAutomaticLeaveDates(TestHrHolidaysCommon):
leave_form.request_date_from_period = 'am'
self.assertEqual(leave_form.number_of_days_display, 0)
self.assertEqual(leave_form.number_of_hours_text, '0.0 Hours')
self.assertEqual(leave_form.number_of_hours_text, '0 Hours')
def test_single_attendance_on_morning_and_afternoon(self):
calendar = self.env['resource.calendar'].create({
@@ -67,12 +67,12 @@ class TestAutomaticLeaveDates(TestHrHolidaysCommon):
leave_form.request_date_from_period = 'am'
self.assertEqual(leave_form.number_of_days_display, .5)
self.assertEqual(leave_form.number_of_hours_text, '4.0 Hours')
self.assertEqual(leave_form.number_of_hours_text, '4 Hours')
leave_form.request_date_from_period = 'pm'
self.assertEqual(leave_form.number_of_days_display, .5)
self.assertEqual(leave_form.number_of_hours_text, '4.0 Hours')
self.assertEqual(leave_form.number_of_hours_text, '4 Hours')
def test_multiple_attendance_on_morning(self):
calendar = self.env['resource.calendar'].create({
@@ -111,12 +111,12 @@ class TestAutomaticLeaveDates(TestHrHolidaysCommon):
leave_form.request_date_from_period = 'am'
self.assertEqual(leave_form.number_of_days_display, .5)
self.assertEqual(leave_form.number_of_hours_text, '4.0 Hours')
self.assertEqual(leave_form.number_of_hours_text, '4 Hours')
leave_form.request_date_from_period = 'pm'
self.assertEqual(leave_form.number_of_days_display, .5)
self.assertEqual(leave_form.number_of_hours_text, '4.0 Hours')
self.assertEqual(leave_form.number_of_hours_text, '4 Hours')
def test_attendance_on_morning(self):
calendar = self.env['resource.calendar'].create({
@@ -141,13 +141,13 @@ class TestAutomaticLeaveDates(TestHrHolidaysCommon):
leave_form.request_date_from_period = 'am'
self.assertEqual(leave_form.number_of_days_display, 1)
self.assertEqual(leave_form.number_of_hours_text, '8.0 Hours')
self.assertEqual(leave_form.number_of_hours_text, '8 Hours')
# Ask for afternoon
leave_form.request_date_from_period = 'pm'
self.assertEqual(leave_form.number_of_days_display, 1)
self.assertEqual(leave_form.number_of_hours_text, '8.0 Hours')
self.assertEqual(leave_form.number_of_hours_text, '8 Hours')
def test_attendance_next_day(self):
self.env.user.tz = 'Europe/Brussels'
@@ -174,7 +174,7 @@ class TestAutomaticLeaveDates(TestHrHolidaysCommon):
self.assertEqual(leave_form.number_of_days_display, 0)
self.assertEqual(leave_form.number_of_hours_text, '0.0 Hours')
self.assertEqual(leave_form.number_of_hours_text, '0 Hours')
self.assertEqual(leave_form.date_from, datetime(2019, 9, 2, 6, 0, 0))
self.assertEqual(leave_form.date_to, datetime(2019, 9, 2, 10, 0, 0))
@@ -203,7 +203,7 @@ class TestAutomaticLeaveDates(TestHrHolidaysCommon):
self.assertEqual(leave_form.number_of_days_display, 0)
self.assertEqual(leave_form.number_of_hours_text, '0.0 Hours')
self.assertEqual(leave_form.number_of_hours_text, '0 Hours')
self.assertEqual(leave_form.date_from, datetime(2019, 9, 3, 6, 0, 0))
self.assertEqual(leave_form.date_to, datetime(2019, 9, 3, 10, 0, 0))
@@ -242,7 +242,7 @@ class TestAutomaticLeaveDates(TestHrHolidaysCommon):
leave_form.request_date_from_period = 'am'
self.assertEqual(leave_form.number_of_days_display, 1)
self.assertEqual(leave_form.number_of_hours_text, '2.0 Hours')
self.assertEqual(leave_form.number_of_hours_text, '2 Hours')
self.assertEqual(leave_form.date_from, datetime(2019, 9, 2, 8, 0, 0))
self.assertEqual(leave_form.date_to, datetime(2019, 9, 2, 10, 0, 0))
@@ -255,7 +255,7 @@ class TestAutomaticLeaveDates(TestHrHolidaysCommon):
leave_form.request_date_from_period = 'am'
self.assertEqual(leave_form.number_of_days_display, 1)
self.assertEqual(leave_form.number_of_hours_text, '4.0 Hours')
self.assertEqual(leave_form.number_of_hours_text, '4 Hours')
self.assertEqual(leave_form.date_from, datetime(2019, 9, 9, 6, 0, 0))
self.assertEqual(leave_form.date_to, datetime(2019, 9, 9, 10, 0, 0))
@@ -286,6 +286,6 @@ class TestAutomaticLeaveDates(TestHrHolidaysCommon):
leave_form.request_date_from_period = 'am'
self.assertEqual(leave_form.number_of_days_display, 0)
self.assertEqual(leave_form.number_of_hours_text, '0.0 Hours')
self.assertEqual(leave_form.number_of_hours_text, '0 Hours')
self.assertEqual(leave_form.date_from, datetime(2019, 9, 2, 6, 0, 0))
self.assertEqual(leave_form.date_to, datetime(2019, 9, 2, 10, 0, 0))