Tuesday, November 25, 2025
12 changes · 17.0
New functionality added to Odoo
This update introduces a new automated process for updating branches from the main Odoo repository and creating release tags. This streamlines the release process and ensures forks are kept synchronized. The workflow is scheduled to run daily, improving efficiency and consistency.
Original PR description
This commit introduces a new GitHub Actions workflow that automates the process of updating branches from the upstream repository and creating releases. The workflow can be triggered manually or scheduled to run daily at midnight UTC. It includes options for specifying the branch to update and a description for the release tag. Additionally, the .gitignore file has been updated to ensure that the .github directory and its workflows are not ignored.
This update introduces basic localization support for Mauritania within the Odoo accounting system. It includes translations for key financial reports and data formats, enabling Odoo to accurately handle transactions and reporting requirements specific to Mauritanian businesses. This expands Odoo's global reach and compliance capabilities.
Original PR description
task-4236158 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
Resolved issues and error corrections
This update resolves an issue where users were unable to set invalid default values for fields in Odoo. Specifically, attempting to set an integer as a default for a date field resulted in an error. The fix ensures that users cannot input incorrect data types as defaults, improving data integrity.
Original PR description
Steps:
- Create a user defined defaults value
- Model: res.partner
- Field: date
- Value: 1
- Create a new contact
Actual result:
- invalid field type
- 'int' object is not subscriptable (depends of field type)
Expected result:
- No error
- User is not able to put an invalid value as a default
task-3729963This update resolves an issue where adding content to the website header would cause unexpected scrolling behavior. The previous system relied on a global variable that wasn't consistently updated, leading to a jumpy header. This change removes the problematic variable, ensuring a smoother and more stable website experience.
Original PR description
Before this commit, the header height was stored in a global variable. This variable wasn't always updated, which led to issues regarding the scroll. When adding elements in the header that increased its height, the scroll would jump and showing / hiding the header. This commit removes the need of the headerHeight variable. Steps to reproduce the bug: - Add a "Text Highlight" inner content above the ContactUs button - Add multiple Title snippets below one another (When adding the third one, the page scroll indefinitely) (The number of snippets to drop may vary depending on the viewport) task-4267249
This update fixes a technical issue that prevented the system from merging certain PDF files, specifically bills. The problem stemmed from errors in the PDF format, which caused a traceback. This change adds a user-friendly error message to guide users when encountering malformed PDFs, ensuring a smoother billing process.
Original PR description
Currently some PDFs cause error in PyPDF (Version 1 and 2) and cannot be merged. Steps to reproduce: - Create 2+ Bills with specific PDF (example found in ticket) - From Bills list view, select both and click Download > Original bills Issue: Traceback will raise `PyPDF2.errors.PdfReadError: Can't read object stream: Stream has ended unexpectedly` Thsi occurs because the version of PyPDF currently in use (2.12.1) cannot recover when working an odd PDF file having wrong length markers. This commit will add a nice error explaining to user what's going on. opw-5142961
This update enhances the stability of the Account EDI Proxy Client by preventing automatic user deletion when the IAP API returns an error indicating a user no longer exists. This resolves previous incidents related to IAP issues, ensuring smoother operation and reducing potential disruptions.
Original PR description
We already have had multiple IAP-side incidents leading to IAP API returning `no_such_user`. This error code should not lead to user deletion client-side. Thus this commit addresses this by avoiding to archive long-standing IAP connections even when `no_such_user` error is received.
This update corrects an error preventing the system from successfully retrieving invoice documents from the Viettel e-invoice API. The issue stemmed from incorrect parameter requirements in the API documentation, which were causing a 'not found' error. This fix ensures seamless document retrieval for Vietnamese e-invoicing.
Original PR description
* Problem: When trying to get document from sinvoice, we get error not found * Reason: in the api document the parameter not include 'strIssueDate' and also the 'transactionUuid' not require at all, but if we include 'transactionUuid' we still get 400 error 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
This update ensures that product unit prices remain consistent when a product's fiscal position (and associated taxes) are updated. Previously, changes in taxes triggered an unintended recalculation of the unit price, even when taxes were included in the price. This change corrects the expected behavior, maintaining accurate product pricing.
Original PR description
This reverts commit 8df3d0424b30289d81e15a483dcc779bfe3964ba. What the commit was fixing was not a bug but the expected behaviour. Changing the fiscal position, and with that the taxes, should not change the unit price of products even if the taxes are included in price.
This update fixes an issue where the 'Late,' 'Today,' and 'Future' filters in the Activity Menu didn't correctly display Approval requests. The fix adds necessary filters to the Approvals search view, ensuring these filters now work consistently and align with other Odoo modules.
Original PR description
Issue: - In the Activity Menu, clicking "Late", "Today", or "Future" did not filter Approval requests and always returned all records. - The Approvals search view lacked the activity filters that these context defaults rely on. Fix: - Added the invisible activity filters (overdue, today, upcoming_all) to the Approvals search view. - Filters use `my_activity_date_deadline` to match Odoo's standard deadline-based activity filtering. Impact: - Activity Menu filtering now works correctly for Approvals and aligns with behavior in other modules. Task: 5261406 Forward-Port-Of: odoo/enterprise#99632
This update resolves an issue where rapidly opening the file viewer (e.g., double-clicking attachments) would cause the system to crash. The fix ensures the file viewer component is properly managed, preventing errors when multiple instances are created, leading to a more stable user experience.
Original PR description
Before this commit, quickly triggering the opening of the file viewer multiple times (e.g. double-click on an attachment) caused a crash. This happens because the `createFileViewer` hook generates a `fileViewerId` on initialization. When `open()` is called, it registers the component using this specific ID. If `open()` is triggered a second time while the component is still registered (or being registered), the registry throws an error because duplicate keys are not allowed. This commit fixes the issue by calling `close()` at the beginning of the `open()` function. This ensures that any existing `FileViewer` instance associated with this hook is removed from the registry before a new one is added. task-5262556
This update resolves an issue where a traceback was triggered when using the FedEx delivery method with addresses in Hong Kong, specifically when the state code was 'Hong Kong Island'. The fix adds a check to ensure the state code splitting process returns at least two elements, preventing errors and ensuring reliable shipping functionality.
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Use Fedex as a Delivery Method 2. On the Website, select a shippable product. Confirm the cart. 3. Ship to a "Hong Kong" address, with "Hong Kong Island" as State. 4. Traceback is raised. Issue ----- Traceback is raised whenever the Fedex Delivery Method is applied to a HK address (be it shipper or receiver) Cause ----- When splitting a state code, there is no check in the `_parse_state_code` function that the result contains at least two elements. Example ----- For a "Hong Kong" address, with "Hong Kong Island" as State: ``` country_code = "HK" state_code = "HK" ``` The method tries to split `state_code` by its hyphen, which returns a single item list. Solution -------- 1. Check for the size of the post-split list before accessing the second item. opw-5257852
This update fixes a minor issue where the 'Copy' button in the Payment Link wizard incorrectly displayed. The change ensures the button clearly states 'Generate a Payment Link', improving user clarity and reducing potential confusion when creating payment links for sales orders. This improves the user experience.
Original PR description
Steps to reproduce: 1. Install sale_management 2. Create a sale order and confirm it 3. Open the Generate a Payment Link wizard from the cog menu Issue: The button in the wizard displays “Copy” instead of “Generate a Payment Link”. Cause: The custom paymentWizardCopyClipboardButtonField widget did not forward the field’s string to its component props, causing the default "Copy" label to be used. Solution: Forward the string prop in the widget’s extractProps implementation. opw-5224112