Friday, May 22, 2026
37 changes · saas-19.3
New functionality added to Odoo
This update includes basic tests for recently added 'all' category and billable type options within the Odoo sale project modules. These tests ensure the system correctly handles these new features, improving the reliability and stability of the sales process. This is a standard improvement to maintain code quality.
Original PR description
This commit's purpose is to add a few basic test case for the all category and billable type that were added recently. task-6147696 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
Enhancements to existing features
This update simplifies the payment process by removing a rarely used field – the Payment Identifier – from the payment form. This change improves the user experience by reducing clutter and focusing on the essential information needed to complete payments. The change was driven by a community suggestion to improve clarity.
Original PR description
The Payment Identifier field has been permanently hidden from the payment form view, as it does not provide actionable or useful information to the end user. see community pr - https://github.com/odoo/odoo/pull/266072 task-6237870
Resolved issues and error corrections
This update fixes a confusing naming convention for quarterly returns. Previously, returns were labeled with just 'Q1,' 'Q2,' etc., regardless of the company's fiscal year. Now, returns are named with the actual month and year range (e.g., 'January 2024 - March 2024'), providing clearer and more accurate reporting.
Original PR description
Currently, if the company fiscal year doesnot align with calender year, i.e Fiscal year end is not december and any month in between like India (March 31), while creating quarterly returns, the return name has Q1 for Jan - Mar, Q2 for Apr - Jun, and so on, which is not aligned with the fiscal year quarters. This commit fixes that issue by naming it like "From Month Year - To Month Year" for quarterly returns. task-6124692 Forward-Port-Of: odoo/enterprise#114438
Features or functions removed from Odoo
This update removes the ‘account.group’ model from the l10n_dk module in the saas-19.3 release. This change was necessary to resolve an error that occurred when accessing records. The removal ensures the Danish localization module functions correctly within the Odoo SaaS platform.
Original PR description
account.group model is removed in saas-19.3, in this commit odoo/odoo@aecbd819664613aaa7e302fc24c8f1c6505eaef5 , so we will get an error while trying to access this record. 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
This update fixes an issue where guests rejoining a public discuss meeting would be redirected to a welcome page without their name pre-filled. Now, the guest name automatically populates the input field, streamlining the process for users to quickly rejoin and participate in the meeting. This improves the user experience for both hosts and guests.
Original PR description
Previously, when a guest joined a discuss meeting, and the page was reloaded, the user was redirected to the welcome page without the guest name being pre-filled in the input. This PR restores the previous behavior by pre-filling the guest name in the input, allowing users to rejoin the meeting quickly with a single action. task-6192285 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#262978
This update fixes a bug where the HTML editor wouldn't correctly select tables when a user started a selection within a table cell and then moved the selection outside of it. Previously, the entire table was selected in this scenario. This change ensures the HTML editor accurately reflects user selections within tables, improving usability and data editing.
Original PR description
The previous commit fixes a behavior that is expected when the user makes a selection that starts in any element and ends in a table cell (the whole table gets selected), but the reverse case was never handled, namely when the selection starts in a table cell and ends outside of it. backport-https://github.com/odoo/odoo/pull/239270/changes/68e71fad5bbb0445bb1850bf694235f3235b602f task-5420366 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#265681 Forward-Port-Of: odoo/odoo#264722
This update fixes an issue where Peppol-imported invoices weren't correctly displayed in the chatter window. The change ensures that the original XML invoice attachment is linked to the chatter message, providing better visibility for users. This improves the tracking and management of Peppol invoices within the Odoo system.
Original PR description
**Steps to reproduce:** 1) Install l10n_be and configure Peppol demo mode. 2) Open debug mode, search for 'Peppol: retrieve new documents' in scheduled action. 3) Open the generated vendor draft…
**Steps to reproduce:** 1) Install l10n_be and configure Peppol demo mode. 2) Open debug mode, search for 'Peppol: retrieve new documents' in scheduled action. 3) Open the generated vendor draft bill. 4) Observe that the imported XML is present in attachments but not in chatter. **Cause:** In the (`_import_ubl_invoice_post_processing()`) https://github.com/odoo/odoo/blob/27cc9b920ad6818563b471dd3391548913790ef3/addons/account_edi_ubl_cii/models/account_edi_ubl.py#L3344 chatter attachments were built from: `self._import_attachments(invoice, collected_values['tree'])` This only includes embedded extra documents and emits the source imported XML attachment. As a result, the XML remained stored on the move (ubl_cii_xml_file) but was not linked to the chatter message. **Solution:** Include the source attachment when building the chatter attachment set. opw-6197738 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#264399
This update fixes a minor visual issue on the Odoo website's shop pages. Previously, the 'clear' buttons within the product selection area were shrinking unexpectedly, creating a less polished user experience. This change ensures the buttons maintain their intended size and appearance, improving overall website usability.
Original PR description
task-6145581 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#265494 Forward-Port-Of: odoo/odoo#262183
This update resolves an issue where users were encountering errors when creating group holiday allocations due to an unnecessary approval step. The fix removes a redundant approval process and streamlines the allocation generation workflow, ensuring a smoother experience for users managing time off requests. This improves the reliability of the holiday allocation feature.
Original PR description
**Steps to Reproduce:** 1. Go to Time Off > Management > Allocations 2. Create new group allocation 3. Invalid operation error **Bug Cause:** In this commit 1b6f3a1335302ca029ab62a25c7bcff0953b99be, an additional approval line was introduced which tried to approve allocations which were already approved. **Solution:** Remove this line and move the accrual filter right before the first action approve. Added test. **Task:** 6218151 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves an issue where discounted UBL invoice lines were being incorrectly filtered out during import. The fix ensures that lines with zero totals, including those representing supplier discounts or taxes, are retained, allowing for accurate reconciliation between invoices and original documents. This improves the reliability of our UBL invoice processing.
Original PR description
`_import_ubl_invoice_add_base_lines` filters out every imported line whose `total_included_currency` is zero, on the assumption that a zero-amount line carries no useful information. This is correct for truly empty rows, but wrong for 100%-discounted lines, an ecotax or excise row, or a returnable-packaging entry nets to zero precisely because the supplier discounted it entirely, and the line still carries data the customer needs to reconcile the bill against the original document opw-6176349 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#265284
This update resolves an error that prevented users from initiating replenishment when specific routing configurations were in place. The fix ensures the system correctly handles scenarios where no routes match the product's company settings, preventing a technical error and ensuring replenishment functionality works as expected.
Original PR description
## Steps to Reproduce: 1. Install the stock module. 2. Activate "Multi-Step Routes" from settings. 3. Activate the "My Company (Chicago)" company. 4. Create a route for the Chicago company. 5. Create a new product and enable the created route on it. 6. Click on the "Replenish" button. ## Error: `IndexError - tuple index out of range` ## Cause: At [1], when none of the product routes belong to the current company or are shared routes, the filtering returns an empty recordset. As a result, trying to access the first route from the empty result raises an index error. ## Fix: This commit only assigns `route_id` when a route matches the given condition. Otherwise, it keeps the value as `False`. [1] - https://github.com/odoo/odoo/blob/13c0e082c260381a332fe1425fe2ba83a1c0c579/addons/stock/wizard/product_replenish.py#L78 sentry-7488075413 Forward-Port-Of: odoo/odoo#265707 Forward-Port-Of: odoo/odoo#265179
This update resolves an issue where the eCommerce mega menu builder would display incorrectly when a website had categories linked to products that were not yet published. The fix ensures the mega menu toggle is only shown when there are actually published products to display, preventing errors and a blank menu.
Original PR description
Steps to reproduce: =================== 1. Create a product, link it to an eCommerce category, keep it unpublished. 2. Create a mega menu, edit it. 3. Enable "eCommerce Categories" and try to change…
Steps to reproduce:
===================
1. Create a product, link it to an eCommerce category, keep it unpublished.
2. Create a mega menu, edit it.
3. Enable "eCommerce Categories" and try to change the number of columns.
=> Mega menu is empty and a JS error is logged in the console.
Cause:
======
The "eCommerce Categories" toggle in the mega menu builder appears whenever any `product.public.category` exists for the website. Once toggled, the eCommerce mega menu templates (`s_mega_menu_multi_menus`, etc.) are server-rendered and the resulting HTML is stored on `website.menu.mega_menu_content`.
Since [1] , those templates filter their with
`('has_published_products', '=', True)`. So when the user has categories but no published product, enabling the toggle produces an empty `<div class="row"></div>`. Clicking the column-count option on that empty row which won't have any children and it will cause an error.
Solution:
=========
Adapt the toggle on the same condition the templates use, so it is only offered when there is at least one category that will actually be rendered.
[1]: https://github.com/odoo/odoo/commit/120a7633505891ba3e02e879f0c1a8287a690456
opw-6218503
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#265615
Forward-Port-Of: odoo/odoo#265190This update resolves an issue where invoices sent to Jofotara were being rejected due to extremely small negative discount amounts. The fix ensures that discount amounts are always non-negative by applying an absolute value calculation, preventing errors and ensuring proper invoice processing. This improves compatibility with the Jofotara system.
Original PR description
Before this commit: 1. Create a POS order with no discount and a quantity that does not divide evenly into the unit price (e.g. price=10.0, qty=3) 2. Send the order to Jofotara Jofotara rejects the…
Before this commit:
1. Create a POS order with no discount and a quantity that does not divide evenly into the unit price (e.g. price=10.0, qty=3)
2. Send the order to Jofotara
Jofotara rejects the invoice because the AllowanceCharge/Amount on the invoice line is a small negative value like -0.000000001 with the error `"EINV_MESSAGE":"discount cannot be negative"`
This happens because _add_document_line_gross_subtotal_and_discount_vals computes the discount as: gross_subtotal - total_excluded_currency
where gross_subtotal goes through two independent rounding steps (round unit price, then round unit_price * qty). When the quantity is indivisible, the reconstituted gross_subtotal can land just below total_excluded_currency by a floating-point epsilon, producing a tiny negative discount. The same subtraction also produces a legitimate negative value for refund lines (negative quantity), which was already handled by abs() in _add_pos_order_discount_vals for the document-level total but was left unguarded at the per-line level.
After this commit:
Apply abs() to vals[f'discount_amount{currency_suffix}'] in _add_pos_order_line_allowance_charge_nodes so that discount_amount_currency is always non-negative.
opw-6183423
Forward-Port-Of: odoo/odoo#265159A visual bug where a message badge remained visible after removing a note from the Point of Sale (POS) system has been fixed. The fix ensures that the badge disappears correctly when a note is deleted, improving the user experience. This change was triggered by a correction in how empty notes are handled.
Original PR description
Steps to reproduce:
-----------
- Open POS Restaurant
- Add a General Note
- Remove the General Note
- The message badge on “Send to Kitchen” remains visible
Issue:
-----------
Removing a General Note set `general_note` to `undefined`, which was
detected as a change and kept the badge visible.
Fix:
--------------
Normalize empty General Notes to an empty string ("") so removing a note
restores the correct initial state.
Task-6101501
Related PR: odoo/enterprise#113514
Forward-Port-Of: odoo/odoo#265652
Forward-Port-Of: odoo/odoo#258632This update resolves an issue where the generic tax report wouldn't display error messages when dealing with negative net values. The fix ensures that the report accurately checks for tax discrepancies, even when balances are negative, preventing misleading error notifications.
Original PR description
**Issue:** In the generic tax report, a check is performed on the report lines to ensure that the declared tax amount is consistent with the expected amount. If the difference between the declared tax amount and the expected one is higher than 0.1% of the declared net amount, then a error message is displayed. If the net amount is negative, the error message is never displayed because the computed percentage of the tax difference is negative and therefore lower than 0.1% (i.e. 0.001). opw-6014350 Forward-Port-Of: odoo/enterprise#117990
This update fixes a bug that caused the Point of Sale module to crash when a user dragged a product to the end of a list and then removed it. The issue stemmed from incorrect handling of list elements. Testing on other platforms suggests this was a platform-specific problem.
Original PR description
When dragging a product from the end of the list, the code was trying to access a null element which caused a traceback. Note: this issue looks to not be reproducible on macOS likely due to difference in drag events. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes a visual issue where the drag-and-drop overlay for moving table rows and columns in email templates was misaligned. The fix ensures the overlay appears correctly, regardless of whether the table is displayed within an iframe, improving the user experience when creating and editing email marketing content.
Original PR description
Steps to Reproduce: - Navigate to Email Marketing and open any template. - Insert a table into the template. - Long-press on the column or row options. Description of the issue: - The blue overlay used for moving rows/columns appears misaligned. Cause: - The position of the drag-and-drop overlay is calculated without considering the iframe. When the table is inside an iframe and the overlay is rendered outside of it, the position calculation becomes incorrect. Solution: - Update the position calculation logic to account for the iframe. This ensures that when the table is inside an iframe, the drag-and-drop overlay is displayed at the correct position. task-6059715 Forward-Port-Of: odoo/odoo#264085 Forward-Port-Of: odoo/odoo#256347
This update fixes a discrepancy in how contract types are defined within the Odoo Enterprise system, specifically for the Belgian localization. The definition of the contract type ID was standardized across modules, resolving potential conflicts and ensuring accurate reporting. This change improves data consistency and reliability.
Original PR description
[IMP] hr_contract_salary: fix contract_type_id definition The definitions of the contract_type_id in hr_contract_salary_offer and l10n_be_hr_contract_salary/hr_contract_salary_offer should be same I converted the definition of contract_type_id in the base module to the Belgium one. Also, the contract_type_id was inserted to the view in Belgium one as well, I deleted that part to prevent double appearance. This task is only for v.17, after this version I will open a new PR to handle them. Do not forward the task after v.17 (only for v.17) task - 6101717 Forward-Port-Of: odoo/enterprise#117925 Forward-Port-Of: odoo/enterprise#113244
This update resolves a confusing user experience where discount codes wouldn't work after being discarded. Now, users can successfully re-apply previously discarded codes, ensuring rewards are correctly applied without creating duplicate entries. This improves the overall efficiency and usability of the loyalty program.
Original PR description
Issue: --- ### Steps to reproduce: 1- Create a `Discount Code` program. 2- In SO, use `Coupon Code` wizard and use the code. 3- After available rewards are shown, discard the wizard. 4- Re-apply the code. Validation Error: The promo code is already applied. As the reward is not applied, this is functionally confusing. At this point We can see the reward only inside the rewards wizard view. If we allow re-apply the code in case no reward line is created for the `rule.program_id`, we can still see the reward by re-applying the same code, without any side effects. opw-6164198 Forward-Port-Of: odoo/odoo#264105 Forward-Port-Of: odoo/odoo#261950
This update resolves an issue where users would encounter an error when attempting to sign in to planning slots that lacked a defined end date. The fix ensures the system handles slots without end dates gracefully, preventing the error and allowing users to proceed with scheduling.
Original PR description
Currently, an error occurs when user tries to signin on a planning slot which doesnt have an end date selected.
Steps to replicate:
- Install `planning_field_service` and open Planning.
- Click New > Add a Customer > Change status to `Scheduled`.
- Remove end datetime (right one) > Click `Sign In`.
Error:
```
File '/home/odoo/odoo19/enterprise/planning_field_service/models/planning_slot.py', line 264, in action_sign_in
if now > self.end_datetime.astimezone(ZoneInfo('UTC')):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'bool' object has no attribute 'astimezone'
```
Cause:
- As the user removed value from end datetime, `self.end_datetime` is False so we get this error when trying to access `self.end_datetime.astimezone()`.
Solution:
- Added a conditonal check for `self.end_datetime` before accessing `self.end_datetime.astimezone()`.
sentry-7480608465
Forward-Port-Of: odoo/enterprise#117425This update resolves an issue where validating opening financial moves would trigger an error. Now, users can successfully validate these moves, ensuring accurate initial accounting setup for each company within the Odoo system. The change addresses a context issue where the company ID wasn't consistently defined, causing the error.
Original PR description
Issue:
Posting and validating an opening move raises a UserError.
Steps to reproduce:
- With accounting
- Accounting -> Settings -> Initial setup
- Add some opening credit/debit values
- Click on "Validate and post"
- On the confirm window, click on Post
Current behavior:
- Raise a UserError
Expected behavior:
- Post the entry for the current company only
Cause:
As "company_id" is not always defined in the context, `get('company_id')` return None and trigger the UserError.
Instead, warn the user it will be validated only for the current company.
opw-6164885
Forward-Port-Of: odoo/odoo#263871This update resolves an issue where the ecommerce website displayed multiple file viewers simultaneously when the live chat feature was enabled. The fix ensures that only one file viewer appears, improving the user experience and preventing visual clutter. This was a minor technical adjustment to address a flicker.
Original PR description
Before this commit, ecommerce file viewer on website may show more than 1 file viewer at once. This happens because when livechat is installed, the overlay container of livechat mistakenly shows the overlay, therefore the overlay is displayed on main page's overlay container and on the livechat container. The regression was made with [1], where the root id is not longer picked from a target DOM but instead relies on the `env`. This change was motivated to fix a flicker, but the tradeoff is that this requires good passing of the `env` with `rootId`. This was properly set on `MainComponent`, but the overlay container of livechat is exceptionally not the `MainComponent` but instead in `LivechatRoot` that is manually mount. This app lacked the `rootId` in the `env`, which this commit solves. opw-6227540 [1]: https://github.com/odoo/odoo/pull/263860 Forward-Port-Of: odoo/odoo#265603
This update resolves a bug that prevented invoices from being sent correctly in the Nemhandel demo mode. The issue stemmed from a change in how the system sends data to Nemhandel, requiring a small update to the underlying code. This ensures invoices can now be successfully processed in demo mode.
Original PR description
Steps to reproduce:
1. Install l10n_dk_nemhandel.
2. Register user for Nemhandel in Demo mode.
3. Create and post an invoice.
4. Click Send, check 'By Nemhandel (Demo)', and send.
-> Traceback: IndexError: tuple index out of range in _mock_send_document.
Cause:
The Nemhandel mocking system was halfway refactored to align with the Peppol
mocking architecture. As a result, the `_call_nemhandel_proxy` method now
passes the request payload as a keyword argument (`params={...}`) instead of
positional argument (`args[1]`). The mock functions were still attempting to
access `args[1]`, causing the crash.
Solution:
Update the mock functions to extract the payload directly from
`kwargs.get('params', {})`, removing the obsolete positional argument (args)
fallback to align with the new EDI architecture.
task-6065372
Forward-Port-Of: odoo/odoo#260574This update fixes a visual issue in the stock picking operations report, which previously lacked table borders, making it difficult to read. The change restores the standard table borders, significantly improving the report's clarity and usability for users.
Original PR description
Issue before this commit: ========================= The picking operations report displays the operations table without borders, making it difficult to read and distinguish between rows and columns.…
Issue before this commit: ========================= The picking operations report displays the operations table without borders, making it difficult to read and distinguish between rows and columns. Steps to Reproduce: ========================= - Install the stock module - Create a delivery order with products - Print the picking operations report Cause of the issue: ========================= In this commit (https://github.com/odoo/odoo/commit/21cd7e6), the `o_report_stockpicking_operations` class was added to a div, which removed the table borders. After This Commit: ========================= This change restores the table borders in the operations report, improving readability. Before: <img width="796" height="523" alt="2026-04-17_16-30" src="https://github.com/user-attachments/assets/084861e9-3c5b-4ca7-a237-32a56bf2267d" /> After: <img width="795" height="596" alt="2026-04-17_16-30_1" src="https://github.com/user-attachments/assets/e43ed341-8e8b-47c9-9820-66a53823b26c" /> Task: 5462122 Forward-Port-Of: odoo/odoo#253498
This update fixes an issue where the 'Company Name' field on the customer website form wasn't syncing properly. The change ensures that if a parent company doesn't exist, it's created and linked to the customer contact, preventing data loss and maintaining consistent information across the website and backend systems.
Original PR description
Steps to reproduce: 1. Add a Website Form snippet 2. Set the action to "Create a Customer" 3. The "Company Name" field is not synced with the builder option (the "Type" dropdown shows "None") Reason: In PR[1], the company field was removed, resulting in an unexpected `None` value and potential data loss. Fix: Restore the expected behavior by ensuring that: - A parent company is created if it does not exist - The contact is linked to this parent This prevents data loss and ensures consistency between the form and backend data. [1] https://github.com/odoo/odoo/pull/211043 task-5979184 Forward-Port-Of: odoo/odoo#260101
The HTML Editor's code toolbar was displaying incorrectly on mobile devices due to a font size conflict. This update resolves this issue, ensuring the code toolbar appears correctly and consistently across all devices, improving the user experience for mobile users. This is a minor fix to enhance usability.
Original PR description
Currently syntax highlighting toolbar UI is broken in mobile devices. This happens because code toolbar button's font-size (12px) is overridden by webclient.css `.btn` class font-size (14px). This PR aims to fix the code toolbar's broken UI for mobile devices. task-6201174 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes an issue where a white background on the website would interfere with the appearance of product details. The change removes a conflicting white background from the product information card, ensuring a cleaner and more visually appealing design when using website backgrounds. This improves the overall user experience.
Original PR description
When a background is set on the website, we can't remove the background of the product information card making the design unaesthetic Steps to reproduce: 1. Install eCommerce 2. Go to Website and click on Edit in the top right corner 3. Open the "Theme" tab, set an image (not plain white) to the website's background and save 4. Go to the shop and open any product 5. The product details are shown on a white block that disrupts the background image Issue: We set a background-color on `#product_details` with value `$body-bg` which is an opaque white Solution: Remove the white background of `#product_details` opw-6214514 Forward-Port-Of: odoo/odoo#265021
This update fixes a potential error that could cause a traceback when users deleted images from media items on the website. The change now gracefully hides the image option and provides an 'add image' option instead, ensuring a smoother user experience. This prevents disruptions and maintains website functionality.
Original PR description
Before this commit, the deletion of a `s_media_list_item` image triggered a traceback because `SetMediaLayoutAction.isApplied()` attempted to calculate the option's state on a missing element. Steps to reproduce: - Enter edit mode - Drop `s_media_list` snippet - Select the first media item - Delete its image - The image is deleted, but a traceback appears This commit hides media layout options when the item has no image and introduces an add image option instead. task-6229179 Forward-Port-Of: odoo/odoo#265271
This update fixes a visual issue where content in the user rights widget sometimes overflowed, causing a cluttered display. The change adds scrolling functionality to the popover component, ensuring all information is visible and accessible. This improves the user experience for managing user permissions.
Original PR description
This PR adds the `overflow-auto` class to the popover component to enable scrolling and prevent content overflow. **Task-ID: 6137031** Forward-Port-Of: odoo/odoo#261216
This update fixes a warning error that appeared during payrun creation when multiple payruns were generated or the payroll schedule was adjusted. The issue stemmed from an error in how the system processed domain settings, which was corrected to prevent the warning. This ensures consistent and reliable payrun processing.
Original PR description
[FIX] hr_payroll: fix payrun warning bug Bug reproduction: When we select Employee Type and all employees and create a payrun. Do this twice at least. Then set your schedule in the dashboard of payroll app. Error will appear. Bug cause: There was ast.literal_eval(action['domain']) part where action refers to action_hr_payslip_run but action['domain'] is False and ast.literal_eval(action['domain']) throws and error Bug solution: I said ast.literal_eval(action['domain'] or '[]'), in case action['domain'] is False, we should return [] domain to prevent throwback. task - 6227118
This update fixes a potential issue where spreadsheet formulas referencing list headers could break due to translation changes. The update ensures list headers remain stable, preventing formula errors and improving the overall reliability of spreadsheet calculations. This change simplifies the spreadsheet behavior and enhances user confidence.
Original PR description
Description: With odoo/odoo#261686, list headers became translatable by default and we only stored explicit labels again when a pivot was created from a list range. This kept pivots stable, but formulas using list headers could still break when labels changed with translations. It also made the behavior harder to understand, as some headers were translated while others became fixed later on. In this commit: - store `string` again for newly inserted and user-edited lists so their headers stay stable - keep `string` optional for existing spreadsheets so they preserve their current behavior - remove the pivot-specific list header conversion logic - validate source dashboards in tests so their list columns keep omitting `string` and fall back to translated field labels Task: 6204484 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves an issue where clicking on archived users in the member list caused errors. By preventing clicks on archived users, we've improved the user experience and eliminated these technical problems. This change aligns with how archived users are handled in other parts of the system.
Original PR description
Previously, clicking on an archived user from the channel or group member list triggered a traceback. This PR prevents archived users from being clickable, aligning the behavior with the message model where the popover is not opened for archived users, thus avoiding the traceback. enterprise: https://github.com/odoo/enterprise/pull/117480 task-6179486 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#265544 Forward-Port-Of: odoo/odoo#262247
This update resolves a test failure in the Odoo WhatsApp app's discuss sidebar. The change ensures the test accurately reflects the new system behavior of only considering active users when determining available commands. This improves the reliability of the test and ensures the app functions correctly for users.
Original PR description
This PR updates the discuss sidebar testcase to match the new behavior where only active users are considered when computing main_user_id, reducing the number of available commands and fixing the failing assertion. community: https://github.com/odoo/odoo/pull/262247 task-6179486 Forward-Port-Of: odoo/enterprise#117902 Forward-Port-Of: odoo/enterprise#117480
This update fixes an issue where the receipt preset section incorrectly displayed 'false' when certain information was missing. Now, the preset section is hidden when no identification is provided (Dine In) and missing values in Delivery are handled correctly. Additionally, customer names are now included on the receipt header for retail and Dine In orders.
Original PR description
Before this commit: ==== - When a preset ( Dine In or Delivery) was selected and no time slot was set, the receipt displayed false in the preset section. After this commit: ==== - Hide the preset section when no identification is defined ( Dine In ). - Properly handle missing values in Delivery to avoid displaying false. - Added customer name on receipt header in retail and Dine In. task-6141964
This update corrects an issue where the 'Send to Kitchen' toast message in the restaurant ordering system was displaying incorrect formatting for items in languages other than English. The fix utilizes a language-aware method to properly combine item descriptions, ensuring accurate messaging for all users regardless of their selected language. This improves the clarity and professionalism of the order preparation process.
Original PR description
Steps to reproduce: ------------------- 1. Set the user language to French. 2. Configure a preparation display. 3. In PoS, add 2 products of different categories (e.g. 2 starter and 1 main) 4. Send to kitchen -> Toast shows "2 starter et 1 €, envoyé à la cuisine" instead of "2 starter et 1 main, envoyé à la cuisine". What's happening: ----------------- The summary is built with a regex that uses `$1` to replace the ", <last_item>" with an "and <last_item>", however, this `$1` in languages other than english is being translated, in our case to `1€`, and the regex replacement logic does not work properly anymore. The fix: -------- Use `formatList` to join the items, it uses the user language to apply locale-specific joining rules. opw-6149616 Forward-Port-Of: odoo/odoo#265712
This update corrects a translation issue in the Odoo Gantt view. The button used to toggle display modes was not correctly translated, preventing users from seeing the view in their preferred language. This commit ensures the button title is dynamically translated based on the current display mode setting.
Original PR description
The title of the button allowing to toggle the display mode in the Gantt view was not translated. This commit adds a getter to compute the title based on the current display mode, and uses it in the template. Issue reported by translator. Forward-Port-Of: odoo/enterprise#117807 Forward-Port-Of: odoo/enterprise#117739
This update resolves two issues related to Odoo's eTransport functionality. Previously, errors during transport setup resulted in technical tracebacks. Now, the system will display a clear validation message on the delivery document itself, providing better guidance to users. This improves the user experience and simplifies troubleshooting.
Original PR description
This commit fixes two corner case bugs:
1. Transport on National Territory with a warehouse in another country
- Setup eTransport data in settings
- Create a delivery to a Romanian customer
- in eTransport tab -> choose operation type: Transport on National
Territory
- Go to configuration -> warehouses -> change the address of the
warehouse to an address not in Romania
- send the eTransport
2. Sending to eTransport with invalid tokens
- Setup eTransport data in settings
- Remove a character from one of the tokens
- send a valid Delivery to eTransport
we get a traceback for both cases but we want a validation message on the
created document instead.
task-6217207
Forward-Port-Of: odoo/odoo#264747