Daily updates from Odoo
Friday, November 14, 2025
77 changes
10 changes
Resolved issues and error corrections
This fix ensures submenu items in the hamburger menu automatically use the same font size as the header. As a result, when the header style is changed, the menu labels stay visually consistent and update correctly.
Original PR description
Steps to reproduce: =================== - Create a menu and a submenu - Change the header template to the hamburger menu - Update the navbar format ->The format of the submenu's parent is not updated. Cause: ====== The menu in the hamburger layout uses the `.accordion-button` class, which applies a fixed base font size defined here: https://github.com/odoo/odoo/blob/ebb250d3b56970c09ffb5ebefef38f97c622c33d/addons/web/static/lib/bootstrap/scss/_accordion.scss#L37 This prevents the submenu text from inheriting the updated header font-size. Solution: ========= Allow the `.accordion-button` font size to inherit from its parent. This ensures that submenu text correctly follows the header's font-size setting. opw-5223664 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#234276
The self-order IoT component now correctly reads newer image version numbers that use a full date format. This prevents version checks from failing and helps keep the device software update flow working smoothly.
Original PR description
New image versions are formatted as YYYY.MM.DD instead of YY.MM. The previous can be casted to float, but not the new one. We then only take the year and month to before casting. Forward-Port-Of: odoo/enterprise#99416
This change makes the web editor test suite more reliable by giving each test its own time allowance instead of sharing one timer across all of them. It matters because slower test environments were causing occasional false failures, even though the product itself was working correctly.
Original PR description
Split the test timer between the four tests rather than applying
a single timer over all of them, for when the runbot is slower.
runbot-233975
Forward-Port-Of: odoo/odoo#235313This fix prevents a page error when an empty row is edited in the website builder. It adds a safety check so the system no longer tries to inspect columns that do not exist, improving stability for users working with empty layout blocks.
Original PR description
When a .row div was empty, the _areColsCustomized function was called with an empty HTMLCollection. This caused a traceback when the function tried to access columnEls[0]. This commit adds a safety check to _getNbColumns for avoiding extra calls to _areColsCustomized when columnEls is empty. And we also add a similar check to _areColsCustomized for safety, since it's also being called through the _computeWidgetVisibility. opw-5121738 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#235555
The receipt will now display the cashier/server name even when a preset like Eat In is used. This ensures customers and staff can always see who handled the order, making receipts more consistent and easier to review.
Original PR description
Currently cashier name is only shown if no preset is shown or if the present identification is set on name. Steps tot reproduce: -------------------- * Open restaurant * Make sure you use the Eat in preset * Place an order and pay it > Observation: On the receipt the "Served by:" indication is not shown. Why the fix: ------------ The cashier/server information should not depend on the preset used. opw-5154347 Forward-Port-Of: odoo/odoo#234767 Forward-Port-Of: odoo/odoo#231930
This update makes guided tours skip warning steps properly when moving backward. It prevents the interface from briefly jumping to a step that should not be shown, making tour navigation more reliable and less confusing for users.
Original PR description
Before this commit, the backward wasn't ignoring the warn steps. So, if the backward go to the previous step (warn's one) and the trigger is on the page, the tour interactive put the cursor there. But the step is then ignored and go back the step you came from. Now, the warn's steps are ignored. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#235511
This change fixes an intermittent test failure in the web interface by waiting for the error dialog to actually appear before checking it. It makes automated testing more stable and reduces false failures without changing the user experience.
Original PR description
Before this commit, the test sometimes failed because we didn't wait enough before checking the presence of the error dialog. The `unhandledrejection` event being thrown asynchronously, simply waiting for an animation frame isn't enough. We can only wait for the dialog to be displayed. runbot error~234017 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#235464
The OEE value shown on a workcenter card now matches the detailed OEE report. This fixes a rounding-related mismatch that could show slightly different results in different places, giving users a more consistent and accurate view of production efficiency.
Original PR description
**Current behavior:** The form view for a workcenter has an OEE smart button which can display a different value from the real OEE displayed by the `mrp_workcenter_productivity_report_oee` displayed…
**Current behavior:** The form view for a workcenter has an OEE smart button which can display a different value from the real OEE displayed by the `mrp_workcenter_productivity_report_oee` displayed when actually clicking the button and looking at the report. **Expected behavior:** Same values **Steps to reproduce:** 1. Make a workcenter and a BoM with an operation performed at the workcenter 2. Use the BoM in an MO such that there is some un-productive time (e.g., recorded production duration takes longer than expected duration) * example: 0:20 expected, 1:01 actual 3. Go to the workcenter list view -> click on the created workcenter -> look at OEE smart button display value -> click on it to see report -> report values are different **Cause of the issue:** the `oee` field on the workcenter is computed with rounded intermediary `blocked_time` and `productive_time` values, the actual report uses the raw values. **Fix:** Don't use the rounded intermediary values in computing `oee`. Post-this-diff, we actually do one less `_read_group` (along with computing a more accurate field value). opw-4795463 Forward-Port-Of: odoo/odoo#232730 Forward-Port-Of: odoo/odoo#218310
This fix removes duplicate country codes from partner tax-related settings. It prevents display issues on partner forms and keeps the data clean without changing the intended behavior.
Original PR description
Recently we started considering `country_code` as part of the `fiscal_country_codes` [1]. Because of this, the field can now contain duplicates. If your active company is a US one, and you set United States as the country on the partner you end up with `US,US`. It breaks some (admittedly fragile) invisible conditions on the `res.partner` form view [2]. Although we could fix those conditions, it would require everyone to update the module, and having duplicate country codes in `fiscal_country_codes` field doesn't serve any purpose anyway. [1] https://github.com/odoo/odoo/pull/229584 [2] https://github.com/odoo/enterprise/pull/62615 opw-5248844 opw-5241556 Forward-Port-Of: odoo/odoo#235652
When someone receives an event registration email for a ticket that was fully discounted, the message will now confirm the registration without displaying a zero-value price. This avoids confusion for attendees who might otherwise think they still need to pay the amount shown in the email.
Original PR description
Steps to reproduce: 1. Create a new sale order with an event ticket line 2. Apply a 100% discount on the ticket line 3. Confirm the sale order 4. Check on the new attendee created, the mail sent to the attendee. Current behavior: The email shows the unit price without the discount applied which can be confusing for the customer as it might look like they need to pay that amount. After this commit: The email will just show the confirmation of the registration to the event withouth mentioning the price when the total price is 0. opw-5122776 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#235482
11 changes
Resolved issues and error corrections
This update keeps long product attribute text inside the product card when browsing products in the sales catalog. It improves the appearance of the interface and prevents the layout from looking broken or misaligned.
Original PR description
**Steps to reproduce:** 1. Go to Products > Create a new product. 2. Add or create a new attribute and set a long text value. 3. Go to Sales > Open any quotation. 4. In the sale order line, click on…
**Steps to reproduce:** 1. Go to Products > Create a new product. 2. Add or create a new attribute and set a long text value. 3. Go to Sales > Open any quotation. 4. In the sale order line, click on "Catalog" and search for the created product. **Issue:** - The attribute value text overflows outside the product card in the kanban view, causing layout misalignment and making the UI look broken. <img width="647" height="225" alt="image" src="https://github.com/user-attachments/assets/80ce5eb5-ba00-4545-a981-57f08889ab0f" /> **Cause:** - The inner <div> containing the attribute text did not have overflow control, allowing long text to exceed the card boundary. **Solution:** - Added the Bootstrap class overflow-hidden to the <div> to ensure the content stays within the container and prevents layout breakage. <img width="587" height="171" alt="image" src="https://github.com/user-attachments/assets/ae76186b-4ec9-410c-9ac4-99bdbd4b4493" /> **opw-5222002** Forward-Port-Of: odoo/odoo#234478
The website now hides mega menu links when the linked content is not visible to the visitor, both on desktop and mobile. This prevents users from seeing and opening empty menu entries, making the navigation cleaner and less confusing.
Original PR description
Before this commit, when setting the mega menu content visibility, the navbar link would still appear even if the user does not have access to the mega menu content. This commit hides the navbar link for the mega menu in the mobile and desktop view when the user does not have access to the mega menu content, in order to prevent unnecessary elements in the navbar. Steps to reproduce the bug: - Add a mega menu element in the navbar - Open the mega menu - Set the mega menu content visibility to conditional (logged in) - Open the website while logged out (The mega menu link is here but the content is not displayed. However, the dropdown is still opened but it is empty.) task-3992066 Forward-Port-Of: odoo/odoo#235289 Forward-Port-Of: odoo/odoo#179454
This update fixes the Italian e-invoicing setup so share capital is not forced for company types where it is not legally required. It prevents unnecessary validation errors and makes company registration details easier to complete correctly.
Original PR description
Share capital should not be mandatory for non limited liability company. [Ticket link](https://www.odoo.com/odoo/project.task/5131029) opw-5131029 Forward-Port-Of: odoo/odoo#235498
This change fixes the hamburger-style website menu so submenu labels inherit the header’s selected font size. As a result, when the navbar format is updated, the menu stays visually consistent with the rest of the header.
Original PR description
Steps to reproduce: =================== - Create a menu and a submenu - Change the header template to the hamburger menu - Update the navbar format ->The format of the submenu's parent is not updated. Cause: ====== The menu in the hamburger layout uses the `.accordion-button` class, which applies a fixed base font size defined here: https://github.com/odoo/odoo/blob/ebb250d3b56970c09ffb5ebefef38f97c622c33d/addons/web/static/lib/bootstrap/scss/_accordion.scss#L37 This prevents the submenu text from inheriting the updated header font-size. Solution: ========= Allow the `.accordion-button` font size to inherit from its parent. This ensures that submenu text correctly follows the header's font-size setting. opw-5223664 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#234276
This update adjusts how test time is allocated so slower environments can complete the checks more reliably. It helps prevent occasional false failures in the editor test suite without changing normal user behavior.
Original PR description
Split the test timer between the four tests rather than applying
a single timer over all of them, for when the runbot is slower.
runbot-233975
Forward-Port-Of: odoo/odoo#235313This change fixes a problem where empty layout rows could trigger an error in the website editor. It adds safeguards so the editor handles empty rows cleanly instead of showing a traceback, improving reliability for users editing page content.
Original PR description
When a .row div was empty, the _areColsCustomized function was called with an empty HTMLCollection. This caused a traceback when the function tried to access columnEls[0]. This commit adds a safety check to _getNbColumns for avoiding extra calls to _areColsCustomized when columnEls is empty. And we also add a similar check to _areColsCustomized for safety, since it's also being called through the _computeWidgetVisibility. opw-5121738 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#235555
This update fixes a display issue in the product catalog view where long attribute values could spill outside the product card and disrupt the layout. The product image and text now stay neatly contained, improving the appearance and readability of quotations and product selections.
Original PR description
Steps to reproduce: 1. Go to Products > Create a new product. 2. Add or create a new attribute with a long text value. 3. Go to Sales > Open any quotation. 4. In the sale order line, click on…
Steps to reproduce: 1. Go to Products > Create a new product. 2. Add or create a new attribute with a long text value. 3. Go to Sales > Open any quotation. 4. In the sale order line, click on "Catalog" and search for the created product. Issue: - The product image and attribute value text overflow outside the product card in the kanban view, causing layout misalignment and breaking the UI design. <img width="647" height="225" alt="image" src="https://github.com/user-attachments/assets/afc592bb-e25a-4d81-882b-0e7cc7ad1064" /> Cause: - The inner div containing the attribute text lacked overflow control, allowing long text to exceed the container width and pushing other elements. Solution: - Added the Bootstrap class `overflow-hidden` to the div element to ensure the image and text remain properly contained within the card layout. <img width="587" height="171" alt="image" src="https://github.com/user-attachments/assets/580ce1e5-42bd-4c2d-b6bf-14315759626d" /> - In forward-port 18.3 Added m-1 instead of m-0 before : <img width="345" height="162" alt="image" src="https://github.com/user-attachments/assets/36d4aed2-b285-44be-884a-6bf94df854a3" /> After : <img width="379" height="212" alt="image" src="https://github.com/user-attachments/assets/3832a691-2f60-4cc1-8176-8aebd0f8973a" /> opw-5222002 Forward-Port-Of: odoo/odoo#235214
This change fixes an intermittent test failure in the web interface by waiting for the error dialog to actually appear before checking it. It makes the test more reliable and reduces false failures during automated runs.
Original PR description
Before this commit, the test sometimes failed because we didn't wait enough before checking the presence of the error dialog. The `unhandledrejection` event being thrown asynchronously, simply waiting for an animation frame isn't enough. We can only wait for the dialog to be displayed. runbot error~234017 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#235464
This update corrects how guided tours move backward when a warning step is present. Warning steps are now skipped properly, so users are no longer briefly taken to an ignored step before returning to the correct place in the tour.
Original PR description
Before this commit, the backward wasn't ignoring the warn steps. So, if the backward go to the previous step (warn's one) and the trigger is on the page, the tour interactive put the cursor there. But the step is then ignored and go back the step you came from. Now, the warn's steps are ignored. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#235511
This update prevents partner records from storing the same fiscal country code twice, which could happen for some U.S. companies. It avoids a display issue on partner forms and keeps the underlying data cleaner without changing how users work.
Original PR description
Recently we started considering `country_code` as part of the `fiscal_country_codes` [1]. Because of this, the field can now contain duplicates. If your active company is a US one, and you set United States as the country on the partner you end up with `US,US`. It breaks some (admittedly fragile) invisible conditions on the `res.partner` form view [2]. Although we could fix those conditions, it would require everyone to update the module, and having duplicate country codes in `fiscal_country_codes` field doesn't serve any purpose anyway. [1] https://github.com/odoo/odoo/pull/229584 [2] https://github.com/odoo/enterprise/pull/62615 opw-5248844 opw-5241556 Forward-Port-Of: odoo/odoo#235652
Event registration emails will no longer show a price when the attendee’s ticket is fully discounted and the total is zero. This avoids confusing customers with an amount that is not actually due.
Original PR description
Steps to reproduce: 1. Create a new sale order with an event ticket line 2. Apply a 100% discount on the ticket line 3. Confirm the sale order 4. Check on the new attendee created, the mail sent to the attendee. Current behavior: The email shows the unit price without the discount applied which can be confusing for the customer as it might look like they need to pay that amount. After this commit: The email will just show the confirmation of the registration to the event withouth mentioning the price when the total price is 0. opw-5122776 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#235482
2 changes
Resolved issues and error corrections
This update adjusts how self-order kiosk software reads image version numbers. It ensures newer date-based version formats are recognized correctly, preventing failures when checking for image updates.
Original PR description
New image versions are formatted as YYYY.MM.DD instead of YY.MM. The previous can be casted to float, but not the new one. We then only take the year and month to before casting. Forward-Port-Of: odoo/enterprise#99416
This update ensures drag-and-drop actions in automated tests are fully completed before the test ends. It helps prevent unreliable test behavior and makes the test suite more stable.
Original PR description
Since drag sequences are automatically canceled at the end of tests, 'cancel' or 'drop' calls should be properly awaited before the end of a test. This commit ensures that these actions are properly finished before a test ends. Community: https://github.com/odoo/odoo/pull/235359 Forward-Port-Of: odoo/enterprise#99369
10 changes
Resolved issues and error corrections
Users can now clear the duration type in a Marketing Automation activity without triggering an error. This prevents campaign setup from being interrupted and keeps activity summaries stable when duration details are incomplete.
Original PR description
Currently, an error occurs when removing the interval type or validity duration type in a marketing automation activity. This happens when the system tries to compute the "Activity Summary", which…
Currently, an error occurs when removing the interval type or validity duration type in a marketing automation activity. This happens when the system tries to compute the "Activity Summary", which expects valid selection values but receives False. **Steps to Reproduce:** 1. Install Marketing Automation. 2. Create a new campaign and click on "**Add new activity**". 3. In the "Trigger" field, remove the duration (e.g., "Hours"). **Error:** `KeyError - False` **Cause:** At [1], it tries to get the label from the selection dictionary using the value of `interval_type` or `validity_duration_type`. When either field is `False`, it causes a KeyError. **Fix:** This commit prevents the error by; - Setting an empty summary when required selection values are missing. - Returning 0 for interval standardized when interval type is not set. [1] - https://github.com/odoo/enterprise/blob/bb92db89d3fc1f654dfdff9b2e334b13d81cb7ab/marketing_automation/models/marketing_activity.py#L228-L229 sentry-6957343166 Forward-Port-Of: odoo/enterprise#98367
This fixes an issue that could prevent U.S. Direct Deposit settings from being saved or read correctly after an internal platform change. It helps ensure company payroll direct deposit configuration continues to work as expected.
Original PR description
set_param/get_param don't exist anymore.
Fleet-specific tax reporting checks were moved into the Enterprise fleet accounting module where the required vehicle data is available. This prevents Community build failures while preserving the intended fleet tax reporting behavior for Enterprise users.
Original PR description
Community build was failing with: ``` FAIL: TestAccountFleet.test_tax_report_with_vehicle_split_repartition Traceback (most recent call last): File '/data/build/odoo/addons/account_fleet/tests/test_account_fleet.py', line 99, in test_tax_report_with_vehicle_split_repartition self.assertEqual(len(tax_details), 2) AssertionError: 0 != 2 ``` The test and SQL join logic relied on `vehicle_id` propagation that only exists in the enterprise addon `account_accountant_fleet`. Since the community edition cannot populate `vehicle_id` on tax lines, the query always returned zero rows, causing the failure. To fix this, the fleet-specific tax report query and test have been moved to the enterprise module, where the vehicle-aware tax reporting functionality actually resides. This keeps community builds green while retaining the intended behavior in enterprise. runbot error:233462 Forward-Port-Of: odoo/enterprise#99380 Forward-Port-Of: odoo/enterprise#98650
The self-ordering kiosk no longer relies on an outdated IoT Box image version check that cannot handle the newer date-based version format. This prevents supported IoT Boxes from being incorrectly blocked and keeps kiosk setup working with current images.
Original PR description
New image versions are formatted as YYYY.MM.DD instead of YY.MM. The previous can be casted to float, but not the new one. We then only take the year and month to before casting. Forward-Port-Of: odoo/enterprise#99416
This fix makes the Sign document dropdown correctly detect when there are no documents to show. It prevents misleading or incorrect dropdown behavior for users working with signature requests.
Original PR description
An empty list is true in JS, so we check the length of the list Forward-Port-Of: odoo/enterprise#99405
This update fixes an access issue when the ISO 20022 accounting feature reads configuration settings. It helps ensure payment journal setup and related actions work reliably for users without requiring unnecessary administrator access.
Original PR description
Forward-Port-Of: odoo/enterprise#99359
This fix ensures the helpdesk livechat sidebar displays the correct channel name when a new member joins. It uses existing chat history when current participant details are incomplete, reducing confusion for support teams and visitors.
Original PR description
This change introduces the `im_livechat.channel.member.history` model on the client side to properly display the Livechat channel name. In the case of lacking data for current agents or visitors, we use the history records to display the channel name. task-4966319 Related to odoo/odoo#227240
This update corrects how Chilean electronic invoicing data is saved so the system uses the expected internal format. It helps prevent errors when updating accounting documents, improving reliability without changing day-to-day user workflows.
Original PR description
Write values should be normalized to use ORM commands, `list` and `int` instead of recordsets.
The accounting setup wizard now opens without immediately trying to save incomplete information. This prevents users from seeing an unnecessary required-field error when starting the setup process.
Original PR description
When creating the setup wizard, if created beforehand and shown to the user it will try to save when the wizard is opened. Since the opening date has no value and is a required field, it will fail and display the field red. To fix this, we are creating the wizard by passing a default company_id which mean the wizard hasn't been created yet and so it's not trying to save when opening the wizard. odoo/odoo#231956 odoo/enterprise#95760
This fixes a timing issue in batch barcode scanning that could cause some scan processing to finish out of order or be skipped in certain cases. The change improves reliability for warehouse workflows and prevents intermittent failures when scanning lots in batch pickings.
Original PR description
Commit bc9247d46225c696842bc7b0e3c883320231ab1b has introduced an override of the `processBarcode` method. However, it does not return nor await the super call. In particular, in the case where the super call should be done the overrides returns "undefine" rather than a promess to await and hence that call is not awaited anymore. Note: This error has been noticed from the fact that the test `test_barcode_batch_scan_lots` sometimes fails on step 29/31. runbot-233631 Forward-Port-Of: odoo/enterprise#99303
30 changes
Resolved issues and error corrections
The Discuss sidebar now shows the right status icon for call participants when they are muted or have deafen enabled. This fixes a confusing display issue so users can quickly understand each participant’s actual call state.
Original PR description
Before this commit, discuss sidebar call participants had wrong status shown, e.g. when participants are muted it shows non-slashed mic icon instead of slashed mic icon. Steps to reproduce: - Start a call without being muted or deafen - Have another person join the call and mute or deafen => icon shows unslashed mic or headphone This happens because the slash variants were coupled with active button state of call actions, so was based on current session rather than target session. This commit fixes the issue by using specific mute and deafen icon when session is either muted or deafen. Before <img width="1277" height="406" alt="Screenshot 2025-11-13 at 12 20 08" src="https://github.com/user-attachments/assets/c570d0a4-0ab6-48d8-bab6-b191531b2cb6" /> After <img width="1276" height="397" alt="Screenshot 2025-11-13 at 12 19 44" src="https://github.com/user-attachments/assets/2d69e942-7726-4c8c-8921-7635df47dc85" />
This fix prevents a front-end error that could happen when a pro forma is sent for an order that was deleted while the request was still being processed. The system now checks that the order still exists before using it, which avoids interruptions and makes the point of sale more reliable.
Original PR description
Before this commit, when trying to send a pro forma for an order that had been deleted while the pro forma call was in the queue, a JS error would occur because the callback of the call would try to access the order which was no longer existing in the frontend. This is now fixed by checking that the order is still present before accessing it in the callback. Forward-Port-Of: odoo/enterprise#99248
Message action icons in chat and message views are now larger and easier to read, while using less horizontal space overall. Hover feedback is also more visible, making the controls easier to notice and use in both light and dark modes.
Original PR description
1) increase size, reduce gap Make icons more readable by being bigger. The gap is reduced so overall this actually takes slightly less horizontal area. 2) More visible hover effect Hover effect was…
1) increase size, reduce gap Make icons more readable by being bigger. The gap is reduced so overall this actually takes slightly less horizontal area. 2) More visible hover effect Hover effect was inexistent due to typo in chat window style leaking to message actions, but still the hover effect was to shy, with 75% => 100% opacity. This is increased to 50% => 100% in addition to true black/white on 100%. Before / After (white) <img width="716" height="128" alt="white-before" src="https://github.com/user-attachments/assets/3829b7cb-8e36-4f28-8d20-78ef9aa31a97" /> <img width="723" height="128" alt="white-after" src="https://github.com/user-attachments/assets/79ec373a-c847-4c8a-96da-4582b54bb393" /> Before / After (dark) <img width="717" height="127" alt="dark-before" src="https://github.com/user-attachments/assets/cdaddee6-8025-46c3-a50b-9c85f9108887" /> <img width="716" height="123" alt="dark-after" src="https://github.com/user-attachments/assets/ddd712b0-407b-427b-b4c6-e3d615b91c27" />
The previous SOAP API was decommissioned. A new API was provided that doesn't need SOAP anymore and is a bit simpler [1]. [1] https://suameca.banrep.gov.co/estadisticas-economicas/webService opw-4860262 Forward-Port-Of: odoo/enterprise#99152
Original PR description
The previous SOAP API was decommissioned. A new API was provided that doesn't need SOAP anymore and is a bit simpler [1]. [1] https://suameca.banrep.gov.co/estadisticas-economicas/webService opw-4860262 Forward-Port-Of: odoo/enterprise#99152
**Issue** When creating a partial credit note (i.e., for a quantity less than originally invoiced) for a subscription invoice, the `qty_invoiced` on the corresponding subscription order line is incorrectly set to zero, instead of reflecting the remaining quantity. **Steps to Reproduce** 1. Create a subscription with a quantity of 50. 2. Confirm the subscription and generate an invoice. 3. Create a credit note (reversal) for the invoice. 4. Change the credited quantity to 30. 5. Post the
Original PR description
**Issue** When creating a partial credit note (i.e., for a quantity less than originally invoiced) for a subscription invoice, the `qty_invoiced` on the corresponding subscription order line is…
**Issue** When creating a partial credit note (i.e., for a quantity less than originally invoiced) for a subscription invoice, the `qty_invoiced` on the corresponding subscription order line is incorrectly set to zero, instead of reflecting the remaining quantity. **Steps to Reproduce** 1. Create a subscription with a quantity of 50. 2. Confirm the subscription and generate an invoice. 3. Create a credit note (reversal) for the invoice. 4. Change the credited quantity to 30. 5. Post the credit note. 6. The subscription order line shows qty_invoiced = 0 instead of the expected 20. **Root Cause** The method `_get_max_invoiced_date()` is used to determine the latest invoiced period for a subscription. In its original implementation, it removes refunded periods from the list of invoice dates regardless of whether the refund is partial or full. This causes the system to consider the period as not invoiced at all, which leads to incorrect recomputation of `qty_invoiced` **Fix** Adjust `_get_max_invoiced_date()` to track the net invoiced quantity per period. A period is only removed from the list of invoice dates if it has been fully refunded (i.e., net quantity is zero). This ensures that partially refunded periods are still considered invoiced, and the `qty_invoiced` is correctly updated to reflect the remaining quantity Opw-4908760 Forward-Port-Of: odoo/enterprise#98892 Forward-Port-Of: odoo/enterprise#91344
**Steps to reproduce:** 1. Install the *Fleet* and `accounting` modules. 2. Create a new purchase tax. 3. Configure the tax with a 50% repartition line for an `600000 expense` account and a 50% repartition line for a `101000 current asset` account for both income and refund. 4. Create a vendor bill with two product lines, each having a different vehicle assigned with the newly created tax in both lines. 5. Check the *Tax Report*(account>tax), including the date of this vendor bill. **Obs
Original PR description
**Steps to reproduce:** 1. Install the *Fleet* and `accounting` modules. 2. Create a new purchase tax. 3. Configure the tax with a 50% repartition line for an `600000 expense` account and a 50%…
**Steps to reproduce:** 1. Install the *Fleet* and `accounting` modules. 2. Create a new purchase tax. 3. Configure the tax with a 50% repartition line for an `600000 expense` account and a 50% repartition line for a `101000 current asset` account for both income and refund. 4. Create a vendor bill with two product lines, each having a different vehicle assigned with the newly created tax in both lines. 5. Check the *Tax Report*(account>tax), including the date of this vendor bill. **Observed behavior:** * Tax lines linked to the current asset account are merged. * Tax lines linked to the expense account remain separate (since `vehicle_id` is set on the `account.move.line`). * This mismatch triggers an error in the tax report. **Root cause:** The tax details query does not account for the `vehicle_id` field when matching tax lines with base lines. As a result, tax lines are incorrectly merged across different vehicles. **Solution:** Override `_get_extra_query_base_tax_line_mapping` to include the `vehicle_id` in the matching condition, ensuring tax lines are only paired with base lines having the same `vehicle_id`. This prevents incorrect merging and resolves the report error. opw-5013757 Forward-Port-Of: odoo/odoo#232001 Forward-Port-Of: odoo/odoo#228422
This change prevents the website editor from crashing when it encounters an empty row. It adds a safeguard so the editor skips checks that require columns when none are present, improving stability during page editing.
Original PR description
When a .row div was empty, the _areColsCustomized function was called with an empty HTMLCollection. This caused a traceback when the function tried to access columnEls[0]. This commit adds a safety check to _getNbColumns for avoiding extra calls to _areColsCustomized when columnEls is empty. And we also add a similar check to _areColsCustomized for safety, since it's also being called through the _computeWidgetVisibility. opw-5121738 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#235555
This update fixes the Italian e-invoicing setup so share capital is not forced for company types that do not need it. It helps businesses complete their company information more accurately and avoids unnecessary validation errors.
Original PR description
Share capital should not be mandatory for non limited liability company. [Ticket link](https://www.odoo.com/odoo/project.task/5131029) opw-5131029 Forward-Port-Of: odoo/odoo#235498
The hamburger-style website menu now inherits the font size set for the header, so submenu labels stay consistent after you change the navbar format. This fixes a display issue where submenu text could remain at the wrong size and not match the chosen header style.
Original PR description
Steps to reproduce: =================== - Create a menu and a submenu - Change the header template to the hamburger menu - Update the navbar format ->The format of the submenu's parent is not updated. Cause: ====== The menu in the hamburger layout uses the `.accordion-button` class, which applies a fixed base font size defined here: https://github.com/odoo/odoo/blob/ebb250d3b56970c09ffb5ebefef38f97c622c33d/addons/web/static/lib/bootstrap/scss/_accordion.scss#L37 This prevents the submenu text from inheriting the updated header font-size. Solution: ========= Allow the `.accordion-button` font size to inherit from its parent. This ensures that submenu text correctly follows the header's font-size setting. opw-5223664 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#234276
This update aligns an automated website performance test with differences between Community and Enterprise editions. It helps avoid false failures in development and continuous integration while still tracking the key performance measure the test was designed to monitor.
Original PR description
The test is primarily intended to determine the number of requests to ir.ui.view. The information on the website is supplementary but less important. It mainly serves to inform performance considerations during development. Issue on runbot for single app test https://runbot.odoo.com/odoo/runbot.build.error/231557 Forward-Port-Of: odoo/odoo#235358
This update makes the self-order IoT component compatible with newer image version formats. It prevents version checks from failing when image numbers use a longer date format, helping devices update reliably.
Original PR description
New image versions are formatted as YYYY.MM.DD instead of YY.MM. The previous can be casted to float, but not the new one. We then only take the year and month to before casting. Forward-Port-Of: odoo/enterprise#99416
This change corrects how payment configuration is read so the system can reliably access the needed settings. It helps prevent errors when users work with ISO 20022 bank transfer features.
Original PR description
Forward-Port-Of: odoo/enterprise#99359
List views that show sample data will now display it with the same subdued visual treatment even when no help text is available. This reduces the chance that users mistake sample entries for real records.
Original PR description
**Steps to reproduce:** * Create database without demo data. * Open any list view that displays sample data. Ensure the view contains no actual records. Refresh the page to trigger the sample data…
**Steps to reproduce:** * Create database without demo data. * Open any list view that displays sample data. Ensure the view contains no actual records. Refresh the page to trigger the sample data display. * For example: Open the journal items list view in the Accounting module. **Observed behavior:** When the view contains no actual records, the sample data is shown at full visibility, making it look like real data and causing confusion. **Cause:** When a list view displays sample data but has no help content defined, the sample data appears at full opacity, making it indistinguishable from real data and potentially confusing users. The blur effect (radial-gradient) is applied via the o_view_nocontent div, which is only rendered when help content exists. blur effect added in this commit: [https://github.com/odoo/odoo/commit/6ee090c29f1f4e1745c6cae2d50ea77d3324965b](https://github.com/odoo/odoo/commit/6ee090c29f1f4e1745c6cae2d50ea77d3324965b) **Fix:** Added `o_view_nocontent` `div` which, is also rendered when sample data is active, even without help content, so the blur effect is consistently applied. before: <img width="1918" height="657" alt="image" src="https://github.com/user-attachments/assets/1955e459-3ef8-4874-96ee-91f5312f2e47" /> after: <img width="1923" height="682" alt="image" src="https://github.com/user-attachments/assets/7acf539c-27a7-4e19-851c-714cd5258c7d" /> opw-5239503
Employee public pages now display the job title in both the card and form views again. This restores an important piece of information that had disappeared after a recent internal change, helping users quickly identify roles.
Original PR description
Before this commit, the job title is no longer displayed in employee public views since the merge of contract and version. This commit adds the job title in the employee public kanban and form views. task-5264472
This update ensures the date picker closes properly when a user leaves a record or goes back to the previous page. It prevents the calendar popup from staying visible on screen after the page or task is no longer open, improving the user experience in the web interface.
Original PR description
Steps to reproduce ================== - Go to project - Open a project - Open a task - Click on the deadline field - Go to the previous page using the browser back button => The datepicker stays open Cause of the issue ================== `datetimePicker.create` was called using three parameters. But since bb1f912f04fbc4b1efe57847bceffce5895ced9b, it only accepts two. Solution ======== `createPopover` should be added to the `hookParams` This allows the popover to be closed when the owner component is destroyed. https://github.com/odoo/odoo/blob/bb1f912f04fbc4b1efe57847bceffce5895ced9b/addons/web/static/src/core/popover/popover_hook.js#L65 opw-4811594 Forward-Port-Of: odoo/odoo#213263 Forward-Port-Of: odoo/odoo#212580
This change adjusts how test time is allocated so each editor test gets its own share instead of all tests sharing one timer. It helps prevent flaky failures on slower test environments, improving the reliability of the development and release process.
Original PR description
Split the test timer between the four tests rather than applying
a single timer over all of them, for when the runbot is slower.
runbot-233975
Forward-Port-Of: odoo/odoo#235313This update corrects backward navigation in interactive tours when a warning step appears on the page. It prevents the tour from briefly landing on a step that should be skipped, making the experience smoother and more reliable for users.
Original PR description
Before this commit, the backward wasn't ignoring the warn steps. So, if the backward go to the previous step (warn's one) and the trigger is on the page, the tour interactive put the cursor there. But the step is then ignored and go back the step you came from. Now, the warn's steps are ignored. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#235511
This change fixes an unreliable automated test in the web interface by waiting until the error dialog is actually shown before checking it. It reduces intermittent test failures and makes the test suite more dependable.
Original PR description
Before this commit, the test sometimes failed because we didn't wait enough before checking the presence of the error dialog. The `unhandledrejection` event being thrown asynchronously, simply waiting for an animation frame isn't enough. We can only wait for the dialog to be displayed. runbot error~234017 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#235464
The expense list view no longer shows an extra link to the same attachments. This makes the screen cleaner and avoids confusion when reviewing expenses.
Original PR description
remove an unnecessary link to the attachments of expenses in the list view. task-4684825 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change brings back the faded visual style for sample data in the web interface. It fixes a display issue that could make sample content appear incorrectly when certain helper elements are not present.
Original PR description
The opacity effect was removed from Sample Data in #233205 and caused issue when sample data are present without an ActionHelper. This commit reverts these changes.
This change corrects the layout of the snippet visibility option in the mailing editor. When no domain rule is configured, the button now appears next to the Domain label instead of dropping below it, making the interface cleaner and easier to use.
Original PR description
This commit fixes a display issue with the snippet visibility option. When no domain was applied to a section the option would display the button below the Domain label. This is not great to see so it's now besides the domain label if it is actually empty. task-5261955 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The OCR process will no longer automatically change a customer invoice into a sales receipt unless the Sales Receipt setting is enabled. This prevents unexpected document type changes and keeps invoice handling aligned with the company’s configuration.
Original PR description
If the "Sale Receipt" setting isn't enabled, the OCR should never automatically switch a customer invoice to a sale receipt. task-[5265382](https://www.odoo.com/odoo/project.task/5265382)
This fix ensures user presence updates are handled correctly whether they arrive through the web interface or via the websocket connection. It helps keep online status tracking reliable and prevents missed presence updates.
Original PR description
update_presence can both be called in http and with websocket as explained here: https://github.com/odoo/odoo/commit/de6de48deb983be910876c6133c2869907c142f7 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Message attachments that are images now display in their full size instead of being cropped into a square preview. This makes it easier for users to understand shared images at a glance without opening them in a separate viewer.
Original PR description
Before this commit, images attached to a message had their preview cropped and forced people to view with file viewer. This square and cropped visual looks good in contexts other than message, e.g. chatter attachment list. In message, however, most of the time people want to share images and be able to see whole content just from preview. This commit fixes the issue by making image preview of message see whole content. Task-5259604 Before <img width="1360" height="788" alt="Screenshot 2025-11-13 at 17 49 30" src="https://github.com/user-attachments/assets/d84c245e-2501-4e5b-9e32-10f0ae882b7e" /> After <img width="1366" height="831" alt="Screenshot 2025-11-13 at 17 49 39" src="https://github.com/user-attachments/assets/ce27f9eb-1f9a-4802-9590-fa69e8c40140" />
The call settings dropdown in the Mail app has been adjusted so its options, icons, and toggles are clearly visible in light mode. This also removes an unwanted border on click and corrects spacing, making the call settings easier and more reliable to use.
Original PR description
**Current behavior before PR:** When opening the dropdown to select input/output devices during calls in light mode, the following issues were observed: - select options had white text on white…
**Current behavior before PR:** When opening the dropdown to select input/output devices during calls in light mode, the following issues were observed: - select options had white text on white background, making them unreadable. - The select's down arrow icon was invisible. - The toggle thumb was barely visible when unchecked. - A border appeared unnecessarily when the dropdown was clicked (in both light and dark mode). - The blur background toggle spacing was incorrect. **Desired behavior after PR is merged:** - select options now have a dark gray background ($gray-700), ensuring proper contrast and readability in light mode. - The select's down arrow icon and toggle elements have consistent visibility. - The extra border on dropdown click is removed. - The toggle spacing is visually corrected. task-5163527 > **Note:** Spotted in Chrome Browser **Before:** <img width="945" height="438" alt="image" src="https://github.com/user-attachments/assets/fdfa24a4-c089-428c-b20d-0cdd4a7fb945" /> <img width="189" height="40" alt="image" src="https://github.com/user-attachments/assets/88a3372e-7ee6-4be5-b224-51c1c998a5e0" /> **After:** <img width="743" height="319" alt="image" src="https://github.com/user-attachments/assets/a06eb60c-88e2-4c75-852b-6e04a06a6336" /> <img width="212" height="51" alt="image" src="https://github.com/user-attachments/assets/602ea08f-edaa-472f-884f-81c36afe1429" /> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The point of sale receipt now displays the cashier or server name even when a preset like "Eat in" is used. This ensures customers always see who handled the order, improving clarity and accountability at checkout.
Original PR description
Currently cashier name is only shown if no preset is shown or if the present identification is set on name. Steps tot reproduce: -------------------- * Open restaurant * Make sure you use the Eat in preset * Place an order and pay it > Observation: On the receipt the "Served by:" indication is not shown. Why the fix: ------------ The cashier/server information should not depend on the preset used. opw-5154347 Forward-Port-Of: odoo/odoo#234767 Forward-Port-Of: odoo/odoo#231930
The website now only shows the language selector when there is actually more than one language available. This prevents an empty list item from appearing in the header, which could create an unnecessary border or blank space.
Original PR description
This PR calls the language selector placeholder only when multiple languages exist, avoiding an empty header list item that creates an unnecessary border or empty space. task-5150808 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#234345 Forward-Port-Of: odoo/odoo#231256
This change makes website image editing tests more reliable by ensuring image-related data and editor resources are loaded before the test continues. It removes timing-related failures, which helps the test suite run consistently and reduces false failures in development and CI.
Original PR description
The goal of this commit is to fix the indeterminate tests related to image editing in the website builder. Problem: ===== Some tests related to image editing on the website fail in an indeterminate…
The goal of this commit is to fix the indeterminate tests related to image editing in the website builder. Problem: ===== Some tests related to image editing on the website fail in an indeterminate manner. This test failure is related to the sidebar's async. When selecting an image, the Image options need to fetch certain data (the original image, etc.). The “html_editor.assets_image_cropper” bundle is also loaded. This loading time can exceed 200 ms, causing the test to fail unpredictably. Solution: ====== 1.Preload the “html_editor.assets_image_cropper” bundle and store it in the cache. 2. Use `waitSidebarUpdated` when selecting an image. `waitSidebarUpdated`` will wait until all the data is loaded and the sidebar is updated. This solution is not optimal, but it will make all the tests deterministic. The best solution: ========= We should mock or preload all the data needed for the tests. This change requires adapting the current production code to make it easily patchable to mock, for example, “.text()” on a response to an image fetch. Error: https://runbot.odoo.com/odoo/error/232956 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#234312
This change prevents the partner fiscal country list from showing the same country code twice in some cases. It avoids a form display issue and keeps the data cleaner without changing the intended business behavior.
Original PR description
Recently we started considering `country_code` as part of the `fiscal_country_codes` [1]. Because of this, the field can now contain duplicates. If your active company is a US one, and you set United States as the country on the partner you end up with `US,US`. It breaks some (admittedly fragile) invisible conditions on the `res.partner` form view [2]. Although we could fix those conditions, it would require everyone to update the module, and having duplicate country codes in `fiscal_country_codes` field doesn't serve any purpose anyway. [1] https://github.com/odoo/odoo/pull/229584 [2] https://github.com/odoo/enterprise/pull/62615 opw-5248844 opw-5241556 Forward-Port-Of: odoo/odoo#235652
When an attendee is created from a free or fully discounted ticket, the confirmation email will no longer display a misleading unit price. This makes the message clearer for customers and avoids confusion about whether payment is still due.
Original PR description
Steps to reproduce: 1. Create a new sale order with an event ticket line 2. Apply a 100% discount on the ticket line 3. Confirm the sale order 4. Check on the new attendee created, the mail sent to the attendee. Current behavior: The email shows the unit price without the discount applied which can be confusing for the customer as it might look like they need to pay that amount. After this commit: The email will just show the confirmation of the registration to the event withouth mentioning the price when the total price is 0. opw-5122776 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#235482
11 changes
Resolved issues and error corrections
This update fixes the product catalog kanban layout so long attribute labels no longer stretch the card and push images outside the visible area. It keeps the design tidy and consistent, improving the browsing experience for users viewing products.
Original PR description
With these changes, we ensure that the images will always stay within the kanban card, for example, when there’s an attribute that’s too long. Before these changes, when an attribute was too long, it was expanding the size of its container and, as a result, pushing the images out of the kanban card. <img width="1548" height="357" alt="image" src="https://github.com/user-attachments/assets/1661cf6a-6ff7-4ca9-9835-896806734b5e" /> After these changes, the content adjusts to the size of the kanban by applying the overflow: hidden property used by the badge elements. <img width="1587" height="507" alt="image" src="https://github.com/user-attachments/assets/9bccfe27-1fdb-4093-ad34-82140deab76d" /> cc @Tecnativa TT58797 ping @pedrobaeza @carlosdauden --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update prevents long product attribute text from spilling outside product cards in the catalog view. It keeps the layout aligned and makes the product selection screen easier to read and use.
Original PR description
Steps to reproduce: 1. Go to Products > Create a new product. 2. Add or create a new attribute with a long text value. 3. Go to Sales > Open any quotation. 4. In the sale order line, click on…
Steps to reproduce: 1. Go to Products > Create a new product. 2. Add or create a new attribute with a long text value. 3. Go to Sales > Open any quotation. 4. In the sale order line, click on "Catalog" and search for the created product. Issue: - The product image and attribute value text overflow outside the product card in the kanban view, causing layout misalignment and breaking the UI design. <img width="647" height="225" alt="image" src="https://github.com/user-attachments/assets/afc592bb-e25a-4d81-882b-0e7cc7ad1064" /> Cause: - The inner div containing the attribute text lacked overflow control, allowing long text to exceed the container width and pushing other elements. Solution: - Added the Bootstrap class `overflow-hidden` to the div element to ensure the image and text remain properly contained within the card layout. <img width="587" height="171" alt="image" src="https://github.com/user-attachments/assets/580ce1e5-42bd-4c2d-b6bf-14315759626d" /> opw-5222002
This update makes the description field on eWaybill stock records read-only. It helps prevent accidental changes and keeps the information consistent once it has been entered.
Original PR description
This **PR** makes the description on ewaybill stock readonly. ref - https://github.com/odoo/odoo/pull/228548/commits/285fffe6b0c90b9e37815cb4064b0108a5e8e6ac Forward-Port-Of: odoo/odoo#235456
This update prevents duplicate fiscal country codes from being stored on customer and partner records when the country matches the company’s country. It avoids a display issue in the partner form and keeps the data cleaner without changing expected business behavior.
Original PR description
Recently we started considering `country_code` as part of the `fiscal_country_codes` [1]. Because of this, the field can now contain duplicates. If your active company is a US one, and you set United States as the country on the partner you end up with `US,US`. It breaks some (admittedly fragile) invisible conditions on the `res.partner` form view [2]. Although we could fix those conditions, it would require everyone to update the module, and having duplicate country codes in `fiscal_country_codes` field doesn't serve any purpose anyway. [1] https://github.com/odoo/odoo/pull/229584 [2] https://github.com/odoo/enterprise/pull/62615 opw-5248844 opw-5241556
This update corrects the Italian EDI company settings so share capital is only required for limited liability companies. It avoids unnecessary validation errors for other company types when completing business information.
Original PR description
Share capital should not be mandatory for non limited liability company. [Ticket link](https://www.odoo.com/odoo/project.task/5131029) opw-5131029 Forward-Port-Of: odoo/odoo#235498
This fix restores the ability to delete highlighted digits with backspace when a selection starts at the first character. It keeps the safety checks that prevent unwanted cursor behavior, while making normal editing work as expected again.
Original PR description
This commit fixes a regression introduced in commit [1] prevented deleting when a selection began at index 0; extend the guard so the numpad (keypad) backspace still removes the highlighted characters while keeping the cursor-safety logic. [1]: https://github.com/odoo/enterprise/commit/73b01fa5e1f56d4ab71d67760b15942fb2fa0e31 task-5217676 Forward-Port-Of: odoo/enterprise#99358
The contact duplicate VAT warning now displays the correct tax label before you save a new contact. This avoids a confusing blank label and makes the warning clearer when users enter a VAT number.
Original PR description
**Steps to reproduce:** 1. Login with the admin. 2. Open any contact with a VAT number and copy the VAT. 3. Create a new contact and paste the same VAT. 4. Observe the warning message shown before…
**Steps to reproduce:** 1. Login with the admin. 2. Open any contact with a VAT number and copy the VAT. 3. Create a new contact and paste the same VAT. 4. Observe the warning message shown before saving. **Issue:** - Just before saving, the `vat_label` value is missing in the warning message. After saving, the correct label (e.g., "Tax ID") is displayed. <img width="914" height="79" alt="image" src="https://github.com/user-attachments/assets/bd46b8a2-c8e4-41e6-99f3-ae7bf293e4d0" /> **Cause:** - The computed field `vat_label` only depended on the company context, which is not triggered when a VAT value is entered on a new record. **Solution:** - Added a dependency on the `vat` field to ensure `_compute_vat_label` is computed immediately when the VAT number is added, so the correct label appears in the pre-save warning as well. <img width="789" height="59" alt="image" src="https://github.com/user-attachments/assets/822ebce3-9c9b-49d8-9127-2ecef239dfde" /> **opw-5226632**
This change prevents an error from appearing when a content row is left empty in the website editor. It adds a safeguard so the system can handle empty rows cleanly instead of generating a traceback, improving stability for users editing pages.
Original PR description
When a .row div was empty, the _areColsCustomized function was called with an empty HTMLCollection. This caused a traceback when the function tried to access columnEls[0]. This commit adds a safety check to _getNbColumns for avoiding extra calls to _areColsCustomized when columnEls is empty. And we also add a similar check to _areColsCustomized for safety, since it's also being called through the _computeWidgetVisibility. opw-5121738 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#235555
When an event ticket is fully discounted, the attendee confirmation email will no longer display a price amount that could be mistaken as payable. This makes the message clearer and avoids confusion for customers who received the ticket for free.
Original PR description
Steps to reproduce: 1. Create a new sale order with an event ticket line 2. Apply a 100% discount on the ticket line 3. Confirm the sale order 4. Check on the new attendee created, the mail sent to the attendee. Current behavior: The email shows the unit price without the discount applied which can be confusing for the customer as it might look like they need to pay that amount. After this commit: The email will just show the confirmation of the registration to the event withouth mentioning the price when the total price is 0. opw-5122776 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#235482
This change removes an unnecessary database sequence once a point of sale session is closed. It helps keep the database cleaner over time and avoids accumulating unused database objects.
Original PR description
to avoid having too many postgres sequences, this make sure the sequence used by the pos session is cleaned up after being closed. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update includes the database identifier in SMS requests sent to Odoo’s backend services. It helps support teams more quickly identify and troubleshoot issues for customers when problems occur.
Original PR description
Send the db_uuid to IAP such that we can more easily debug and support our users in case of a problem. task-none Forward-Port-Of: odoo/odoo#235373 Forward-Port-Of: odoo/odoo#233912
3 changes
Resolved issues and error corrections
This fix restores placeholder text in the Related Company field and similar partner autocomplete fields. It helps users understand what information is expected when creating or editing contacts, improving the clarity of the form.
Original PR description
**Issue:** Fields using the res_partner_many2one widget with a placeholder do not display the placeholder text. **Steps to reproduce:** 1. Install `contacts` module 2. Go to Contacts 3. Create new 'Individual' contact 4. Notice just below the name, Related Company field placeholder is not visible. **Cause:** Props are not passed correctly in PartnerAutoComplete component **Solution:** Use the correct prop reference (props.placeholder) when passing the placeholder to the PartnerAutoComplete component, ensuring it is properly rendered. opw-5153125
The debit note wizard now keeps the correct default document type instead of replacing it with the first invoice-related one. This helps users create debit notes with the right prefilled document type and avoids confusion during document generation.
Original PR description
Restores code from v16 to define a default document type for debit notes on records with debit_origin_id. Previously, when using the wizard to generate a debit note, the default document type (related to debit notes) was being overwritten by the first document type associated with invoices. Although this behavior will be removed in v17, this fix is necessary to prevent overwriting the default value for now. Note: It's still possible to use the document type for invoices. Therefore, the change only affects the computation of the default value. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix prevents quantity-based quality checks from being requested too early when the related stock move line does not yet have a lot or serial number. It reduces confusion for users and ensures the check appears only when the required traceability information is available.
Original PR description
This commit make sure the quality checks 'by quantity' are not asked to be filled in in case the related move line is not completed yet by a serial number or lot. Task : 4716252