Daily updates from Odoo
Tuesday, March 5, 2024
20 changes
2 changes
Enhancements to existing features
This update enhances the visual clarity of website slides by increasing the boldness of the section headings. The change adds a priority style to ensure sections stand out more effectively from the surrounding content. This improves the overall user experience and makes it easier for visitors to quickly understand the slide's key points.
Original PR description
Purpose ======= Increase the bold of the sections in back end to better differentiate them from the content. Specifications ============== Adding !important next to the css bold style (value = 700) applied on the sections to make sure it takes the priority over the default list view sections "fw-bold" class (value = 500). Task-3759152 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#154990
This update adds README files to all payment acquirer modules, clarifying the technical details of each implementation. This improves understanding of how payment integrations work and addresses the rapid changes in the online payments landscape, ensuring smoother maintenance and updates.
Original PR description
Each payment acquirer has its own implementation specificities: some implement a 'payment with redirection' flow and others a 'direct payment flow'; sometimes the 'payment with redirection' flow is…
Each payment acquirer has its own implementation specificities: some implement a 'payment with redirection' flow and others a 'direct payment flow'; sometimes the 'payment with redirection' flow is even implemented as a 'direct payment' flow through an iframe; one payment acquirer could support webhooks while another does not and relies on another mechanism to fetch payment status updates... It can be tricky to guess where to look in the code to determine how a payment acquirer is implemented. On top of that, the online payments ecosystem evolves at a fast pace due to competition, buyouts, and legislation enforcement. Acquirers are thus frequently migrated to new APIs that might differ in implementation from the previous API. To help figure out the *which*, *why*, *how*, and *when* of payment API implementations, a README.md file is added to the main directory of all payment acquirer modules. They can be browsed in human-readable format on GitHub. task-2374916 See also: - https://github.com/odoo/enterprise/pull/56182 Forward-Port-Of: odoo/odoo#156084 Forward-Port-Of: odoo/odoo#153016
7 changes
Enhancements to existing features
The Barcode App now stays in fullscreen mode after page refreshes and gives users a reliable way back to the main Barcode menu when breadcrumbs are unavailable. This reduces confusion during warehouse operations, inventory adjustments, manufacturing, and batch picking workflows.
Original PR description
__[IMP] stock_barcode*: force fullscreen__ > Before this commit, the fullscreen attribute of the barcode's actions was set in the python, but by set it directly in the actions itself, the fullscreen won't be lost when the user refreshes the page. **[IMP] stock_barcode: go back to main menu** > In the Barcode App, when an operation or an inventory adjustment is opened and the page is refreshed, the breadcrumb is lost and it's no more possible to go back, so the back button does nothing. > > With this commit, in case there is no previs action, the back button will return to the Barcode App main menu. In addition of that, some minor code cleans were done. See commits for more details. *task-3636518*
This update removes unnecessary internal processing in the Chilean electronic invoicing module. It keeps the same business behavior while making the code simpler and easier to maintain.
Original PR description
Remove unnecessary recordset wrap in set
Customers paying for a subscription can now be invited to save their payment method for future automatic payments when supported. They can also remove saved payment methods from subscriptions that do not require online payment, giving them more control and improving the payment experience.
Original PR description
With this improvement, during a subscription payment with payment methods which support tokenization it is now possible to invite customers to automate their future payments by saving the payment token to the subscription. This update will provide to the customer a better experience while handling payments. Besides that, before this commit it was not possible for the customer removing a token linked with subscriptions which didn't have online required payment. Now, it is possible to remove them in case the customer change his mind. Task-id: 3144077
This update improves how Odoo web pages use clearer, more user-friendly URLs and refines navigation behavior on mobile devices. It helps users share and return to pages more reliably, while keeping mobile app navigation smoother on iOS and Android.
Recruitment forms now limit referral user options to people connected to the relevant company. This helps recruiters choose appropriate referrals and reduces mistakes in multi-company environments.
Original PR description
This commit adds an additional constraint to the referral user in the form view of the hr.applicant model of recruitment. The purpose of this is to have access to only the referrals that are related to the company domain of the user. task-3744170
This update removes the old employee home address field from several HR, payroll, document, appraisal, and salary contract flows. It helps keep employee data handling more consistent across these apps and reduces reliance on outdated employee address references.
The salary contract demo data now shows an employee going through recruitment, receiving an offer, and becoming an employee. This gives business users a more realistic example for testing or demonstrating the hiring and salary package workflow.
Original PR description
After this commit, one employee (abigail peterson) became an employee with the recruitment procedure (applicant to employee with an offer). task : 3596938
11 changes
Enhancements to existing features
The salary configurator now intelligently manages benefit choices for Belgian employees. When selecting a Private Bike benefit, the system automatically disables the Fuel Card option and clears any previously entered amount, preventing conflicting benefit selections and improving the user experience.
Original PR description
[IMP] l10n_be_hr_contract_salary: improve salary configurator choices This commit includes improvement to the benefit selection. Implementing a logic where selecting "Private Bike" automatically disables the "Fuel Card" option and resets any entered amount to 0 Task-3749460
The negative net field in payroll reports has been hidden from view since it's not meant to be edited by users. This change improves the clarity of payroll reports by removing a field that should only be used internally for calculations.
Original PR description
The negative net field is not intended to be modified by the user, so it should not be visible in the report. This commit hides the field in the report. task-3761771
The Documents module has been improved by removing an outdated archive toggle that was no longer relevant and reorganizing the workflow rule form to combine conditions and actions into a single unified page. This simplifies the user interface and makes the workflow configuration process more intuitive.
Original PR description
**Commit 1:** Since we can no longer archive documents, the 'Include Archived' toggle checkbox of the domain selector is now irrelevant and hence this commit removes it. Technical: The archive…
**Commit 1:** Since we can no longer archive documents, the 'Include Archived' toggle checkbox of the domain selector is now irrelevant and hence this commit removes it. Technical: The archive feature for documents has been removed with #37389. However, the active field is still being utilized for the 'trash' feature and hence cannot be removed. Whether the `Include Archived` toggle should be displayed or not, is determined by checking if a particular model has 'active' in its fieldDefs (i.e. if the model has archive/unarchive feature). As a result, the condition becomes true in the case of 'documents' model despite archive records feature not being available anymore. Thus, this commit adds a condition to check resModel, and hides the toggle checkbox from the domain selector in case of 'documents' model, by deleting 'active' from fieldDefs. **Commit 2:** This commit alters the view of documents workflow rule form such that the two separate pages for 'conditions' and 'actions' are now reorganized and merged altogether. Task: [3695462](https://www.odoo.com/web#id=3695462&menu_id=4722&cids=2&action=333&active_id=965&model=project.task&view_type=form)
This update improves the order preparation display system with better note editing, product organization, and order progression logic. Notes are now edited in-place instead of recreating order lines, products are sorted by category for easier viewing, and orders advance to the next stage more intelligently based on which items are marked as complete.
Original PR description
Behavior before the changes: - When a note was modified, it cancelled the old orderline and recreated it with the new note. - Products were not sorted by category in the order preparation display. - Clicking on the header of an order sent it directly to the next stage, regardless of whether lines were crossed out or not. - There were brackets around the order number. Behavior after changes: - When a note is modified, it is modified directly on the existing orderline. - Products are now sorted by category in the order. - Clicking on an order header sends only the crossed-out lines to the next stage. If no line is crossed out, the entire order is sent. - There are no longer any brackets around the order name. taskId: 3764317 community PR: https://github.com/odoo/odoo/pull/155246
This update fine-tunes the Luxembourg payroll salary rules to reflect regulatory changes that took effect in 2024. The changes affect salary rule parameters, categories, and contract configurations to ensure accurate payroll calculations and compliance with updated Luxembourg tax and employment regulations.
Original PR description
Tuning lu salary rules, especially some rules and parameters changed in 2024. Backport of - https://github.com/odoo/enterprise/pull/44597 task-3770404
The restaurant point-of-sale system now handles order notes more efficiently by updating them directly instead of recreating orders, organizes products by category for better clarity, and improves order progression logic so only completed items advance to the next stage. These changes streamline kitchen operations and reduce confusion during order preparation.
Original PR description
Behavior before the changes: - When a note was modified, it cancelled the old orderline and recreated it with the new note. - Products were not sorted by category in the order preparation display. - Clicking on the header of an order sent it directly to the next stage, regardless of whether lines were crossed out or not. - There were brackets around the order number. Behavior after changes: - When a note is modified, it is modified directly on the existing orderline. - Products are now sorted by category in the order. - Clicking on an order header sends only the crossed-out lines to the next stage. If no line is crossed out, the entire order is sent. - There are no longer any brackets around the order name. taskId: 3764317 enterprise PR: https://github.com/odoo/enterprise/pull/57385
This update adds a database index to the mail system to significantly speed up email routing and alias searches. The optimization reduces processing time from 696 milliseconds to just 1 millisecond for typical email operations, resulting in a dramatic improvement in system performance when handling incoming emails.
Original PR description
## Description Since https://github.com/odoo/odoo/pull/76734, the new field `alias_full_name` is used in addition to `alias_name` to search on `mail.alias` and route emails in `message_route`. It's…
## Description
Since https://github.com/odoo/odoo/pull/76734, the new field `alias_full_name` is used in addition to `alias_name` to search on `mail.alias` and route emails in `message_route`. It's also used as a search criteria in `_search_alias_email` on `mail.alias.mixin. optional`. The issue is that the table `mail.alias` can grow quite large, and only the old field `alias_name` has an index on it, which may not be selective enough, forcing Seq.Scans on the table with possibly millions of records. The impact is noticeable on `message_route` which is a hot path for processing incoming emails.
Adding an index on `alias_full_name` allows PostgreSQL to do an bitmap OR scan on the two indexes, considerably speeding up search criteria that are a disjunction between `alias_name` and `alias_full_name`.
## Benchmark
For domain
```python
[
'&',
('alias_model_id', '!=', reply_model_id),
'|',
('alias_full_name', 'in', email_to_list),
'&', ('alias_name', 'in', email_to_localparts), ('alias_incoming_local', '=', True),
]
```
with test arguments, on a `mail.alias` table containing over 2M records.
| | Before | After |
|-----------|--------|-------|
| Timing | 696ms | 1ms |
| Buffer IO | 790MB | 48KB |
Specially impactful as those gains needs to be multiplied by the frequency of the searches.
## Reference
task-3724844
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis update improves how the testing system handles screencast recordings by preventing errors when directories don't exist after cleanup and reducing unnecessary log file sizes. These changes make the test process more reliable and efficient, particularly when tests fail and generate screencast recordings.
Original PR description
Fix similar to 151558 Don't fail if the screencast dir doesn't exist (after clear) Also, reduce the log size. Forward-Port-Of: odoo/odoo#156202 Forward-Port-Of: odoo/odoo#156043
This update significantly speeds up the process of creating automatic reorder points in your inventory system. By optimizing how the system calculates product stock levels across multiple warehouse locations, the operation now completes 16-30 times faster, reducing processing time from several seconds to under a second for typical configurations.
Original PR description
This commit changes the computation of product having a negative forecasted quantity to create manual orderpoints. The issue was that each replenish location needed multiple `_read_group` on…
This commit changes the computation of product having a negative forecasted quantity to create manual orderpoints. The issue was that each replenish location needed multiple `_read_group` on `stock.quant` and `stock.move` on all storable product. This commit makes only 3 `_read_group`s for all products x locations and post process the group and quantity sum by location in Python. This method gives some performance gain in time as well as in memory consumption Task: 3653272 Here is the time comparison before/after the patch for different configuration | | before | after | |---|---|---| | 700 loc, 300 prod | 14.08s | 850ms | |10 loc, 3k prod | 2.174s | 349ms | |700 loc, 30k prod | TO | 74s | 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 Forward-Port-Of: odoo/odoo#154596 Forward-Port-Of: odoo/odoo#149966
This update improves the performance of spreadsheet reports by reducing unnecessary recalculations when filters are used. When loading reports with filter references, the system now waits for all data to be ready before recalculating, rather than recalculating after each individual data fetch. This change reduces loading time for the Timesheet report from approximately 10-15 seconds to 6-9 seconds by eliminating redundant calculations.
Original PR description
Steps to reproduce:
- create a relational filter, let's say on `res.company`
- add a default value
- reference the filter in a cell with `=ODOO.FILTER.VALUE("my filter")`
=> every `ODOO.FILTER.VALUE` triggers an evaluation
With this commit, the re-evaluation after the data is fetched uses the
data source mechanism which only re-evaluates when all the data promises
are resolved, instead of evaluating after every resolved promise.
With this commit, the number of evaluations required when loading the
Timesheet report on our prod goes from 5 evaluations to only 3 (each evaluation
is 2-3s) because `ODOO.FILTER.VALUE("Company")` is present two times.
One issue this commit doesn't fix: there one RPC per `ODOO.FILTER.VALUE`
(can be fixed in master very easily because we refactored data fetching)
Task: 3787125
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis update corrects terminology and adds Italian language translations to the Italian EDI (Electronic Data Interchange) website sales module. The changes ensure that Italian users see properly translated and accurate terms throughout the module, improving the user experience for Italian-speaking customers and businesses using this e-commerce feature.
Original PR description
Correct the terms in this module and translate them in Italian. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#155993 Forward-Port-Of: odoo/odoo#155905