add hr_timesheet_sheet_no_review, hr_timesheet_sheet_holidays, hr_timesheet_sheet_delete_cascade
This commit is contained in:
parent
b07082f70d
commit
8b0d0bb6cc
53 changed files with 3953 additions and 0 deletions
24
hr_timesheet_sheet_holidays/readme/DESCRIPTION.rst
Normal file
24
hr_timesheet_sheet_holidays/readme/DESCRIPTION.rst
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
``hr_timesheet_sheet`` works on every analytic line of a period at once, while
|
||||
``project_timesheet_holidays`` protects the analytic lines it generates for validated
|
||||
time off against any modification or deletion. Together they make any timesheet sheet
|
||||
that spans a day with validated time off unmanageable: opening, recomputing, creating or
|
||||
saving such a sheet raises a ``UserError`` and the employee cannot record their hours.
|
||||
|
||||
This bridge module makes time off lines inert with respect to the bulk operations of the
|
||||
sheet while keeping them visible inside it, so that the week is shown complete with its
|
||||
time off hours included. Two different code paths are involved and both are handled: the
|
||||
bulk ``write`` that links or unlinks ``sheet_id``, and the ``Command.DELETE`` the web
|
||||
client emits for the lines that leave the set cached by the onchange, which ends up in a
|
||||
real ``unlink()``. In the second case the time off line is detached from the sheet
|
||||
(``sheet_id = False``) instead of being deleted; the time off request and the employee
|
||||
balance are never touched.
|
||||
|
||||
The protection itself is not relaxed: the hours, date, project, task, employee and
|
||||
description of a time off line still cannot be changed from a timesheet sheet, the line
|
||||
still cannot be deleted by hand and new timesheets still cannot be created on a time off
|
||||
task. Only a write that touches nothing but the neutral link fields is let through.
|
||||
|
||||
The module also closes a pre-existing hole in ``hr_timesheet_sheet``, whose
|
||||
``_check_can_update_timesheet()`` returned ``True`` for any recordset without
|
||||
``sheet_id`` and therefore silently disabled the core protection for every time off line
|
||||
not linked to a sheet.
|
||||
Loading…
Add table
Add a link
Reference in a new issue