diff --git a/beesdoo_shift/i18n/fr.po b/beesdoo_shift/i18n/fr.po
index ff653ee..7964daa 100644
--- a/beesdoo_shift/i18n/fr.po
+++ b/beesdoo_shift/i18n/fr.po
@@ -1692,12 +1692,12 @@ msgid "Replaced id"
msgstr "Id du remplaçant"
#. module: beesdoo_shift
-#: model:ir.model.fields,field_description:beesdoo_shift.field_beesdoo_shift_sheet_expected_replacement_worker_id
+#: model:ir.model.fields,field_description:beesdoo_shift.field_beesdoo_shift_sheet_expected_replaced_id
msgid "Replacement Worker"
msgstr "Travailleur remplaçant"
#. module: beesdoo_shift
-#: model:ir.model.fields,help:beesdoo_shift.field_beesdoo_shift_sheet_expected_replacement_worker_id
+#: model:ir.model.fields,help:beesdoo_shift.field_beesdoo_shift_sheet_expected_replaced_id
msgid "Replacement Worker (must be regular)"
msgstr "Travailleur remplaçant (doit être régulier)"
diff --git a/beesdoo_shift/i18n/fr_BE.po b/beesdoo_shift/i18n/fr_BE.po
index ff653ee..7964daa 100644
--- a/beesdoo_shift/i18n/fr_BE.po
+++ b/beesdoo_shift/i18n/fr_BE.po
@@ -1692,12 +1692,12 @@ msgid "Replaced id"
msgstr "Id du remplaçant"
#. module: beesdoo_shift
-#: model:ir.model.fields,field_description:beesdoo_shift.field_beesdoo_shift_sheet_expected_replacement_worker_id
+#: model:ir.model.fields,field_description:beesdoo_shift.field_beesdoo_shift_sheet_expected_replaced_id
msgid "Replacement Worker"
msgstr "Travailleur remplaçant"
#. module: beesdoo_shift
-#: model:ir.model.fields,help:beesdoo_shift.field_beesdoo_shift_sheet_expected_replacement_worker_id
+#: model:ir.model.fields,help:beesdoo_shift.field_beesdoo_shift_sheet_expected_replaced_id
msgid "Replacement Worker (must be regular)"
msgstr "Travailleur remplaçant (doit être régulier)"
diff --git a/beesdoo_shift/i18n/nl_BE.po b/beesdoo_shift/i18n/nl_BE.po
index 08e3e74..0b16aa5 100644
--- a/beesdoo_shift/i18n/nl_BE.po
+++ b/beesdoo_shift/i18n/nl_BE.po
@@ -1696,12 +1696,12 @@ msgid "Replaced id"
msgstr "Replaced id"
#. module: beesdoo_shift
-#: model:ir.model.fields,field_description:beesdoo_shift.field_beesdoo_shift_sheet_expected_replacement_worker_id
+#: model:ir.model.fields,field_description:beesdoo_shift.field_beesdoo_shift_sheet_expected_replaced_id
msgid "Replacement Worker"
msgstr "Vervangingswerker"
#. module: beesdoo_shift
-#: model:ir.model.fields,help:beesdoo_shift.field_beesdoo_shift_sheet_expected_replacement_worker_id
+#: model:ir.model.fields,help:beesdoo_shift.field_beesdoo_shift_sheet_expected_replaced_id
msgid "Replacement Worker (must be regular)"
msgstr "Vervangingswerker (regelmatig werkregime vereist)"
diff --git a/beesdoo_shift/models/__init__.py b/beesdoo_shift/models/__init__.py
index 4bb8e67..f3e2a19 100644
--- a/beesdoo_shift/models/__init__.py
+++ b/beesdoo_shift/models/__init__.py
@@ -1,5 +1,6 @@
-from . import attendance_sheet
-from . import planning
-from . import res_config_settings
-from . import task
-from . import cooperative_status
+# -*- coding: utf-8 -*-
+import task
+import attendance_sheet
+import planning
+import res_config
+import cooperative_status
diff --git a/beesdoo_shift/models/attendance_sheet.py b/beesdoo_shift/models/attendance_sheet.py
index 366b963..b405750 100644
--- a/beesdoo_shift/models/attendance_sheet.py
+++ b/beesdoo_shift/models/attendance_sheet.py
@@ -1,6 +1,4 @@
-import unittest
-
from datetime import date, datetime, timedelta
from lxml import etree
@@ -17,7 +15,11 @@ class AttendanceSheetShift(models.AbstractModel):
@api.model
def task_type_default_id(self):
parameters = self.env["ir.config_parameter"].sudo()
- id = int(parameters.get_param("beesdoo_shift.task_type_default_id", default=1))
+ id = int(
+ parameters.get_param(
+ "beesdoo_shift.default_task_type_id", default=1
+ )
+ )
task_types = self.env["beesdoo.shift.type"]
return task_types.browse(id)
@@ -30,7 +32,12 @@ class AttendanceSheetShift(models.AbstractModel):
ondelete="cascade",
)
state = fields.Selection(
- [("done", "Present"), ("absent", "Absent"),],
+ [
+ ("done", "Present"),
+ ("absent_0", "Absent - 0 Compensation"),
+ ("absent_1", "Absent - 1 Compensation"),
+ ("absent_2", "Absent - 2 Compensations"),
+ ],
string="Shift State",
required=True,
)
@@ -59,7 +66,7 @@ class AttendanceSheetShift(models.AbstractModel):
class AttendanceSheetShiftExpected(models.Model):
"""
- Already existing shifts on sheet creation.
+ Shifts already expected.
"""
_name = "beesdoo.shift.sheet.expected"
@@ -69,10 +76,7 @@ class AttendanceSheetShiftExpected(models.Model):
super_coop_id = fields.Many2one(
related="task_id.super_coop_id", store=True
)
- compensation_no = fields.Selection(
- [("0", "0"), ("1", "1"), ("2", "2"),], string="Compensations",
- )
- replacement_worker_id = fields.Many2one(
+ replaced_id = fields.Many2one(
"res.partner",
string="Replacement Worker",
help="Replacement Worker (must be regular)",
@@ -83,29 +87,15 @@ class AttendanceSheetShiftExpected(models.Model):
],
)
- @api.onchange("replacement_worker_id")
+ @api.onchange("replaced_id")
def on_change_replacement_worker(self):
- if self.replacement_worker_id:
+ if self.replaced_id:
self.state = "done"
- @api.onchange("state")
- def on_change_state(self):
- if not self.state or self.state == "done":
- self.compensation_no = False
- if self.state == "absent":
- self.compensation_no = "2"
-
- @api.constrains("state", "compensation_no")
- def _constrain_compensation_no(self):
- if self.state == "absent":
- if not self.compensation_no:
- raise UserError(_("A compensation number is required"))
-
class AttendanceSheetShiftAdded(models.Model):
"""
- Not already registered shifts.
- Added shifts are necessarily 'Present'
+ Shifts added during time slot.
"""
_name = "beesdoo.shift.sheet.added"
@@ -177,7 +167,11 @@ class AttendanceSheet(models.Model):
readonly=True,
help="Indicative maximum number of workers.",
)
- notes = fields.Text("Notes", default="", help="Notes about the attendance for the Members Office")
+ notes = fields.Text(
+ "Notes",
+ default="",
+ help="Notes about the attendance for the Members Office",
+ )
is_annotated = fields.Boolean(
compute="_compute_is_annotated",
string="Is annotated",
@@ -285,9 +279,9 @@ class AttendanceSheet(models.Model):
added_ids = [s.worker_id.id for s in self.added_shift_ids]
expected_ids = [s.worker_id.id for s in self.expected_shift_ids]
replacement_ids = [
- s.replacement_worker_id.id
+ s.replaced_id.id
for s in self.expected_shift_ids
- if s.replacement_worker_id.id
+ if s.replaced_id.id
]
ids = added_ids + expected_ids + replacement_ids
@@ -318,6 +312,7 @@ class AttendanceSheet(models.Model):
)
worker = self.env["res.partner"].search([("barcode", "=", barcode)])
+
if not len(worker):
raise UserError(
_(
@@ -364,11 +359,11 @@ class AttendanceSheet(models.Model):
for id in self.expected_shift_ids.ids:
shift = self.env["beesdoo.shift.sheet.expected"].browse(id)
if (
- shift.worker_id == worker and not shift.replacement_worker_id
- ) or shift.replacement_worker_id == worker:
+ shift.worker_id == worker and not shift.replaced_id
+ ) or shift.replaced_id == worker:
shift.state = "done"
return
- if shift.worker_id == worker and shift.replacement_worker_id:
+ if shift.worker_id == worker and shift.replaced_id:
raise UserError(
_("%s was expected as replaced.") % worker.name
)
@@ -416,10 +411,9 @@ class AttendanceSheet(models.Model):
"attendance_sheet_id": new_sheet.id,
"task_id": task.id,
"worker_id": task.worker_id.id,
- "replacement_worker_id": task.replaced_id.id,
+ "replaced_id": task.replaced_id.id,
"task_type_id": task.task_type_id.id,
- "state": "absent",
- "compensation_no": "2",
+ "state": "absent_2",
"working_mode": task.working_mode,
"is_compensation": task.is_compensation,
}
@@ -453,19 +447,10 @@ class AttendanceSheet(models.Model):
# Expected shifts status update
for expected_shift in self.expected_shift_ids:
actual_shift = expected_shift.task_id
- # Merge state with compensations number to fit Task model
- if (
- expected_shift.state == "absent"
- and expected_shift.compensation_no
- ):
- state_converted = "absent_%s" % expected_shift.compensation_no
- else:
- state_converted = expected_shift.state
-
- actual_shift.replaced_id = expected_shift.replacement_worker_id
- actual_shift.state = state_converted
+ actual_shift.replaced_id = expected_shift.replaced_id
+ actual_shift.state = expected_shift.state
- if expected_shift.state == "absent":
+ if expected_shift.state != "done":
mail_template = self.env.ref(
"beesdoo_shift.email_template_non_attendance", False
)
@@ -509,10 +494,8 @@ class AttendanceSheet(models.Model):
{
"state": added_shift.state,
"worker_id": added_shift.worker_id.id,
- "is_regular": not is_compensation
- and is_regular_worker,
- "is_compensation": is_compensation
- and is_regular_worker,
+ "is_regular": not is_compensation and is_regular_worker,
+ "is_compensation": is_compensation and is_regular_worker,
}
)
added_shift.task_id = actual_shift.id
@@ -530,7 +513,9 @@ class AttendanceSheet(models.Model):
raise UserError(_("The sheet has already been validated."))
if self.start_time > datetime.now():
raise UserError(
- _("Attendance sheet can only be validated once the shifts have started.")
+ _(
+ "Attendance sheet can only be validated once the shifts have started."
+ )
)
# Fields validation
diff --git a/beesdoo_shift/security/ir.model.access.csv b/beesdoo_shift/security/ir.model.access.csv
index e99c766..54c57d2 100644
--- a/beesdoo_shift/security/ir.model.access.csv
+++ b/beesdoo_shift/security/ir.model.access.csv
@@ -2,6 +2,7 @@ id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
create_beesdoo_shift_shift,create_edit_beesdoo_shift_shift,model_beesdoo_shift_shift,group_shift_attendance_sheet,1,1,1,0
read_beesdoo_shift_sheet_shift,read_beesdoo_shift_sheet_shift,model_beesdoo_shift_sheet_shift,group_shift_attendance_sheet,1,0,0,0
+create_beesdoo_shift_sheet_shift,create_beesdoo_shift_sheet_shift,model_beesdoo_shift_sheet_shift,group_shift_attendance_sheet,1,1,1,0
create_beesdoo_shift_sheet_expected,create_beesdoo_shift_sheet_expected,model_beesdoo_shift_sheet_expected,group_shift_attendance_sheet,1,1,1,0
manage_beesdoo_shift_sheet_added,manage_beesdoo_shift_sheet_added,model_beesdoo_shift_sheet_added,group_shift_attendance_sheet,1,1,1,1
create_beesdoo_shift_sheet,create_beesdoo_shift_sheet,model_beesdoo_shift_sheet,group_shift_attendance_sheet,1,1,1,0
diff --git a/beesdoo_shift/tests/test_beesdoo_shift.py b/beesdoo_shift/tests/test_beesdoo_shift.py
index 84a7fbc..7b3f358 100644
--- a/beesdoo_shift/tests/test_beesdoo_shift.py
+++ b/beesdoo_shift/tests/test_beesdoo_shift.py
@@ -223,17 +223,16 @@ class TestBeesdooShift(TransactionCase):
# Test consistency with actual shift for sheet 1
for shift in sheet_1.expected_shift_ids:
- self.assertEqual(shift.worker_id, shift.task_id.worker_id)
- self.assertEqual(
- shift.replacement_worker_id, shift.task_id.replaced_id
+ self.assertEquals(shift.worker_id, shift.task_id.worker_id)
+ self.assertEquals(
+ shift.replaced_id, shift.task_id.replaced_id
)
self.assertEqual(shift.task_type_id, shift.task_id.task_type_id)
self.assertEqual(shift.super_coop_id, shift.task_id.super_coop_id)
self.assertEqual(shift.working_mode, shift.task_id.working_mode)
# Status should be "absent" for all shifts
- self.assertEqual(shift.state, "absent")
- self.assertEqual(shift.compensation_no, "2")
+ self.assertEquals(shift.state, "absent_2")
# Empty shift should be considered in max worker number calculation
self.assertEqual(sheet_1.max_worker_no, 4)
@@ -330,8 +329,7 @@ class TestBeesdooShift(TransactionCase):
# Expected shifts edition
sheet_1.expected_shift_ids[1].state = "done"
- sheet_1.expected_shift_ids[1].compensation_no = False
- sheet_1.expected_shift_ids[2].compensation_no = "1"
+ sheet_1.expected_shift_ids[2].state = "absent_1"
# Added shits addition
sheet_1.added_shift_ids |= sheet_1.added_shift_ids.new(
@@ -408,7 +406,7 @@ class TestBeesdooShift(TransactionCase):
)
# sheet_1.expected_shift_ids[0].worker_id
- # sheet_1.expected_shift_ids[2].replacement_worker_id
+ # sheet_1.expected_shift_ids[2].replaced_id
def test_shift_counters(self):
"Test shift counters calculation and cooperative status update"
diff --git a/beesdoo_shift/views/attendance_sheet.xml b/beesdoo_shift/views/attendance_sheet.xml
index e7c4800..941916e 100644
--- a/beesdoo_shift/views/attendance_sheet.xml
+++ b/beesdoo_shift/views/attendance_sheet.xml
@@ -36,24 +36,18 @@
Expected Shifts List
beesdoo.shift.sheet.expected
-
-
-
@@ -88,7 +82,7 @@
-
+