Browse Source

[REF] b_shift : code cleaning

pull/143/head
Elouan Le Bars 4 years ago
parent
commit
e216614c38
  1. 44
      beesdoo_shift/models/attendance_sheet.py
  2. 7
      beesdoo_shift/models/res_config.py
  3. 5
      beesdoo_shift/security/group.xml
  4. 19
      beesdoo_shift/wizard/validate_attendance_sheet.py

44
beesdoo_shift/models/attendance_sheet.py

@ -18,10 +18,7 @@ class AttendanceSheetShift(models.AbstractModel):
@api.model
def default_task_type_id(self):
parameters = self.env["ir.config_parameter"]
id = (
int(parameters.get_param("beesdoo_shift.default_task_type_id"))
or 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)
@ -293,12 +290,13 @@ class AttendanceSheet(models.Model):
@api.constrains("expected_shift_ids", "added_shift_ids")
def _constrain_unique_worker(self):
# Warning : map return generator in python3 (for Odoo 12)
added_ids = map(lambda s: s.worker_id.id, self.added_shift_ids)
expected_ids = map(lambda s: s.worker_id.id, self.expected_shift_ids)
replacement_ids = map(
lambda s: s.replacement_worker_id.id, self.expected_shift_ids
)
replacement_ids = filter(bool, replacement_ids)
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
for s in self.expected_shift_ids
if s.replacement_worker_id.id
]
ids = added_ids + expected_ids + replacement_ids
if (len(ids) - len(set(ids))) > 0:
@ -363,7 +361,7 @@ class AttendanceSheet(models.Model):
worker.working_mode,
)
# expected shifts status update
# Expected shifts status update
for id in self.expected_shift_ids.ids:
shift = self.env["beesdoo.shift.sheet.expected"].browse(id)
if (
@ -380,19 +378,17 @@ class AttendanceSheet(models.Model):
added_ids = map(lambda s: s.worker_id.id, self.added_shift_ids)
if worker.id in added_ids:
return
# added shift creation
self.added_shift_ids |= self.added_shift_ids.new(
{
"task_type_id": self.added_shift_ids.default_task_type_id(),
"state": "done",
"attendance_sheet_id": self._origin.id,
"worker_id": worker.id,
"is_compensation": is_compensation,
}
)
if worker.id not in added_ids:
# Added shift creation
self.added_shift_ids |= self.added_shift_ids.new(
{
"task_type_id": self.added_shift_ids.default_task_type_id(),
"state": "done",
"attendance_sheet_id": self._origin.id,
"worker_id": worker.id,
"is_compensation": is_compensation,
}
)
@api.model
def create(self, vals):

7
beesdoo_shift/models/res_config.py

@ -3,6 +3,8 @@
# Copyright 2019-2020 Elouan Le Bars <elouan@coopiteasy.be>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
import ast
from openerp import fields, models, api
@ -12,7 +14,7 @@ class ShiftConfigSettings(models.TransientModel):
card_support = fields.Boolean(
string="Scan cooperators cards instead of login for sheets validation",
default=False
default=False,
)
default_task_type_id = fields.Many2one(
"beesdoo.shift.type",
@ -45,11 +47,10 @@ class ShiftConfigSettings(models.TransientModel):
@api.multi
def get_default_card_support(self):
return {
"card_support": (
"card_support": ast.literal_eval(
self.env["ir.config_parameter"].get_param(
"beesdoo_shift.card_support"
)
== "True"
)
}

5
beesdoo_shift/security/group.xml

@ -30,10 +30,5 @@
<record model="ir.ui.menu" id="base.menu_board_root">
<field name="groups_id" eval="[(6,0,[ref('group_shift_attendance_sheet')])]"/>
</record>
<!-- <template id="website.user_navbar">
<field name="groups" eval="[(6,0,[ref('group_shift_attendance_sheet')])]"/>
</template> -->
</data>
</odoo>

19
beesdoo_shift/wizard/validate_attendance_sheet.py

@ -1,4 +1,7 @@
# -*- coding: utf-8 -*-
import ast
from openerp import _, api, exceptions, fields, models
from openerp.exceptions import UserError, ValidationError
@ -18,11 +21,10 @@ class ValidateAttendanceSheet(models.TransientModel):
return self.env[sheet_model].browse(sheet_id)
def _get_card_support_setting(self):
return (
return ast.literal_eval(
self.env["ir.config_parameter"].get_param(
"beesdoo_shift.card_support"
)
== "True"
)
@api.multi
@ -36,7 +38,9 @@ class ValidateAttendanceSheet(models.TransientModel):
warning_message = ""
if sheet:
for added_shift in sheet.added_shift_ids:
is_regular_worker = added_shift.worker_id.working_mode == "regular"
is_regular_worker = (
added_shift.worker_id.working_mode == "regular"
)
is_compensation = added_shift.is_compensation
if is_regular_worker and not is_compensation:
@ -68,15 +72,18 @@ class ValidateAttendanceSheet(models.TransientModel):
login = fields.Char(string="Login")
password = fields.Char(string="Password")
barcode = fields.Char(string="Barcode")
warning_regular_workers = fields.Text("Warning",
warning_regular_workers = fields.Text(
"Warning",
default=_get_warning_regular_workers,
help="Is any regular worker doing its regular shift as an added one ?"
help="Is any regular worker doing its regular shift as an added one ?",
)
notes = fields.Text(
"Notes about the attendance for Members Office",
default=_get_default_notes,
)
feedback = fields.Text("Comments about the shift", default=_get_default_feedback)
feedback = fields.Text(
"Comments about the shift", default=_get_default_feedback
)
worker_nb_feedback = fields.Selection(
[
("not_enough", "Not enough"),

Loading…
Cancel
Save