A regular employee is allowed to delete an expense reported already
approved. This should not be possible, only an officer could do it.
Fixes#19044
opw-767549
This merge will be the first one of a series to renew the backend
design. While this focused on kanban redesign, some elements (like
background and colors) of the main design are changed here.
This especially changes the LESS code to achieve the desired visual
result. The kanban view however needs better layout templating to
make this LESS more efficient; this will be a task for version 12.0.
We added 2 colors to the custom colors scheme for tags and cards' colors
but we did not adapt the possibility to set them properly in kanban.
Also adapt the related test.
New kanban design is basically new LESS to override the old one. In the
next version, we will work on a better and uniform layout (which will
allow better LESS). Here, we already set a better layout for project,
as an example.
* crm, event, hr_contract, hr_recruitment, maintenance, mass_mailing,
note, survey, web, website_event_track, website_forum_doc
Adapt kanban layouts so that the dropdown icon is now a vertical
ellipsis instead of a hamburger.
* account, hr, hr_recruitment, maintenance, mrp, point_of_sale,
sales_team, stock
Adapt kanban layouts so that the color is set on the main 'kanban-box'
<div/> element to fit new design requirements.
1. Create a product A, set to stockable product, set its UOM and
purchase UOM to Unit(s)
2. Create SO with A, but use a different UOM than Unit(s) (e.g. Dozen)
3. Validate, go to delivery, validate, and print the delivery slip
Ordered quantity shown on delivery slip is in SO UOM but listed as
product UOM.
opw-766914
Resetting the key 'test_barcode_handler' to its value before the
test was technically the best solution, as a test should leave the
environment unchanged. However, in this case, the widget is
undefined (there is obviously no 'test_barcode_handler').
Whereas this should not be a problem (the fields in the registry
are supposed to be accessed using get(), and the presence of a
key mapping undefined is equivalent to the absence of the key in
this case), this breaks a test in Studio if the latter one is
executed after the barcode test. This is because Studio browses the
map of the field registry to access each field's prototype. When it
encounters an undefined value, it crashes.