Wednesday, January 3, 2024
11 changes · master
Enhancements to existing features
This change updates the Mass Mailing mobile preview so email content is displayed in a more isolated and reliable preview area. This helps business users review campaigns more accurately before sending, reducing the risk of layout surprises on mobile devices.
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Website editors can now use gradient backgrounds in color presets, giving businesses more flexible visual branding options without custom code. The update also improves editor reliability by handling named colors in gradients and preventing conflicting option changes while updates are being applied.
Original PR description
Before this commit color presets for background could not use gradients. After this commit color presets for background can use gradients. task-2633169
HR users can now archive and unarchive skill types, with archived types removed from active employee and appraisal skill views except completed appraisals. An Archived filter and visual ribbon make it easier to manage outdated or inactive skill categories without deleting their related skills or levels.
Original PR description
Problem:
-------------
Currently, user cannot archive skill types
What we achieved in this commit:
----------------------
- If the user archives the skill type, it will be removed from the employee and
appraisal except done stage.
- add Archived filter
Technical:
------------
When we archive the skill type, we do not archive the skill and skill level
because when we open the archived skill type, the level and skill are not visible.
task-3385297The organization chart view now supports the search filter menu, making it easier for users to narrow down the people or records they need. This also restores a related search bar styling change to avoid visual issues seen elsewhere while keeping the interface consistent.
Original PR description
task-3582032
The web barcode scanning component now uses a newer barcode recognition library and includes adjustments to keep scanning behavior reliable. Barcodes should be easier to detect consistently thanks to better image contrast and compatibility handling.
Original PR description
In this commit: * We update the ZXing barcode recognition library to v0.20.0 Changelogs: 0.19.3 [1] - 0.20.0 [2] * Monkey-patch the lib to revert [3], because the new behavior of the lib doesn't work when the `ZXing.DecodeHintType.TRY_HARDER` flag is set at true * We also add a white background to the canvas to ensure proper contrast between the barcode in itself (black) and the background (white). [1]: https://github.com/zxing-js/library/releases/tag/v0.19.3 [2]: https://github.com/zxing-js/library/releases/tag/v0.20.0 [3]: https://github.com/zxing-js/library/commit/7644e279df9fd2e754e044c25f450576d2878e45 task-3600472
Custom product variant descriptions created from sales orders are now carried through to the shop floor view. This helps production teams see the same specific product details already available on manufacturing orders, reducing confusion during make-to-order work.
Original PR description
When using MTO, a custom attribute value can be created in a sale order. The custom value is then visible on the manufacturing order, but is not in the shop floor. This commit fix it.
Point of Sale add-ons now use a shared frontend data model that makes related information easier and more consistent to access. This supports smoother maintenance and more reliable behavior across localization, hardware, restaurant, payment, and messaging POS features, with an additional fix for preparation display data storage.
Archived skill types are no longer shown on employee and appraisal skill views, except where appraisals are already completed. Appraisal Skills Reports now use only active skill types, helping teams keep evaluations current and avoid outdated skill categories.
Original PR description
Problem:
---------------
Currently, user cannot archive skill types
What we achieved in this commit:
--------------
- If the user archives the skill type, it will be removed from the employee and
appraisal except the done stage.
- Add archived filter
- Only active skill types will be utilized when the user creates an Appraisal Skills Report.
Technical:
----------------
When we archive the skill type, we do not archive the skill and skill level because when
we open the archived skill type, the level and skill are not visible.
task-3385297Contract salary offers can no longer include a company car option for companies outside Belgium. This keeps salary offer options aligned with Belgian-specific rules and reduces the risk of offering an inapplicable benefit in other countries.
Original PR description
Change removes possibility of adding car to contract offers in companies other than BE ones task-3471266
The Approvals app now lets users filter requests by approved, refused, or canceled status and group requests by status. This makes it faster for managers and employees to review approval activity and focus on the requests that need attention.
Original PR description
- Add filters 'Approved', 'Refused', and 'Canceled' - Add group-by status option Task: 3631957
Point of Sale now uses a more connected frontend data structure, making sales, payments, products, and localization data easier for the system to keep in sync. This improves the foundation for faster, more reliable POS features across many country-specific and payment integrations, with limited direct impact on day-to-day users.
Original PR description
## First commit: *:l10n_ar_pos,l10n_co_pos,l10n_es_pos,l10n_fr_pos_cert,l10n_gcc_pos, l10n_in_pos,l10n_sa_pos,pos_adyen,pos_mercury,pos_online_payment,…
## First commit: *:l10n_ar_pos,l10n_co_pos,l10n_es_pos,l10n_fr_pos_cert,l10n_gcc_pos, l10n_in_pos,l10n_sa_pos,pos_adyen,pos_mercury,pos_online_payment, pos_online_payment_self_order,pos_paytm,pos_restaurant, pos_restaurant_adyen,pos_restaurant_stripe,pos_sale, pos_sale_product_configurator,pos_self_order,pos_six,pos_stripe, pos_viva_wallet,product This commit adds a new relational system to the data loaded from the server. With Odoo's ORM in python, when you have a `pos_order`, for example, you can directly access the command lines via `pos_order.lines`. The aim here is to be able to do the same thing in the Point of Sale frontend. How it works: -All data is loaded into the `pos_data` service (`data_service.js`), then this service will load the data into the relational model system. - All this data can then be accessed via the `pos_store`. - All RPC calls must pass through the data_service in order to automatically update the relational models. Example: ``` const pos_order = this.pos.models["pos.order"].getAll(); const lineProducts = pos_order.lines.map((l) => l.product); ``` Data can now be accessed in a similar way to the ORM backend. Related Models: https://github.com/caburj/RelatedModels
Original PR description
*:l10n_cl_edi_pos,l10n_de_pos_cert,l10n_de_pos_res_cert,l10n_mx_edi_pos, pos_blackbox_be,pos_iot,pos_iot_six,pos_l10n_se,pos_preparation_display,…
*:l10n_cl_edi_pos,l10n_de_pos_cert,l10n_de_pos_res_cert,l10n_mx_edi_pos, pos_blackbox_be,pos_iot,pos_iot_six,pos_l10n_se,pos_preparation_display, pos_restaurant_appointment,pos_settle_due,whatsapp_pos This commit adds a new relational system to the data loaded from the server. With Odoo's ORM in python, when you have a `pos_order`, for example, you can directly access the command lines via `pos_order.lines`. The aim here is to be able to do the same thing in the Point of Sale frontend. How it works: -All data is loaded into the `pos_data` service (`data_service.js`), then this service will load the data into the relational model system. - All this data can then be accessed via the `pos_store`. - All RPC calls must pass through the data_service in order to automatically update the relational models. Example: ``` const pos_order = this.pos.models["pos.order"].getAll(); const lineProducts = pos_order.lines.map((l) => l.product); ``` Data can now be accessed in a similar way to the ORM backend.