add hr_timesheet_sheet_no_review, hr_timesheet_sheet_holidays, hr_timesheet_sheet_delete_cascade

This commit is contained in:
Luis 2026-09-22 10:58:36 +02:00
parent b07082f70d
commit 8b0d0bb6cc
53 changed files with 3953 additions and 0 deletions

View file

@ -0,0 +1,31 @@
Hiding the review workflow is not the same as forbidding it. The
``action_timesheet_*`` methods stay callable from code, from a server action or
from another module, so a sheet can still go back to ``confirm`` through a
non-interactive path. That is deliberate, for compatibility with the rest of the
family. An installation that needs to really forbid it would need a separate
module.
The modules of the family that take the review workflow for granted lose their
purpose with this one installed. They do not break, because the methods are
still there, but they become unreachable from the user interface:
* ``hr_timesheet_sheet_policy_department_manager``
* ``hr_timesheet_sheet_policy_project_manager``
* ``hr_timesheet_sheet_autodraft``
* the ``action_timesheet_confirm`` check of ``hr_timesheet_sheet_attendance``
Unfreezing cannot be undone. Uninstalling the module brings the buttons back,
but the sheets that were already set back to draft stay in draft, and the four
menus of the review workflow stay deactivated: they belong to the base module
and Odoo does not restore a value written on a foreign record.
The ``Timesheets to Review`` action of the department kanban loses both of its
entry points, but the action record itself survives, because
``ir.actions.act_window`` has no ``active`` field to switch off. It is only
reachable from Settings > Technical > Actions, and its stale
``search_default_to_review`` context key no longer matches any filter.
With the sheets back in ``draft``, every save triggers the base module's
``delete_empty_lines(True)``, which removes lines with no description and no
hours. This is pre-existing behaviour, but it may prune historical empty
entries the first time those sheets are opened.