Daily updates from Odoo
Monday, May 4, 2026
6 changes · master
Resolved issues and error corrections
This pull request restores a previously removed CSS style that was essential for the functionality of the spreadsheet dashboard edition. The change was made to correct a visual issue impacting the dashboard's appearance and usability. This ensures the dashboard displays correctly for all users.
This update resolves a crash that prevented users from adding videos to product pages via the website builder's 'Extra Media' feature. The issue stemmed from a mismatch in how the system handled video URLs, causing a technical error. The fix ensures videos are now correctly saved as extra media, improving the website builder's functionality.
Original PR description
**Problem:** Adding a video (or image) via Extra Media on a product page in the website builder crashes with: "TypeError: loadPromiseResolveFunction is not a function" **Steps to reproduce:** 1.…
**Problem:** Adding a video (or image) via Extra Media on a product page in the website builder crashes with: "TypeError: loadPromiseResolveFunction is not a function" **Steps to reproduce:** 1. Install ai_website_sale 2. Go to a product page and enter edit mode 3. In the right panel → Images → click "Add More" (Extra Media) 4. Switch to Videos tab → paste a YouTube URL → click Add 5. Observe the crash **Current behavior:** A traceback dialog appears: "loadPromiseResolveFunction is not a function" **Expected behavior:** The video is saved as extra media on the product. **Cause of the issue:** The `ai_website_sale` patch for `ProductAddExtraImageAction.getMediaDialogProps` destructures the argument with key `loadResolveFunction` (renamed to `loadPromiseResolveFunction` locally), but the caller in `load()` passes `loadPromiseResolveFunction` as the key. The key mismatch means the local variable is always `undefined`, and the `save` closure in the parent's `getMediaDialogProps` closes over `undefined` instead of the Promise's `resolve` function. Calling `undefined()` throws the TypeError. **Fix:** Aligning the parameter key with the parent API ensures the Promise's `resolve` function is correctly captured in the `save` closure. opw-6107097
This update corrects a previous error in Odoo's French reporting module. Accounts 657 and 757, introduced by a recent French accounting reform (PCG 2025), are now correctly classified as current operations, resolving discrepancies in profit and loss statements. This ensures accurate financial reporting for French businesses.
Original PR description
…tions As part of the PCG 2025 reform in France, accounts 657 and 757 were introduced to handle capital gains and losses on the disposal of tangible and intangible assets related to normal, current activities. Previously, Odoo incorrectly categorized these under exceptional items which led to mismatches in the P&L. Source: https://www.anc.gouv.fr/files/anc/files/1_Normes_fran%C3%A7aises/Plans%20comptables/PCG--1er-janvier-2025.pdf Relevant excerpts: <img width="630" height="372" alt="image" src="https://github.com/user-attachments/assets/88a66dac-1cc0-4a33-a902-edb6b626f18f" /> <img width="631" height="318" alt="image" src="https://github.com/user-attachments/assets/403b65dc-20ba-447e-937d-20575f1f45ab" /> opw-6105764 Forward-Port-Of: odoo/enterprise#115216 Forward-Port-Of: odoo/enterprise#114837
This update fixes an issue where the namespace for DIAN credit notes was incorrectly configured, causing errors when submitting to the DIAN tax authority. The fix ensures the correct namespace is applied, resolving a recurring problem identified in previous development. This ensures accurate and compliant credit note submissions for Colombian companies.
Original PR description
Issue: Incorrect `sts` namespace raises several issues when sent to dian Steps to reproduce: - On a Colombian company - Create a credit note - Send to DIAN Current Behavior: - Credit note have `sts` namespace defined to `dian:gov:co:facturaelectronica:Structures-2-1` while their Extension node has another `sts` namespace to `http://www.dian.gov.co/contratos/facturaelectronica/v1/Structures` Expected Behavior: - Only the top level Node should have `sts` namespace defined to `dian:gov:co:facturaelectronica:Structures-2-1`. It was forgotten that Credit Note were part of the Invoices in the last refactor. As it's the second time(odoo/enterprise#68619 3rd commit) it happens, I updated the test. opw-6077050 Forward-Port-Of: odoo/enterprise#114725 Forward-Port-Of: odoo/enterprise#113643
This update resolves an issue preventing mobile users from uploading documents to shared folders within the Odoo portal. The fix adjusts how the mobile file picker interacts with the portal interface, ensuring the file upload process functions correctly. This improves the user experience for mobile portal users.
Original PR description
Steps to reproduce: 1. Install `documents` 2. Create a portal user and share a document folder with edit access 3. Log in as the portal user on a mobile device 4. Try to upload a document inside the…
Steps to reproduce:
1. Install `documents`
2. Create a portal user and share a document folder with edit access
3. Log in as the portal user on a mobile device
4. Try to upload a document inside the shared folder
Issue:
- After selecting a file from the file picker, the document is not uploaded.
Cause:
- On mobile in the portal flow, Upload is triggered from a nested dropdown (inside New) inside the adaptive control-panel dropdown (bottom sheet). By default, DropdownItem uses closingMode="all", so tapping Upload closes parent dropdowns immediately. That unmounts the hidden <input type="file"> before the OS file picker returns. When the user comes back, the input no longer exists, so change never fires and upload does not start.
- Admin/internal users do not hit the same nested adaptive-dropdown path in this view
Solution:
- Set closingMode="'none'" on the Upload DropdownItem so the menu stays mounted while the native picker is open. After a file is selected and onFileInputChange starts upload, close the bottom sheet programmatically with: `window.dispatchEvent(new Event("popstate"))`
opw-5937105
Forward-Port-Of: odoo/enterprise#108486This update ensures that changes to employee contract dates don't inadvertently exclude previously paid payslips. The system now validates that new contract start and end dates align with existing payslip dates, preventing data inconsistencies and ensuring accurate payroll reporting. This protects against potential errors and compliance issues.
Original PR description
Prevent changing a contract's contract_date_start or contract_date_end in a way that would exclude already validated/paid payslips for that version and there is not a departure set. It raises a ValidationError if: - the new contract_date_start is after the earliest payslip date_from - the new contract_date_end is before the latest payslip date_to. task-6088963