Skip to content

Commit 1e451fa

Browse files
committed
[MIG] hr_attendance_modification_tracking: Migration to 16.0
2 parents 7a8560f + 75b333b commit 1e451fa

File tree

3 files changed

+20
-53
lines changed

3 files changed

+20
-53
lines changed

hr_attendance_modification_tracking/i18n/es.po

+1-1
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,6 @@ msgstr ""
190190
#, python-format
191191
msgid ""
192192
"It is not possible to register a new entry because there is already an "
193-
"existing one."
193+
"existing one"
194194
msgstr ""
195195
"No es posible registrar entrada de nuevo porque ya hay una existente"

hr_attendance_modification_tracking/models/hr_attendance.py

+9-20
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44

55
from datetime import timedelta
66

7-
from odoo import _, api, fields, models
8-
from odoo.exceptions import UserError
7+
from odoo import api, fields, models
98

109

1110
class HrAttendance(models.Model):
@@ -28,24 +27,14 @@ class HrAttendance(models.Model):
2827
def create(self, vals):
2928
tolerance = timedelta(seconds=60)
3029
now = fields.Datetime.now()
31-
employee = self.env["hr.employee"].browse(vals.get("employee_id"))
32-
if not employee.attendance_ids:
33-
for check in ["check_in", "check_out"]:
34-
if (
35-
vals.get(check, False)
36-
and abs(fields.Datetime.from_string(vals.get(check)) - now)
37-
> tolerance
38-
):
39-
vals.update({"time_changed_manually": True})
40-
break
41-
return super().create(vals)
42-
else:
43-
raise UserError(
44-
_(
45-
"It is not possible to register a new entry because there is "
46-
"already an existing one."
47-
)
48-
)
30+
for check in ["check_in", "check_out"]:
31+
if (
32+
vals.get(check, False)
33+
and abs(fields.Datetime.from_string(vals.get(check)) - now) > tolerance
34+
):
35+
vals.update({"time_changed_manually": True})
36+
break
37+
return super().create(vals)
4938

5039
def write(self, vals):
5140
tolerance = timedelta(seconds=60)

hr_attendance_modification_tracking/tests/test_hr_attendance.py

+10-32
Original file line numberDiff line numberDiff line change
@@ -6,29 +6,21 @@
66

77
from dateutil.relativedelta import relativedelta
88

9-
from odoo.exceptions import UserError
109
from odoo.tests.common import TransactionCase
1110
from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT as DF
1211

1312

1413
class TestHrAttendanceTracking(TransactionCase):
15-
def setUp(self):
16-
super(TestHrAttendanceTracking, self).setUp()
17-
self.hr_attendance = self.env["hr.attendance"]
18-
self.employee_01 = self.env["hr.employee"].create({"name": "Employee01"})
19-
self.employee_02 = self.env["hr.employee"].create({"name": "Employee02"})
20-
self.employee_03 = self.env["hr.employee"].create({"name": "Employee03"})
21-
self.employee_04 = self.env["hr.employee"].create({"name": "Employee04"})
22-
self.employee_05 = self.env["hr.employee"].create({"name": "Employee05"})
23-
self.employee_06 = self.env["hr.employee"].create({"name": "Employee06"})
24-
self.employee_07 = self.env["hr.employee"].create({"name": "Employee07"})
25-
dti = datetime.now()
26-
self.att_test = self.hr_attendance.create(
27-
{
28-
"employee_id": self.employee_07.id,
29-
"check_in": dti.strftime(DF),
30-
}
31-
)
14+
@classmethod
15+
def setUpClass(cls):
16+
super().setUpClass()
17+
cls.hr_attendance = cls.env["hr.attendance"]
18+
cls.employee_01 = cls.env["hr.employee"].create({"name": "Employee01"})
19+
cls.employee_02 = cls.env["hr.employee"].create({"name": "Employee02"})
20+
cls.employee_03 = cls.env["hr.employee"].create({"name": "Employee03"})
21+
cls.employee_04 = cls.env["hr.employee"].create({"name": "Employee04"})
22+
cls.employee_05 = cls.env["hr.employee"].create({"name": "Employee05"})
23+
cls.employee_06 = cls.env["hr.employee"].create({"name": "Employee06"})
3224

3325
def test_attendance_edit_01(self):
3426
# We can't check kiosk and check-in/check-out form
@@ -151,17 +143,3 @@ def test_attendance_edit_07(self):
151143
False,
152144
"Use case 7: Wrong value, time not changed manually.",
153145
)
154-
155-
def test_attendance_edit_08(self):
156-
# Use case 8:
157-
# Trying to create a check-in with an existing one
158-
dti = datetime.now() + relativedelta(minutes=15)
159-
with self.assertRaises(UserError) as e:
160-
self.att_test.create(
161-
{"employee_id": self.employee_07.id, "check_in": dti.strftime(DF)}
162-
)
163-
self.assertEqual(
164-
e.exception.args[0],
165-
"It is not possible to register a new entry because there is already "
166-
"an existing one.",
167-
)

0 commit comments

Comments
 (0)