Daily updates from Odoo
Friday, May 8, 2026
25 changes · master
New functionality added to Odoo
This update integrates ‘ToYou’ and ‘The Chefz’ as new food delivery options within the Odoo Enterprise system. This expands the available delivery services for our restaurant partners, providing greater choice and convenience for their customers. The change was made to support growing market demand and improve the overall delivery experience.
Original PR description
In this commit: =============== - Integrated `ToYou` and `The Chefz` as a new food delivery provider in `pos_urban_piper`. Task-6040108,6040111
Enhancements to existing features
This update ensures the sample dashboards within Odoo Enterprise accurately reflect the latest design and functionality changes. These updated dashboards provide more current and relevant examples for users exploring the platform's reporting capabilities. This improves the user experience and helps demonstrate the current state of the system.
Original PR description
This commit updates the sample dashboards to reflect the recent changes made in the dashboards. Task: 5076188
This update enhances the appearance of online order notifications within the Point of Sale interface. By using a full-width layout and improved alignment, the notifications now display more clearly on smaller screens, providing a better user experience for customers. This change was implemented to improve visual consistency and usability.
Original PR description
In this commit: ------------------- - Use a full-width layout on small screens by removing container padding and improving alignment with `justify-content-between`. task: 6054267 Forward-Port-Of: odoo/enterprise#116478 Forward-Port-Of: odoo/enterprise#111614
This update enhances the way employee records are linked within the Odoo Enterprise payroll system. Specifically, new fields have been added to create a linked list between employee records, improving data consistency and accuracy. This change supports future system updates and ensures reliable payroll processing.
This update enhances the Gantt view within the field service module by reducing the display precision to the quarter level. This simplifies the view and prevents it from becoming cluttered with excessive data, improving readability and usability. The total aggregate calculation has also been removed to further optimize the display.
Original PR description
This commit changes the day scale precision to quarter in the gantt view of field service. Additionally, the total aggregate is removed because otherwise the view would be polluted by too many information on tiny spaces. task-6200910
This update improves the Brazil demo data within Odoo Enterprise, specifically for the l10n_br_avatax module. The changes ensure the demo data accurately reflects Brazil's tax regulations, leading to more reliable testing and validation of the module's functionality. This supports better development and testing of the Brazil localization features.
Original PR description
Updated Brazil Product and company demo data to ensure accurate testing task-6159933 Forward-Port-Of: odoo/enterprise#115361
Resolved issues and error corrections
This update corrects a problem in how payslips are calculated for the Hong Kong payroll module. Specifically, a test was failing because the system wasn't correctly accounting for the year of the payslip when running tests in different environments. This ensures accurate payslip generation for all employees.
Original PR description
ir56b._compute_period depends on year_of_employer_return, which is derived from submission_date (defaults to today). If tests are run in a different year (mocked time or different environment), the period won't cover the January 2026 payslip. Forward-Port-Of: odoo/enterprise#116364 Forward-Port-Of: odoo/enterprise#116172
This update fixes an issue preventing users from signing documents containing read-only date fields. The system incorrectly flagged these fields as empty, blocking the signing process. The fix ensures that read-only date fields are properly recognized during document submission, allowing for complete and accurate signing.
Original PR description
Version: - saas-19.2 Steps to reproduce: - Create a sign template with a read-only (constant) date field. - Add at least one more sign item (e.g., text/signature). - Try to sign the document. Issue: - Signing is blocked with warning: “Some required items are not filled”. Cause: - Read-only date fields don’t have a value in `item.el.value`. - The system only checks value, so it treats the field as empty. - Even though the date is visible in the document, it is not picked during submission. Solution: - Update date value extraction to also read from `textContent` when value is empty. - This ensures read-only date fields are correctly considered filled. task-6181883 Forward-Port-Of: odoo/enterprise#116009
This update resolves a duplication issue in the French Profit and Loss report by removing a redundant account (6492) from the calculation. This ensures accurate financial reporting aligned with French accounting standards. The fix builds upon previous work to prevent duplicate accounts in the report.
Original PR description
This commit is an addon to this commit[[1]] where we tried to avoid duplicate accounts in the Profit And Loss report. The problem is that we don't exclude the separated account 6492 from the original one (649). This commit adds the removal of this account in the report formula. task-6053784 Here is the coverage: [Profit and loss account (FR) - Accounts Coverage Report (2).xlsx](https://github.com/user-attachments/files/27011824/Profit.and.loss.account.FR.-.Accounts.Coverage.Report.2.xlsx) The correct separation: <img width="837" height="485" alt="image" src="https://github.com/user-attachments/assets/ebe98976-f689-4389-866a-c9a0c8b50534" /> [1]: https://github.com/odoo/enterprise/commit/4587c49c4b220305652150d2f21a95fb7cfa188d Forward-Port-Of: odoo/enterprise#116319 Forward-Port-Of: odoo/enterprise#114858
This update resolves an issue where the point-of-sale tour was unreliable and produced inconsistent results. The fix ensures the tour is predictable and correctly identifies the order, improving the user experience. A minor typo was also corrected to enhance test reliability.
Original PR description
Remove the `undeterministicTour_doNotCopy` key from `OrderFlowTour` and make the tour deterministic by properly selecting the order. Also, fix a typo in the assertion in `test_01_order_flow`. Task-6065459 Forward-Port-Of: odoo/enterprise#116431 Forward-Port-Of: odoo/enterprise#111915
This update ensures that product and combo product cards in the Point of Sale module now have a consistent visual style. Previously, combo products had a different background, leading to a disjointed look. This change improves the overall user experience and presentation of products within the POS system.
Original PR description
In this commit: --- - Applied the same background styling to combo items as normal product cards. - Ensured visual consistency between product cards on the product screen and in combo configuration popup. | Before | After | | -------- | -------- | | <img width="979" height="447" alt="image" src="https://github.com/user-attachments/assets/6d91e1d7-99d5-47c4-a1bf-6604765d08d5" /> | <img width="979" height="453" alt="image" src="https://github.com/user-attachments/assets/602c9a8f-9e56-4633-84bf-0710cb5debab" /> | task-6103260 Forward-Port-Of: odoo/enterprise#113159
This update resolves an issue where the 'Reconcile' button on the bank statement dialog wouldn't work correctly on smaller screens (like mobile devices). The fix ensures the correct data is passed to the dialog component, preventing a validation error. This improves the user experience for mobile users.
Original PR description
When clicking on the "Reconcile" button of a bank statement line on a small screen (ex: mobile) threw an OwlError "Invalid props for component 'KanbanController': unknown key 'bankRecInfo'". BankRecSelectCreateDialog injected `bankRecInfo` into `baseViewProps`, which is spread into the embedded view regardless of its type. On desktop the embedded view is a list (patched to accept `bankRecInfo`), but on small screens SelectCreateDialog falls back to a kanban view, whose controller does not declare that prop, triggering Owl's props validation. Only forward `bankRecInfo` when the inner view is a list by overriding `viewProps` instead of mutating `baseViewProps`. Steps to reproduce: - Enable the developer mode. - Open Bank Reconciliation. - Resize the window to a small/mobile width (or open from a mobile device). - On a statement line, click the "Reconcile" button to open the dialog. - OwlError is thrown opw-6070573 Forward-Port-Of: odoo/enterprise#114298
This update fixes an issue where payrun steps could remain in an 'error' state even after an error was resolved. Now, clicking 'Continue' marks a completed step as 'valid,' allowing users to move forward without being blocked by unresolved errors. This ensures payrun steps are consistently tracked and reported.
Original PR description
## Before: - Clicking Continue moved the payrun to the next step, but the previous step could remain in `error` if anomalies were still present. - This made explicitly passed steps (version/time/attendance) look unresolved. ## After: - Continue marks the passed step as `valid`. - because if the user willfully ignore an error, then it's ok to put it as validated. - This is applied consistently for all payrun step state points. Task-6053982 Forward-Port-Of: odoo/enterprise#115279
This update fixes a visual issue in the maintenance request form where the 'Block Workcenter' field was incorrectly positioned next to the priority field. The change updates the form's layout to align with recent UI updates, ensuring a cleaner and more intuitive user experience for maintenance request creation.
Original PR description
Issue: ---------------------------- In the maintenance request form view, the 'Block Workcenter' field was displayed near the priority field in the top-right corner. Steps to Reproduce:…
Issue: ---------------------------- In the maintenance request form view, the 'Block Workcenter' field was displayed near the priority field in the top-right corner. Steps to Reproduce: ---------------------------- - Install `mrp_maintenance` module. - Open a maintenance request linked to a work center. - Notice that the 'Block Workcenter' field appears beside the priority field in the top-right section. Cause of the issue: ---------------------------- Following the UI changes introduced in [PR](https://github.com/odoo/odoo/pull/251761), the position of the priority field was updated. However, the inherited XPath used for the 'Block Workcenter' field was still targeting the priority field, causing the field to be inserted at an incorrect position. With this commit: ---------------------------- Update the XPath to match the new form view structure, ensuring that the 'Block Workcenter' field is displayed in the correct location and aligned with the updated UI layout. Forward-Port-Of: odoo/enterprise#116193
This update clarifies the error message displayed during order cancellations. The outdated 'Callback requested instead' message has been replaced with a more helpful 'Contact your provider for support.' This change improves the customer experience and provides clearer guidance during potential issues.
Original PR description
In this commit: ---------------- - Added an extra message, `Contact your provider for support.` and removed `Callback requested instead.` string from the order cancellation error message. Task-4657597
This update resolves a bug that prevented users from modifying warehouse routes in the Romanian (RO) SAFT stock module. The issue stemmed from incorrect data handling during route updates, causing a system error. This fix ensures that warehouse routes can now be safely adjusted without disruption.
Original PR description
### Issue: When changing the routes of a Romanian warehouse, an error is raised, blocking any modification of multi-step routes ### Cause: The code attempts to access `in_type_id` from `warehouse_data` However, when updating routes, `warehouse_data` is empty in the method `_create_or_update_sequences_and_picking_types` This leads to a crash because the code assumes that `warehouse_data` always contains `in_type_id` and `out_type_id` Additionally, even if the data were present, it would result in creating duplicate `stock.picking.type` records ### Steps to reproduce: - Install `l10n_ro_saft_stock` with demo data and switch to `RO Company` - Enable `Multi-steps Routes` in Settings - Try to modify Incoming or Outgoing Shipments on a warehouse - When saving, the following error is raised: "Oh snap! in_type_id" odoo-pr: https://github.com/odoo/odoo/pull/257293 opw-5925087 Forward-Port-Of: odoo/enterprise#114166
This update resolves a build error in the l10n_ae_faf module related to how tax views were configured. The fix adjusts a key reference to ensure the module functions correctly without requiring an additional, automatically installed module. This improves the stability and reliability of the AE tax settings.
Original PR description
the inherited tax view form was raising an error since ubl_cii_tax_category_code is in the view under the module account_edi_ubl_cii and this module is not in the resolved dependencies of l10n_ae_faf but is usually autoinstalled. to fix this we are changing the xpath to be something that doesn't need the dependency of the account_edi_ubl_cii but only account. runbot-239123 Forward-Port-Of: odoo/enterprise#116163
This update addresses an issue where error messages from the Aspone API were not displayed correctly, leading to tracebacks. The change now ensures that error messages are presented to the user, improving the reporting experience for French language reports. This resolves a technical problem that could have impacted report accuracy.
Original PR description
Since the v2 rest api of aspone was implemented, error messages were no more well handled and a traceback was raised while getting one. This commit displays the write errr to the user task-5955980 Forward-Port-Of: odoo/enterprise#116381 Forward-Port-Of: odoo/enterprise#116076
This update addresses intermittent errors in the customer ratings tests within the Odoo Enterprise system. The fix ensures the tests are consistently reliable, preventing potential disruptions to customer feedback processes. This improves the stability and accuracy of customer ratings data.
Original PR description
This commit aims to fix the undeterministic failures of the customer ratings tests. Forward-Port-Of: odoo/enterprise#116053
This update resolves an issue where the Payment Reminder email template would fail to render if the Payment module wasn't installed alongside the account_followup module. The fix ensures the necessary 'payment.method' model exists before attempting to use it, preventing template rendering errors.
Original PR description
Repro steps: 1. Initialize a new DB 2. Install account_followup module without payment module 3. Go to Email templates > Payment reminder 4. Click on Preview You will get an error Failed to render QWeb template for Mail Template: 'Payment Reminder' (ID: 9) Target Model: res.partner Language context: en_US Error: Error while render the template KeyError: 'payment.method' Root cause: The method `_show_pay_now_button` that was being called in the template email_template_followup_1 was using self.env['payment.method'] even tho payment module is not a dependency of account_followup Fix: The introduced fix ensures that 'payment.method' model exists before attempting to use it build_error-243030 Forward-Port-Of: odoo/enterprise#116692 Forward-Port-Of: odoo/enterprise#116079
This update fixes an issue where long text fields in sign documents were not wrapping correctly, resulting in text overflowing and being unreadable in the final PDF output. The fix ensures that text, even with long words or without spaces, is properly wrapped within the designated field, improving the clarity and usability of sign documents. This resolves a previous display problem.
Original PR description
### Steps to reproduce: - Download 'Sign' and 'Contacts' apps - Create a contact with a really long name - Create a sign document template with a multiline text field (Read-only) that has contact…
### Steps to reproduce: - Download 'Sign' and 'Contacts' apps - Create a contact with a really long name - Create a sign document template with a multiline text field (Read-only) that has contact name value - Click 'Sign Now' and put the new contact as the signer - Sign and download > The text appears as a single extended line exceeding field/page boundaries ### Cause of Issue: The textarea and stamp field rendering only handled explicit newline characters (`\n`) and did not account for text that exceeded the field width. https://github.com/odoo/enterprise/blob/017743cbe97b629e9d9f1895b655014d4c3abbcb/sign/models/sign_document.py#L330-L345 When the HTML preview showed wrapped text, the PDF output rendered it as a single line. For continuous text without spaces, the text would overflow the field boundaries entirely. ### Fix: Accounted for long texts that have spaces and long words to show all the information in the PDF opw-6045062 Forward-Port-Of: odoo/enterprise#116658 Forward-Port-Of: odoo/enterprise#114813
The budget report now accurately displays data without duplicate analytic lines. This change addresses an issue caused by a recent performance optimization of the budget report query, which inadvertently introduced duplicate entries. The fix ensures correct reporting by using a revised query structure.
Original PR description
#### Issue: The budget report displays duplicate analytic lines. #### Steps to reproduce: In a new company: - Create a budget with one budget line (Analytic Account A). - Create one analytic item…
#### Issue: The budget report displays duplicate analytic lines. #### Steps to reproduce: In a new company: - Create a budget with one budget line (Analytic Account A). - Create one analytic item (linked to Analytic Account A). - Open the budget report and remove the default "open budget" filter. Duplicate amounts appear in the pivot view and duplicate lines appear in the list view. #### Cause: In #104299, the query in `_get_aal_query` was refactored for performance to avoid a single query with an OR condition in the LEFT JOIN. It was replaced by two separate queries combined with `UNION ALL`. This caused some lines to be captured by both queries, resulting in duplicates in the final report. #### Fix: Use three separate queries, each with specific filter conditions to guarantee unique results: Q1 - Analytic lines with no matching budget line. Q2 - Analytic lines matched to a budget line with no company (null-company). Q3 - Analytic lines matched to a company-specific budget line. OPW-6051696 Forward-Port-Of: odoo/enterprise#116612
This update resolves an issue preventing users from correctly booking appointments with multiple participants when flexible scheduling is enabled. The fix corrects a problem where the system incorrectly interpreted a setting, causing a booking error. This ensures appointments can be scheduled accurately with capacity management.
Original PR description
### Steps to reproduce: - Download "Appointment" and "Website" - Configure an appointment to be booked by resource with multiple seats and manage capacity - Set the schedule to be flexible and configure valid time slots - Go to the booking page and select the number of participants > Traceback: cannot unpack non-iterable bool object ### Cause of Issue: The `_get_appointment_slots` method unpacks the `appointment_slots_force_month` directly: https://github.com/odoo/enterprise/blob/4ca3dddaeadeb6c937d555cc4da8fb4bb61fea35/appointment/models/appointment_type.py#L871 Since the `appointment_slots_force_month` value was explicitly set to `False` in https://github.com/odoo/enterprise/blob/4ca3dddaeadeb6c937d555cc4da8fb4bb61fea35/appointment/controllers/appointment.py#L1063-L1070 the unpacking operation failed because it tried to unpack a boolean instead of a tuple. opw-6197653 Forward-Port-Of: odoo/enterprise#116671 Forward-Port-Of: odoo/enterprise#116613
Features or functions removed from Odoo
This update removes outdated and unused code from the MRP PLM module, improving the overall codebase. Removing this dead code enhances maintainability and reduces potential complexity. This change is part of a larger upgrade process.
Original PR description
Some action-related methods, fields, widget, and template in 'mrp_plm' were still referenced even though they are no longer used anywhere in the codebase. This commit removes the unused and non-functional code to keep the codebase clean and maintainable. Upgrade PR: https://github.com/odoo/upgrade/pull/10174
Code cleanup and technical improvements
This update simplifies how member categories are defined and managed within the system. By centralizing category data and using a single calculation method, updates to categories (like status changes) are now easier and faster to implement. This improves efficiency and reduces the risk of errors.
Original PR description
Replace the per-category getters (matchingX, filteredX, *SectionText) with a `memberCategories` definition and a single `computeCategories` method. `onWillRender` computes all category data once per render cycle into `this.categories`; the template iterates over it generically. Adding or removing a status category now only requires touching `memberCategories`. task-6189542