Tuesday, October 7, 2025
18 changes · 18.0
Resolved issues and error corrections
The bank transaction fetch screen now shows its help message correctly when no transactions are found. This avoids confusing raw formatting text appearing to users and makes the banking workflow feel more polished and consistent.
Original PR description
Before this commit : - The help message shown when no transactions were fetched by the 'Fetch Transactions' button in the 'Bank' journal contained raw html tags, as markup was not getting applied. - Also, removing a filter (without reloading) and applying another filter that resulted in no matches, the same issue occurred. After this commit: - The help message is now consistently rendered with markup applied. task-4942234 Forward-Port-Of: odoo/enterprise#95514
New user signatures now place the user's name in a layout element that avoids extra spacing when lines are added. This prevents duplicated paragraph spacing in default signatures, while existing signatures remain unchanged unless users update them manually.
Original PR description
Prior to this commit, the default signature for users was their name wrapped in a `p`. This is not what we want, because a `HTMLParagraphElement` natively has a margin-bottom, and when a user creates a newline from a paragraph, it duplicates itself. After this commit: the user name is wrapped in a `div` instead. This does not update existing users signatures. To switch to a `div`, they will have to select the desired lines, and change their type from "Paragraph" to "Normal". task-5149570
Mega menus now adapt properly when used with vertical website navigation layouts such as sidebar or hamburger menus. This prevents overlapping content and provides a cleaner browsing experience for visitors using those header styles.
Original PR description
Steps to Reproduce : 1. Add a Mega Menu through Menu Editor 2. Switch the header template to Sidebar 3. Once done --> Open the mega menu; it will overlap with one another. Issue: Vertically aligned navbars like the sidebar and hamburger navbar, have styling issues with the mega menu. The mega menu is designed according to the full width of the screen, which leads to not look good mega menu when opened in a limited-spaced navbar. Fix: This commit adds the style particularly to vertical navbars, such that the styling of the mega menu is proper even in these navbars. Task: 4684074 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The appraisal skills list now scrolls horizontally on mobile, so users can access the justification field and add or remove buttons. This prevents important appraisal skill details and actions from being hidden on smaller screens.
Original PR description
Horizontal scrolling has been disabled on the appraisal skills list. An unwanted side effect of that is that the justification field along with the add and remove buttons are not visible on mobile. This PR re-enables the scrolling and removes some dead css. task-5001344 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#222161
The appraisal skills list now allows horizontal scrolling on mobile devices again. This ensures users can see and use the justification field as well as add and remove controls when completing appraisals on smaller screens.
Original PR description
Horizontal scrolling has been disabled on the appraisal skills list. An unwanted side effect of that is that the justification field along with the add and remove buttons are not visible on mobile. This PR re-enables the scrolling and removes some dead css. task-5001344 Forward-Port-Of: odoo/enterprise#91882
This fix adjusts how mail editor save actions are handled in automated checks, making them wait until saving is actually possible. It helps reduce false runbot failures and improves confidence in mail-related quality checks without changing end-user functionality.
Original PR description
This commit tries to solve runbot issues with mail html fields widget. It seems clicking on the save button manually is not generating a call to the backend. This could be due to the fact the button is not enabled due to the data being invalid. Therefore using the clickSave util could be useful in those situation since waiting that the button becomes enabled. This solution is not 100% sure to fix the issue in all cases but manually disabling the button is creating the issue we can observe in those runbots. There is a good chance it might work. fixes-runbot-231582 fixes-runbot-233049 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update adds a safeguard to avoid a rare division-by-zero error during electronic invoice calculations when values round down to zero. It helps keep invoice generation more reliable and protects against possible future edge cases.
Original PR description
[FIX] account_edi_ubl_cii: float comparison safeguard. This fix solves a potential issue where the `delivered_qty * price_unit` is too close to zero making it pass the float comparison check, later we divide against the same product, but this time wrapped in `curency.round` which may round it to zero, resulting in a division by zero error. Whilst I found no functional way to reproduce the issue as the value of price_unit should already be zero when we get here but, the fix is to simply safeguard from potential future changes. Ticket [link](https://www.odoo.com/odoo/project.task/5013588) opw-5013588
Fixed an issue that prevented users from viewing the Options tab on survey questions opened from the Questions and Answers menu. This restores access to question option details and avoids an error that interrupted survey setup or review.
Original PR description
Currently, you cannot view a survey question's option through the 'Questions and Answers' menu.
### Steps to reproduce
* install and open 'survey'
* access all survey questions from the menu 'Questions and Answers' > 'Questions'
* open any question and try to view the 'Options' tab
You will be met with the following traceback:
```
EvalError: Can not evaluate python expression: ({'referenceValue': parent.session\_speed\_rating})
Error: Name 'parent' is not defined
```
### Cause
'parent' here refers to a survey container record and works only inside sub-views of relational fields.
opw-5026204
---
Backport of 89b502614e4b185cf722c733f42f9a646aaed564Saving a product in Point of Sale without making changes no longer alters how its name appears. This prevents internal reference codes from being added to product names in the PoS interface and customer receipts.
Original PR description
Before this commit, editing a product in the PoS (even without making changes) would update the product name in the UI. The internal reference was automatically prefixed to the product name, and this formatting persisted through to the receipt. With this commit, saving a product without modifications will no longer alter the product name displayed in the PoS. Steps to reproduce: 1. Open any PoS 2. Choose any product 3. Click the (i) icon to view the product information 4. Click Edit (no need to change anything) 5. Click Save opw-5073848 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Website settings now check domain values before saving, so malformed entries no longer trigger a system error. Users receive a clear validation message instead, reducing confusion and preventing failed configuration changes.
Original PR description
Currently, an error occurs when user tries to save an invalid domain. Steps to replicate: - Install `website_sale`. - Go to `Settings > Website`. - In the domain field, give value as `[`. (any normal URL with a square bracket will also work). - Save and error will occur. Error: `ValueError: Invalid IPv6 URL` Cause: - The error happens because `config.get_base_url()` returns a malformed URL (like containing stray `[`), which makes urljoin [1] raise the error. Solution: - The solution prevents error by adding a constraint and raising a user-friendly `ValidationError` if the URL is invalid. [1]: https://github.com/odoo/odoo/blob/77398aefc291d33264b039e38681f0cd8f65483f/addons/website_sale/models/res_config_settings.py#L135 sentry-6805151048 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an intermittent failure in a CRM automated tour by selecting the intended customer record and waiting for the opportunity name to be filled before continuing. The change improves test reliability and helps future CRM issues surface at the correct step instead of causing misleading errors later.
Original PR description
The problem here is twofolds: - After odoo/odoo#206314 the field being searched is filtered on `is_company` which means it's literally impossible to find the partner we create as that field defaults…
The problem here is twofolds: - After odoo/odoo#206314 the field being searched is filtered on `is_company` which means it's literally impossible to find the partner we create as that field defaults to `False`. - Before that PR, since we just `click` the first link we find in the dropdown, we might get a random company which exists in the database (if any) or we might hit the "create" option. In the latter case we have a non-zero chance of clicking `o_kanban_add` before the client has had the time to `name_create` the record, set the partner, call the onchange, and return with the opportunity's name, leading to an attempt to create a nameless opportunity and a "missing required field" error Selecting the very specific partner we created (correctly this time) and then actually waiting for the opportunity's name to be set should resolve the issue, and make problems in that step show up in the right location in the future rather than hit some sub-sub-sub-symptom 20 steps later. https://runbot.odoo.com/odoo/error/229719
Users with limited access rights now see the correct page title when previewing copied links. This prevents generic “Odoo” previews caused by permission errors, making shared link previews clearer and more reliable.
Original PR description
Users without access for specific actions cannot see the right preview information, using sudo like the search for generic action but on specific model solve the issue. Steps: - Login with a user without window actions access - Copy a link somewhere to have preview dialog Actual result: - Preview title is Odoo due to access error Expected result: - Preview title is the one of the page opw-4933194
This fix ensures Point of Sale test data includes a company country when needed. It prevents false test failures in setups with country-specific localizations, helping keep quality checks stable without changing user-facing behavior.
Original PR description
Before this commit, some tests would fail when localizations requiring a country were installed, because the created company did not have a country set. runbot-233158 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Closing the barcode scanning dialog before the camera preview finishes loading no longer causes an error. This prevents a disruptive crash for users who back out of scanning or press Esc quickly.
Original PR description
Steps to reproduce: 1. Install `barcode` 2. Barcode > 'click to scan' 3. Before the camera preview loads, click the back button of the dialog Issue: A traceback occurs: `OwlError: The following error occurred in onMounted: 'Cannot set properties of null (setting 'srcObject')' ` Cause: Clicking the back button triggers `onWillUnmount`, which clears the stream and sets `this.videoPreviewRef.el` to null. However, some asynchronous functions in `onMounted` are still pending and try to access the video element, leading to a crash. Solution: Add a safe check based on component status before accessing `this.videoPreviewRef.el` opw-5055566 Forward-Port-Of: odoo/odoo#226068
This fixes an inventory issue where a transfer could show the same source document reference multiple times when several items came from the same receipt. The source document field now lists each reference only once, making transfer records clearer and reducing confusion for warehouse users.
Original PR description
### Behavior: #### Current: During the assignment of a picking, if several of its moves have the same origin, it will repeat that origin in its own origin. #### Expected: Only have one time each origin. ### Steps to reproduce: From Inventory * Enable two step transfer for the warehouse From Barcode * create and validate new receipts with "Product A" * create and validate a second new receipts with "Product A" and other products From Inventory/Operations/Transfers/Receipts * Open the corresponding receipts * In "source Document" (Field: origin, Model : stock.picking) we can see that the reference from second receipts is repeated. ### Observation: In the case of already existing origins it will not duplicate them but it's missing if several item comes from the same origin. https://github.com/odoo/odoo/commit/0caa44ca97d9d197811a03ad2ff227df68d4437a#diff-55c6314416a6a400da6acd5018d161a55eeeb0e3008fec8828121e3dd12be0ebR1410 opw-4970159
The fix keeps valid accented characters, including ü, in Mexican legal names used for electronic invoicing. This helps prevent unnecessary name changes that could cause validation issues with Mexico's tax authority (SAT).
Original PR description
Previous commit (#95207) removed accents for names including character ü which indeed is a recognized character for SAT opw-5125107
Miscellaneous changes
Description of the issue/feature this PR addresses: In the POS, when selecting events with limited number of seats, It displays "10 gauche" in french which is a mistake. it should display "places restantes" instead of "gauche" since we are talking about a direction (left, right).. Current behavior before PR: The translation is incorrect in pos_event. Desired behavior after PR is merged: Fix the the translation by displaying "places restantes" instead of "gauche" --- I confi
Original PR description
Description of the issue/feature this PR addresses: In the POS, when selecting events with limited number of seats, It displays "10 gauche" in french which is a mistake. it should display "places restantes" instead of "gauche" since we are talking about a direction (left, right).. Current behavior before PR: The translation is incorrect in pos_event. Desired behavior after PR is merged: Fix the the translation by displaying "places restantes" instead of "gauche" --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
We need to first check if active_ids exist and get usererror if there are no active_ids present. [Link to Runbot Error builds](https://runbot.odoo.com/web#id=74407&menu_id=424&cids=1&action=573&model=runbot.build.error&view_type=form) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#190324
Original PR description
We need to first check if active_ids exist and get usererror if there are no active_ids present. [Link to Runbot Error builds](https://runbot.odoo.com/web#id=74407&menu_id=424&cids=1&action=573&model=runbot.build.error&view_type=form) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#190324