Thursday, December 4, 2025
9 changes · 18.0
Resolved issues and error corrections
This update fixes an issue where failed quality checks didn't correctly move stock items to designated failure locations. The fix now triggers a wizard allowing users to confirm the failure and select the correct location, ensuring accurate tracking of quality issues within the stock management system. This improves data integrity and streamlines the process of handling defective products.
Original PR description
## Issue: When you use the Smart button `Quality Checks` on a `stock.move` to validate QC, marking a test as Fail doesn't move the `stock.move` to the failing location even if the QC is now failed…
## Issue: When you use the Smart button `Quality Checks` on a `stock.move` to validate QC, marking a test as Fail doesn't move the `stock.move` to the failing location even if the QC is now failed This affects all quantity-based checks (Measure or Pass/Fail) ## Cause: The `do_fail()` method marks the check as failed but does not call `_move_line_to_failure_location()`, so the move line stays in the original location ## Fix: Trigger the failure wizard when failing a QC via the buttons This allows the user to confirm the failure and select the appropriate failing location if multiple are configured ## Steps to reproduce: - Enable Storage Locations in Settings - Create a Product and a Quality Point (Product: Quality, Operations: Receipt, Control per: Quantity, Type: Measure, Tolerance: 0.0 to 1.0, Failure Locations: WH/Failure) - Create a New Receipt for the Product and Mark as Todo - Open 'Quality Checks' via the Smart button, select the QC, enter a measure value above the tolerance (e.g., 2.0), and click Measure. - The QC should be marked as failed - Before the fix, the details of the line in the Receipt doesn't change to the failing location You can also do the same flow with a QP of type Pass/Fail and the Fail button opw-4920391
This update fixes a bug that prevented homeworking locations from appearing in the month view calendar. The change ensures that locations are correctly displayed and interactable, mirroring the functionality in week and day views, improving the user experience for scheduling remote work. It also addresses an issue with grouped icons for similar locations.
Original PR description
Description of the issue/feature this PR addresses: After a refactor, the month view no longer displayed homeworking locations as in previous versions. This PR fixes the issue and adapts the…
Description of the issue/feature this PR addresses: After a refactor, the month view no longer displayed homeworking locations as in previous versions. This PR fixes the issue and adapts the component using the updated version of the FullCalendar library. Also fixes a small issue of when different locations with same icons are grouped together when they shouldn't Current behavior before PR: All days in the calendar month view displayed the 'Set location' button, regardless of whether a location record existed for the day or not. Locations of a different type sharing the same icon (Office, Building 1...): <img width="262" height="135" alt="before" src="https://github.com/user-attachments/assets/51745152-5f90-4917-9627-07aa0959eb3d" /> Desired behavior after PR is merged: Locations are shown in the month view, and can be interacted with in the same way as in the week/day views, both for single and multicalendar: <img width="1230" height="504" alt="multicalendar" src="https://github.com/user-attachments/assets/34108f57-2c25-400e-9fbe-106e2233c677" /> <img width="1232" height="382" alt="singlecalendar" src="https://github.com/user-attachments/assets/f4a0cf32-636f-49ce-a4cc-e53a9ac45643" /> Locations of a different type sharing the same icon: <img width="256" height="132" alt="after" src="https://github.com/user-attachments/assets/643dd304-aeeb-48ec-abef-755e3eb5fdf0" /> --- Task ID: 5215931
This update resolves an error that occurred when creating time off allocations with hourly schedules, specifically when all attendance entries had start and end dates. The fix prevents a division-by-zero error, ensuring time off allocations are created correctly. This addresses a technical issue related to how the system calculates hours for time off.
Original PR description
_ ## Short functional explanation of the error When creating a time off allocation with a time off type expressed in hours, and having start/end dates for every attendance in the corresponding…
_ ## Short functional explanation of the error When creating a time off allocation with a time off type expressed in hours, and having start/end dates for every attendance in the corresponding calendar, an error is raised. ## Reproduction Steps 1. Go to Employees and click on the Configuration tab > Working Schedules. 2. Click on a schedule and click on the button next to Work Entry Type to show the Starting date. 3. Set a starting date for each entry. 4. Go to Time Off. Click on the Configuration tab > Time Off Types. 5. Click on a time off and next to the Take Time Off in, select Hours. 6. Click on the Management tab > Allocations. Click on New. 7. Select an employee that has the schedule you updated earlier. ## Expected behavior The allocation is created. ## Unexpected Behavior A traceback occurs: ``` ZeroDivisionError: float division by zero ``` ## Origin of the issue When setting a start or/and an end date to an attendance, this attendance won't be taken into account for global attendances anymore. This leads to an erroneous computation of hours_per_day, leading to a few issues; one of them is related to time off allocation: When setting a time off with a time off type expressed in hours, if every single attendance in the calendar has a start/end date, there will be no global attendance hours left, leading to a division by 0: https://github.com/odoo/odoo/blob/8097b674a23858ed7692a0b30ca74419b8f890f7/addons/hr_holidays/models/hr_leave_allocation.py#L262 After discussion, we decided that this fix would only fix a symptom, and not the problem itself. _ opw-5340056 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves an issue where adding a product with duplicate attribute values to a sales order would cause a system error. The fix ensures correct handling of product variants with multiple attribute selections, preventing crashes and improving order creation stability. This impacts users creating and managing sales orders.
Original PR description
## Versions 18.0 to saas-18.3 Fixed by 7b56a6afda919f3c09d08eb1256416e0a2b4b1d9 introducing a new logic with…
## Versions
18.0 to saas-18.3
Fixed by 7b56a6afda919f3c09d08eb1256416e0a2b4b1d9 introducing a new logic with https://github.com/odoo/odoo/blob/26f9cab34a8cd594192d9e2a844494196b9ca5b6/addons/sale/controllers/product_configurator.py#L329
## Issue
Duplicating an attribute on a product leads to a traceback when adding the product to a SO.
## Steps to reproduce
*Ensure variants are activated in the settings*
- Create a new test product:
- Attributes & Variants (on 2 distinct lines):
- "Brand": 1;
- "Brand": 2 & 3.
- Create a new SO:
- Add the test product.
## Cause
The product has 2 attribute lines referring to the same attribute. As both attribute lines point to the same attribute, `ptals.attribute_id.read()` returns only one value for two ptals. The `zip()` call therefore drops the extra ptal, producing an incomplete mapping. When the configurator later tries to access this missing ptal entry, it crashes https://github.com/odoo/odoo/blob/369ca1e5a154235e80b9ea6af7b3f10442c0939f/addons/sale/controllers/product_configurator.py#L321.
opw-5373672This update fixes an issue where Express Checkout with Stripe wasn't automatically applying the correct tax based on the customer's address. Now, the system correctly identifies and applies the fiscal position, eliminating the need for a page reload to see accurate pricing and taxes for users utilizing this payment method. This ensures consistent and accurate tax calculations for eCommerce transactions.
Original PR description
## Issue: When a fiscal position should apply based on the address provided during Express Checkout, it was not applied automatically The correct fiscal position only appeared after reloading the checkout page This issue affects public users using the eCommerce with Stripe Express Checkout ## Cause: The fiscal position was correctly determined during the `availableCarriers` computation, but it was not propagated to the payment request itself As a result, prices and taxes were only updated after a full page reload ## Steps to reproduce: - Configure Stripe with Express Checkout (e.g., Google Pay) - Create a fiscal position with automatic detection (Country = US, Tax mapping: 15% → 0%) - Create a product using the 15% tax - Go to the website shop and add the product to the cart - Use Express Checkout with a US address - Observe that the fiscal position is not applied unless the page is reloaded opw-5018238 Forward-Port-Of: odoo/odoo#236832
This update ensures the NIF (tax identification number) is now included in the BOE export for model 347 reports, as required by Spanish tax regulations. The system now correctly extracts the VAT number (without the 'ES' prefix) and relies on user-provided NIF data for accurate reporting. Users are responsible for providing a valid NIF number.
Original PR description
[FIX] l10n_es_reports: include NIF in boe export for model 347 The NIF must be included in the BOE export for modelo 347 https://sede.agenciatributaria.gob.es/static_files/Sede/Disenyo_registro/DR_300_399/archivos/347.pdf pages 3 & 12. Before this commit, we read the vat but if it doesn't start with 'ES' we return an empty string because we based on TIN. Now we'll read the vat (without 'ES' if it starts with it). The user is responsible to fill a correct number in the vat field of the company. opw-5207241 Forward-Port-Of: odoo/enterprise#100489
This update resolves an issue where a custom override in the l10n_dk_nemhandel module was causing compatibility problems with other Odoo localizations. The change now ensures that the Danish-specific logic is applied only for Danish partners, maintaining the standard Peppol flow for other regions. This prevents disruptions to the core Peppol integration.
Original PR description
Before: - The l10n_dk_nemhandel override of _check_document_type_support replaced the generic Peppol logic and did not accept process_type, causing errors when other localizations relied on the base method. After: - Aligned the method and applied the DK-specific logic only for Danish partners, falling back to the generic Peppol behavior otherwise. Impact: - Prevents unintended overrides towards standard Peppol flow.
This update ensures that bills received through the PEPPOL network are automatically posted to the accounting system, even when auto-post functionality is enabled for the partner. Previously, these bills remained in a draft state, requiring manual processing. This change streamlines the accounting workflow for PEPPOL transactions.
Original PR description
Currently, even if a partner has auto-post bills enabled, the incoming bills stay in the draft state. This change addresses that issue. Task-5373302 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes an issue where the keyboard unexpectedly opened on mobile date/datetime fields, causing a poor user experience. The change now prevents the keyboard from appearing and hides the cursor, resulting in a smoother and more intuitive date selection on mobile devices.
Original PR description
Before this commit:
- The cursor was shown inside the date/datetime input field on mobile,
which triggered the keyboard unnecessarily and degraded the user
experience.
Steps to reproduce:
1. Add a form snippet.
2. Add a Date/Datetime field.
3. Click on the Date field.
- The virtual keyboard appears and the datepicker popover may be
clipped or partially hidden.
After this commit:
- The virtual keyboard is now prevented from opening on date/datetime
inputs, and the text cursor within these fields is also hidden.
task-[4745714](https://www.odoo.com/odoo/project/974/tasks/4745714)
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#212053