Friday, September 12, 2025
52 changes · master
Resolved issues and error corrections
Vendor pricelists created from blanket orders now use the unit of measure specified on the blanket order line instead of defaulting to the product's base unit. This helps purchasing teams avoid pricing or quantity mismatches when blanket orders use different units.
Original PR description
This commit fixes setting the UoM of the vendor pricelist generated by a blanket order. Previously, the created pricelist had the base unit of the product. Now, it has the unit of the blanket order line. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#226033
Changing the navbar logo height in the website editor now updates the preview immediately, without needing to save or wait for assets to reload. This makes website customization more accurate and reduces confusion while editing page headers.
Original PR description
Steps to reproduce: - Website > Go to Website > Edit - In the sidebar: Navbar logo, change Height - Before: the logo size does not change until clicking Save (or after bundles reload) - After: the logo resizes immediately while editing Since [1], the header logo is rendered with width and height attributes to reserve space and reduce CLS. But since [2], the `width` and `height` attributes have been removed and converted to inline styles, which take precedence over the CSS stylesheet. This commit addresses this issue. [1]: https://github.com/odoo/odoo/commit/d80b8cbc28b6e9d16608f9ecfcf4b360d0c792c7 [2]: https://github.com/odoo/odoo/commit/cb2510f4e525192e4b3d5d673218775c2d9d174e Forward-Port-Of: odoo/odoo#226283
The accounting setup now ignores localization templates from modules that are not installable. This prevents avoidable error logs when custom or outdated localization modules are present but not ready to be installed.
Original PR description
* Problem: if having a custom module that add extra tax to current localization module, ex: l10n_x inherit l10n_vn module, but the l10n_x module is not installable because it hasn't upgraded yet, the _get_chart_template_mapping include it as well, there for will log error in https://github.com/odoo/odoo/blob/18.0/addons/account/models/chart_template.py#L1219 * Solution: only get available template code for module that installable 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#225821
This update prevents the mail system from failing when some internal message details are not available. It helps keep communication-related actions running reliably in edge cases without changing the user workflow.
Original PR description
msg_vals might not be propagated. Forward-Port-Of: odoo/odoo#226440
PAN Entity records in the India localization now require a PAN/name before they can be saved. This prevents users from encountering an error during record creation and improves data completeness for Indian tax identification records.
Original PR description
Cause: When saving a PAN Entity without a PAN, `record.name` is False. The create() method calls `record.name.upper()`, which crashes with "AttributeError: 'bool' object has no attribute 'upper'". Before this commit: It was possible to save a PAN Entity without a name, leading to a traceback during record creation. After this commit: The PAN field is marked as required. Ref - https://pastebin.com/Gu15zLwA Forward-Port-Of: odoo/odoo#226456
This update makes link editing more predictable in the website editor. Image links no longer show an unintended live preview while typing or choosing a URL, and empty links are preserved with a safe placeholder instead of losing the edit.
Original PR description
### Description of the issue/feature this PR addresses: - onChange was triggered both while typing in the URL input and when selecting an autocomplete item, causing live preview even for image links. - When editing a link, removing URL and clicking outside discarded changes. ### Desired behavior after PR is merged: - Live preview is now applied only for normal text links, not for image links. - If the URL field is empty and the user clicks outside, the link now default its href to '#'. task-5028570 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#223887
The Indian localization demo company data now includes a TAN number when TDS is enabled. This prevents setup or demo issues caused by a missing mandatory tax deduction identifier.
Original PR description
TAN number is a mandatory field when TDS is enabled on a company. 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#226330
A stock module test has been adjusted so it works correctly when only the Stock app is installed. This improves test reliability and helps prevent false failures during quality checks, without changing day-to-day user functionality.
Original PR description
Issue Before This Commit: ============================ The test_stock_route_diagram_report tour fails when only the stock module is installed. The tour breaks because the element `.btn[id="stock.view_diagram_button"]` is not found. Steps to Reproduce: ============================ - Install only the `stock` module. - Run the `test_stock_route_diagram_report` test. - The tour breaks because the element `.btn[id="stock.view_diagram_button"]` is not found. Cause of the Issue: =========================== The tour breaks due to a recent [PR](https://github.com/odoo/odoo/pull/223685) that hides the `view_diagram_button` when no routes are available for the product. With This Commit: ============================ Ensure the tour runs successfully by activating a default MTO route in the test setup, so the required element is present. runbot-232573 Forward-Port-Of: odoo/odoo#226536
The blog sidebar once again shows a dedicated RSS button, making it easier for visitors to subscribe to blog updates. The button is separated from general social media links, keeping blog subscriptions clear and easy to find.
Original PR description
Commit [1] changed the "follow us" social media snippet in the blog sidebar to not be dynamic anymore (meaning, it uses the website related social media by default but they are not added/removed automatically based on if they are set or not)... but doing so it removed the custom "RSS" button by mistake. This commit restores it, placing it at the top right of the sidebar, instead of being a part of the "follow us" social media. This keeps everything as static as possible + it actually makes sense to have this dedicated button outside of the more general "follow us" which is more website related than blog related. [1]: https://github.com/odoo/odoo/commit/8b7e44c8c6a7b5c267da39f438e0dfc20699befd Forward-Port-Of: odoo/odoo#226625
The online store now uses the correct template reference for an alternative website snippet. This prevents the wrong layout or content block from being used, helping keep storefront pages displayed as intended.
Original PR description
This commit use correct template key in alternative snippet. Issued PR: https://github.com/odoo/odoo/pull/214744 Forward-Port-Of: odoo/odoo#226317
The chat window composer now uses more consistent spacing at the bottom and sides. This small layout fix gives users a bit more room to see messages while keeping the chat interface visually balanced.
Original PR description
This makes consistent spacing of bottom and horizontal, and also has the benefit to show more message list in viewport. Before <img width="1169" height="644" alt="Screenshot 2025-09-11 at 11 52 03" src="https://github.com/user-attachments/assets/7863dc04-d572-4c37-b182-6d519956a041" /> After <img width="1167" height="647" alt="Screenshot 2025-09-11 at 11 48 21" src="https://github.com/user-attachments/assets/8980a2a2-93fc-4016-8e76-5b5b3fa6899a" /> Forward-Port-Of: odoo/odoo#226537
Several spreadsheet dashboards now display charts with improved alignment. This makes sales, expenses, restaurant, timesheet, and ecommerce dashboard views cleaner and easier to read for users.
Original PR description
This commits fixes some misaligned charts. Task: 5081680 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#226442
Errors found during the web test runner's preparation step are now reported as real errors instead of being hidden in regular logs. This helps Odoo's automated checks catch serious test issues earlier, reducing the risk of blocked or misleading test runs.
Original PR description
The test runner replaces most occurences of `console.log` with a formatted `console.trace`, as to avoid duplicate runbot error messages in general. The issue is that during the dry run, errors that are caught should be logged on the runbot since these errors are more critical (i.e. duplicate test name, which will prevent the runner to run at all). This commit ensures that errors caught during dry run are logged as actual errors to prevent this issue. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#225688
The Employee Type field has been restored on employee records after it recently disappeared. This helps HR users continue classifying employees correctly without losing access to an important staff detail.
Original PR description
The Employee Type field disappeared lately, so had to put it back. task-5079734 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Scrolling in the website builder is now smoother in Chrome, especially when using a laptop trackpad. This reduces distracting visual stutter in the Edit and Theme panels, making page editing feel more polished and comfortable.
Original PR description
__Current behavior before commit:__ On Chrome, some elements of the builder, like the options headers, move at different times when scrolling with the trackpad creating unpleasant jank visual effect. __Description of the fix:__ Use `will-change: scroll-position;` to tell the browser to optimize the scroll rendering. __Steps to reproduce the issue on runbot:__ 1. Open the website builder in Chrome 2. Scroll with the laptop trackpad in the *Edit* or *Theme* tab Forward-Port-Of: odoo/odoo#224598
Website editors will no longer see duplicate product names when previewing a dynamic product catalog without real products. The sample preview now shows a single clear product name, making the editing experience cleaner and less confusing.
Original PR description
When editing the dynamic product catalog snippet with no real products available, a default sample is generated. Each sample product is assigned a fictitious name. However, the card template for each product also renders a default product name when sampling is enabled, leading to an issue where two names were displayed. This fix ensures only one name is shown by removing the default product name if one is already available. Forward-Port-Of: odoo/odoo#226096
This fixes internal test connection cleanup so closed websocket connections are handled consistently. It prevents one expected connection-closed error from being turned into a confusing system error, helping maintain clearer automated test results.
Original PR description
Followup to 16.0-closed-in-stop-xmo: the condition in `stop` is a `hasattr`, so we need to delete `self.ws` not set it to `None`. Setting it to `None` means the condition passes then blows up as soon as we try to use it, which means we "just" converted all the old `WebSocketConnectionClosedException` to an `AttributeError`. https://runbot.odoo.com/odoo/error/231446 Forward-Port-Of: odoo/odoo#226267
This fixes a display issue when creating a contact from a VoIP call where the contact image area could show broken image text before saving. Users will now see a proper placeholder when no valid image is available, making the workflow look cleaner and less confusing.
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: When creating an inline partner from voip.call, the partner image was not updating properly, forcing alt text to be displayed until voip.call record was saved. Desired behavior after PR is merged: When the field is dirty because of an inline creation of record which does not contains a valid image, display a placeholder image instead of an broken image or alt text. Task-5023035 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix makes it possible to customize part of the import process that previously could not be overridden. It helps businesses with tailored import flows keep their custom behavior working reliably after updates.
Original PR description
This commit, allows to override the `onWillStart` of the import action component. Forward-Port-Of: odoo/odoo#226445
The Belgian localization demo company now uses a VAT number with the correct required length. This prevents validation issues when using demo data for testing Belgian company setup and related features.
Original PR description
The Belgian VAT doesn't have the right length, which is causing weird behavior when testing feature with demo data.
In particular, since the company_registry is computed based on it, Odoo doesn't pass some validation since it's not a correctly formatted data.
The VAT should be following the format `^BE[0-1][0-9]{9}$`. So "BE" followed by 10 digits, while we only had 9.
task-none
Forward-Port-Of: odoo/odoo#226018This fixes a minor display issue on the online shop page where internal condition values could appear in the page header markup. The change keeps the storefront output cleaner and prevents unintended text or attributes from being exposed in the page structure.
Original PR description
In odoo/odoo@f207c7644400228a2ee10dcb3f2731250fcbea08 we introduced conditions on the `o_wsale_products_header` to tweak its styling. However some of the conditions were returning the value of `category` instead of a False boolean. This commit replaces it with `bool(category)` to ensure the condition is False and not rendered in the DOM. task-5059179 What was rendered before this fix: <img width="365" height="157" alt="image" src="https://github.com/user-attachments/assets/ae60629b-7b3d-46bd-bfb4-d935419402a9" /> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#226346
Description of the issue/feature this PR addresses: Correct the spelling Current behavior before PR: Urban Piper was in 2 words. No space needed Desired behavior after PR is merged: UrbanPiper in one word --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Original PR description
Description of the issue/feature this PR addresses: Correct the spelling Current behavior before PR: Urban Piper was in 2 words. No space needed Desired behavior after PR is merged: UrbanPiper in one word --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Embedded live chat visitors can now open meeting chats as intended. This fixes a missing permission in the embedded chat experience, reducing friction for guest conversations that involve meetings.
Original PR description
The embed live chat has a subset of allowed thread actions. The meeting chat action was added but not added to the allowed thread actions. In the future, we will allow most of the thread actions, at least the ones allowed for guests. Environment should not impact feature availability. However for now, let's just enable the missing action. Forward-Port-Of: odoo/odoo#226553
Survey responses with date and time answers now show the same time in the answer list as they do in the detailed form. This prevents confusion for users reviewing survey results across different time zones.
Original PR description
Steps to reproduce ==================== 1. Create survey with some datetime questions. 2. Receive some response on it. 3. Check answer of datetime questions in answer tab. 4. Click on that answer to open form. ->The time shown in answer tab differs from actual value in form. The display_name of survey.user_input.line is computed based on the answers submitted by users. For questions of type datetime, the display_name was generated by converting the datetime value to a string without accounting for the user's timezone, leading to a mismatch between the actual value and the displayed time. After this commit ================== This commit updates the computation of display_name for datetime answers to consider the current user's timezone. Task-4890423 Forward-Port-Of: odoo/odoo#226354 Forward-Port-Of: odoo/odoo#216281
The web test runner now keeps excluded tests when simplifying test URLs. This prevents selected test runs from accidentally ignoring exclusions, improving reliability for internal quality checks.
Original PR description
Before this commit, when the test runner simplified the URL (e.g. if the runner is given the ID of every test in a suite, it will remove them and only include the suite ID), it always considered IDs as being "included", and ignored the "-" specifying that some IDs should be "excluded". --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#225950
Website editor snippet previews now show the Parallax label only when the snippet actually uses a parallax background. This avoids misleading labels in theme snippets and helps users correctly identify saved custom snippets with parallax effects.
Original PR description
Steps to reproduce the issues: **Issue 1** - Enter "Website" edit mode. - Drag and drop a "Cover" snippet into the page. - Save the snippet as a custom snippet. - Click the "Custom" category. - Bug:…
Steps to reproduce the issues: **Issue 1** - Enter "Website" edit mode. - Drag and drop a "Cover" snippet into the page. - Save the snippet as a custom snippet. - Click the "Custom" category. - Bug: the "Parallax" label is not displayed on the snippet preview. **Issue 2** - Install the "Artists" theme. - Enter "Website" edit mode. - Click the "Intro" category. - Bug: The "Parallax" label is displayed on the "Cover" snippet preview even though it doesn't have a parallax effect. Commit [1] added a label on snippet previews to indicate if they are Carousel, Popup, Gallery, Tab, or Parallax. This label is linked directly to the snippet's original template. However, this does not work well for "Parallax" because it's an option that can be enabled or disabled. So it doesn't make sense to keep the label when the option is not active. This commit fixes that by checking the snippet structure to see if it contains a parallax on its background. [1]: https://github.com/odoo/odoo/commit/63cd0c6497c3c2e8482dc62b4359eb2431a75926 task-4926420 Forward-Port-Of: odoo/odoo#218863
The online shop product page now correctly shows or hides the Terms and Conditions block based on the Website Editor option. This prevents unwanted legal text from appearing when store managers have disabled it, giving them more reliable control over page content.
Original PR description
Steps: - Open Odoo. - Go to Website > Shop. - Open any product page. - Try toggling the `Terms and Conditions` option in the Website Editor. Issue: - The Terms & Conditions block was always rendered, even when the option was disabled in the editor. Solution: - Converted `website_sale.product_terms_and_conditions` into an inheriting view that injects content at those anchors. Result: - The `Terms and Conditions` block only appears when the option is enabled in the Website Editor, and disappears when disabled. OPW: 5021380,4965779 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Indian localization PAN entity list no longer shows the same type information twice. This removes visual clutter and makes the list easier for users to read without changing business data or workflows.
Original PR description
Before: - The list view in `l10n_in_pan_entity_view_tree` included `type` field twice, causing redundancy. After: - The duplicate field has been removed Forward-Port-Of: odoo/odoo#226567
Fixes an issue where reloading a grouped Kanban view after folding a group could cause an error. The view now refreshes its saved layout state from the latest server response, making the experience more reliable for users returning to saved pages.
Original PR description
- Open a grouped kanban; - Fold a group; - Reload the page; Before this commit, an error occurred because the configuration says that the group is unfolded, but the returning RPC didn't have any records. This commit clears the current configuration, which will then be reloaded based on the returning RPC. Forward-Port-Of: odoo/odoo#226312
This fix moves cart sellability logic into the eCommerce module where the required product publishing information exists. It helps avoid errors or incorrect behavior when checking whether items can be sold online, while keeping related sales, delivery, and loyalty integrations aligned.
Original PR description
*: sale, delivery, sale_loyalty, website_sale_loyalty In [^1], the eCommerce cart page was refactored to enhance its responsiveness and design. During development, a method closely tied to the `website_sale` module was mistakenly placed in the `sale` module. This method relies on the `is_published` field, which is only available in `website_sale`. This commit corrects the placement by moving the method to its appropriate module, `website_sale`. [^1]: https://github.com/odoo/odoo/pull/190720 Forward-Port-Of: odoo/odoo#226343
Website price list and product catalog snippets now keep their separator lines looking correct when users change border settings in the web editor. This prevents visual glitches on published pages and makes it easier to customize pricing sections reliably.
Original PR description
Prior to this commit, the separators in the `s_product_catalog` and `s_pricelist_*` snippets didn't render correctly when changing the border values in the web editor. Steps to reproduce: - Open the…
Prior to this commit, the separators in the `s_product_catalog` and `s_pricelist_*` snippets didn't render correctly when changing the border values in the web editor. Steps to reproduce: - Open the Web Editor. - Drag and drop a price list snippet (`s_product_catalog`, `s_pricelist_cafe`, or `s_pricelist_boxed`). - Click on the snippet. - Set the border value to `0`. task-5081626 | Before | After | |--------|--------| | <img width="1914" height="646" alt="Capture d’écran 2025-09-11 à 09 30 11" src="https://github.com/user-attachments/assets/f7dc319f-e151-4fc4-9349-df70719aec9f" /> | <img width="1912" height="643" alt="Capture d’écran 2025-09-11 à 09 31 02" src="https://github.com/user-attachments/assets/dbbaacff-9f20-4ec4-9fec-f4cc3770952a" /> | | <img width="1915" height="646" alt="Capture d’écran 2025-09-11 à 09 30 52" src="https://github.com/user-attachments/assets/f138bd04-60cd-4238-9338-2fa5921d7715" /> | <img width="1911" height="647" alt="Capture d’écran 2025-09-11 à 09 31 37" src="https://github.com/user-attachments/assets/c38e486a-2b23-4685-83f1-de363c15c881" /> | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#226439
Fixes an issue where returning from an external link in a dashboard could reopen the first dashboard instead of the one the user was viewing. This preserves the user’s place and avoids confusion when navigating back to dashboards.
Original PR description
Steps to reproduce: - go to dashboards - select a dashboard with external links on scorecard charts for instance (do not select the first dashboard) - click on the chart w/ the external link to be redirected - Go back to the previous page through the browser The selected dashboard is now the first dashboard instead of the one you came from. the behaviour was broken since the introduction of the path-based routing in #157867 as we did not specify a path for the dashboard action but still worked because the action params were sent in the context but this was corrected in #216067 task-5067826 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#225870
This update fixes an issue in the Mercado Pago payment form customization so it behaves correctly with Odoo's payment flow. It helps prevent checkout problems for customers using Mercado Pago, improving reliability with minimal visible change.
Original PR description
Forward-Port-Of: odoo/odoo#226584
The compact Discuss sidebar now centers avatars and click areas properly. This makes the messaging sidebar look cleaner and easier to use without changing any business workflows.
Original PR description
Items were not centered, so the avatar and click zone was off-centered. This commit centers the avatar to fix the issue. Before / After <img width="56" height="578" alt="Screenshot 2025-09-10 at 14 34 09" src="https://github.com/user-attachments/assets/400de8c1-6a87-49d3-823e-157048962bca" /> <img width="59" height="578" alt="Screenshot 2025-09-10 at 14 34 21" src="https://github.com/user-attachments/assets/c4dd72cb-04e9-40df-8e13-f0fe39643c3a" /> Forward-Port-Of: odoo/odoo#226522
Due to time constraints the translations were not added in the commit adding the modules (72ac059edfcc35ad44c5faa9daf971123377af24). This commit adds the translations / fills the `.po` files. The translations were created by LMAN based on the 18.0 po files. Veri*Factu task: task-3745982 Forward-Port-Of: odoo/odoo#226298 Forward-Port-Of: odoo/odoo#225173
Original PR description
Due to time constraints the translations were not added in the commit adding the modules (72ac059edfcc35ad44c5faa9daf971123377af24). This commit adds the translations / fills the `.po` files. The translations were created by LMAN based on the 18.0 po files. Veri*Factu task: task-3745982 Forward-Port-Of: odoo/odoo#226298 Forward-Port-Of: odoo/odoo#225173
Stripe payment card fields now use the language selected on the website instead of the shopper's browser language. This creates a more consistent checkout experience for multilingual websites and avoids confusing language mismatches during payment.
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Enable Stripe; 2. enable a second language on the website; 3. use second language on website; 3. go to checkout; 4. open card payment method. Issue ----- The card field values are displayed using the current browser's locale instead of the website's language. Cause ----- The `locale` parameter isn't included when connecting to the Stripe API. Solution -------- Include the lang from the `html` element via `_prepareStripeOptions`. If not present, let it fall back on the browser's locale. opw-5024805 Forward-Port-Of: odoo/odoo#226045
The delivery screen now shows the correct direction label for goods leaving the dock. This helps users understand that delivery operations start from the dock location, reducing confusion during warehouse processing.
Original PR description
Deliveries send goods from the dock location. Therefore, If the operation type is a delivery it will show "From" instead of "To". --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Archived quality points are now excluded from the product Quality Points smart button. This keeps the displayed count and list accurate, reducing confusion for users reviewing quality controls.
Original PR description
**Steps to reproduce:** 1. Install the module `quality_control`. 2. Go to **Products → select any product → Quality Points (smart button)**. * Create a new Quality Point that applies to *all…
**Steps to reproduce:** 1. Install the module `quality_control`. 2. Go to **Products → select any product → Quality Points (smart button)**. * Create a new Quality Point that applies to *all products*. 3. Open any product form. * Verify that the *Quality Points* smart button shows the created point and the correct count. 4. Archive the Quality Point. 5. Reopen the same product form and check the *Quality Points* smart button again. **Observed behavior:** - The archived Quality Point is still counted and shown in the smart button. **Root cause:** - During the refactor from raw SQL (`get_sql` + `cr.execute`) to the ORM query builder (`query.add_where(SQL(...))`), one outer bracket was dropped. [ref](https://github.com/odoo/enterprise/pull/66290/commits/a6362bc07eac7640f68d145a0f6a14a81f499913#diff-2ffdc2ffc25417076b580b772447514c7e9d8b3e2d2fff2d3100721eb5ccbaf4L542-R561) - This changed the operator precedence, causing the `active = true` condition to no longer properly apply when combined with the OR block. - As a result, archived Quality Points bypass the filter and are still counted. **Solution:** - Fix the missing bracket in the `query.add_where` SQL expression so that the `active` condition is always enforced before evaluating the OR block. opw-5046289 Forward-Port-Of: odoo/enterprise#94173
This fixes an issue in the Belgian CodaBox integration where processing multiple companies could trigger an error. The correction helps ensure company-specific CodaBox actions run reliably without disrupting users.
Original PR description
We incorrectly used the recordset `self` instead of the record `company` This commit fixes this opw-5036698 Forward-Port-Of: odoo/enterprise#94289
Downloading documents from the Send & Print wizard no longer fails when a Uruguayan electronic invoice file is present. The system now skips that specific electronic tax document in the wizard download, while users can still access it from the CFE document screen.
Original PR description
When downloading attachment via the send & print wizard, we get an error from the server. This is because we raise an assertion error if any attachment is not from 'account.move' model. But the CFE file is from 'l10n_uy_edi.document' model. With this commit, we extend the `_action_download` method to filter the CFE file from the attachments. It is not blocking for client as he can still download it from the form view of the CFE document. Steps: - Create an invoice - Set a 0% tax on the invoice line - In 'Other infos' tab, fill the 'Incoterm', 'Sales Modality' and 'Transportation Rules' fields - Confirm - Open S&P wizard, select 'Create CFE' and confirm - Reopen S&P wizard, select 'Download' and confirm (can be done along the previous step too) -> Error opw-5043902 Forward-Port-Of: odoo/enterprise#93830
Scanning package type barcodes with GS1 barcode settings now works without triggering server errors. This prevents interruptions in warehouse barcode workflows and keeps package handling smoother for users.
Original PR description
Steps to Reproduce: - Set the barcode nomenclature to GS1 - Scan a package type barcode - Server logs an AttributeError(in Odoo 18) or KeyError(in Odoo 16 and 17) Issue: - The model class "stock.package.type" is missing an attribute "_barcode_field" Solution: - Add the attribute "_barcode_field" to the model class "stock.package.type" Task: [4888064](https://www.odoo.com/odoo/49/tasks/4888064) Forward-Port-Of: odoo/enterprise#94347 Forward-Port-Of: odoo/enterprise#93116
The Count Entire Locations button now appears correctly during normal stock operations such as deliveries and receipts. It remains restricted only on the physical inventory page, helping warehouse users access the right action in the right workflow.
Original PR description
This commit fixes showing "Count Entire Locations" button in normal operations (delivery, receipt, etc.) and only restricts it in physical inventory page. Forward-Port-Of: odoo/enterprise#94194
Voice recording now shows a clearer notification when it cannot start because of a backend setup issue, such as a missing API key. This helps users understand what went wrong and reduces confusion when transcription is unavailable.
Original PR description
This PR adds a more explicit toast message for the recording when an error occurs on the backend (i.e. UserError). This applies to cases such as not having the API key set and trying to start the recording
Several spreadsheet dashboards have been corrected so charts line up properly and are easier to read. The Helpdesk and Operation Analysis dashboards also receive visual improvements, helping teams interpret key metrics with less confusion.
Original PR description
Forward-Port-Of: odoo/enterprise#94387
The Belgian salary configurator now prevents employees from combining a reimbursed private bike option with fuel card benefits. When private bike reimbursement is active, fuel card values are cleared and the related fields are disabled to keep salary choices consistent with policy.
Original PR description
The Belgian salary configurator allows employees to declare a private bike cost. When the "Private Bike" option is checked and its reimbursement value is greater than zero, the fuel card inputs must be reset to 0 and disabled. task-5062963 Forward-Port-Of: odoo/enterprise#94063 Forward-Port-Of: odoo/enterprise#93884
This fix prevents products using nightly rental pricing from being combined with other rental period types. It helps avoid incorrect rental configurations and pricing issues after recent changes.
Original PR description
with other rental periods. Fixes from regression testing post merge. Forward-Port-Of: odoo/enterprise#93715
This update corrects an issue in the SEPA Direct Debit payment form behavior. It helps ensure the payment flow works as intended for customers using SEPA direct debit, reducing the risk of failed or confusing checkout experiences.
Original PR description
Forward-Port-Of: odoo/enterprise#94462
This update corrects the product name from “Urban Piper” to “UrbanPiper” across point-of-sale restaurant-related screens, settings, translations, and tests. It helps keep branding consistent and avoids confusion for users configuring or using the integration.
Original PR description
Description of the issue/feature this PR addresses: Correct the spelling Current behavior before PR: Urban Piper was in 2 words. No space needed Desired behavior after PR is merged: UrbanPiper in one word
The accounting import screen now correctly passes the intended target to each import button. This prevents confusion or failed imports when the same page offers multiple import options.
Original PR description
Since [1], the import action will infer the model from the current action. In this case, the action is a client action with multiple import buttons. This commit, adapts the extends of the import action to accept the model as as a parameter. Forward-Port-Of: odoo/enterprise#94388
This fixes an error in the Salary Calculator that occurred when removing an employee's working schedule. Payroll users can now adjust salary simulation details without being interrupted by a system crash.
Original PR description
#### Steps to Reproduce In Payroll → Employees → Salary Calculator: 1. Select an employee with a working schedule. 2. The working schedule is auto-filled in the modal. 3. Remove the working schedule. #### Issue A traceback occurs (`Expected singleton: resource.calendar()`) because `salary_simulation` was not correctly set in the context, causing the flow to recompute work entries with an empty calendar. #### Fix In order to avoid work entry recomputations during simulation, always attach `salary_simulation=True` in the base `_get_version()` and propagate the context when creating a new version for the simulation employee. task-5063150
This fix ensures temporary concurrency conflicts during website generation are handled in a way that allows the process to retry instead of failing prematurely. It improves reliability when multiple operations happen at the same time.
Original PR description
When a concurrency error occurs, we need to let it retry. To do this, we must catch the Serialization Failure and raise it. Forward-Port-Of: odoo/enterprise#93851
The wording in the bank synchronization duplicate finder was corrected to remove an instruction users could not actually follow. This avoids confusion by no longer suggesting that customers select a journal when that option is unavailable.
Original PR description
The aim of this commit is removing a small part of sentence in the find duplicate tool in bank synchronization. Indeed, this sentence is proposing the customer to select the journal where it's not possible to do it. no task id Forward-Port-Of: odoo/enterprise#94386