Wednesday, September 10, 2025
9 changes · 17.0
Enhancements to existing features
This update reorganizes how product stock valuation fields are calculated so custom modules can adjust the behavior more easily. It does not change day-to-day workflows, but it makes future business-specific inventory valuation adaptations simpler and safer to build.
Original PR description
In order to create more svl related fields, i moved some code into separate methods to make them hookable. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#160201
The sample Peppol vendor bill data was adjusted to use clearer and more appropriate demo information. This reduces confusion in demonstrations and testing by avoiding reused company VAT details, unnecessary bank data, and non-reserved web domains.
Original PR description
Minor improvements to the demo bill such as usage of VAT number different from belgian company in demo data, removal of IBAN account number, usage of a different address for vendor company and usage of example.com instead of beexample.com, which is not IANA reserved domain name. XML used: [INV_2025_00017_ubl_bis3.xml](https://github.com/user-attachments/files/22254686/INV_2025_00017_ubl_bis3.xml) no-task
Resolved issues and error corrections
This fix prevents Odoo from posting a log note when a Saudi e-invoicing validation error happens before any request is sent to ZATCA. Users will see cleaner invoice communication history, with logs reserved for actual ZATCA responses.
Original PR description
In a previous commit e90c35cde2a1f5de5d7bc4db7a525638ca3fab6e, we modified the logic of posting a log note when receiving a response from ZATCA to always log a note of the response. An issue occured because sometimes, Odoo raises user errors before sending a request to ZATCA, In which case, we do not need to log a note. Task-id: 5056724 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#226036
This fix makes HR-related areas check that expected menu entries still exist before using them. It helps avoid upgrade or view-loading failures in databases where those menus were removed or customized.
Original PR description
To Reproduce: 1) make a database in 16.0 and go to developer mode. 2) Delete the menus 3) I mocked the views with upgrade mockcrawler. it failed for these xmlids: ``` hr_attendance.menu_hr_attendance_attendances_overview hr_timesheet.timesheet_menu_activity_use hr.menu_hr_employee ``` but we should have a check anyways. 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#215426
Survey datetime answers now show times using the current user's timezone. This prevents confusion where the answer list showed a different time than the detailed answer form.
Original PR description
Steps to reproduce ==================== 1. Create survey with some datetime questions. 2. Receive some response on it. 3. Check answer of datetime questions in answer tab. 4. Click on that answer to open form. ->The time shown in answer tab differs from actual value in form. The display_name of survey.user_input.line is computed based on the answers submitted by users. For questions of type datetime, the display_name was generated by converting the datetime value to a string without accounting for the user's timezone, leading to a mismatch between the actual value and the displayed time. After this commit ================== This commit updates the computation of display_name for datetime answers to consider the current user's timezone. Task-4890423 Forward-Port-Of: odoo/odoo#216281
Web notifications now hide the behind-the-scenes links for user and channel mentions. This prevents confusing or cluttered notification text, making messages easier for recipients to read.
Original PR description
BACKPORT Before this commit: When a user mentioned a channel or another user in a message, the web notification displayed the mention URL on the recipient’s side, causing a UI issue. After this commit: This commit resolves the issue by hiding the mention URL in web notification when a user mentions a channel or another user in a message. original-commit: 116b9d78ae74b6cd4884e62ba1eefe6af328d148 Related: https://github.com/odoo/enterprise/pull/90449 Fw bot up to saas-17.4
Users editing technical view definitions will now receive a clear, user-friendly error if they include an XML encoding declaration that cannot be accepted. This prevents a confusing low-level crash message and makes the problem easier to understand and correct.
Original PR description
Currently, an error occurs when a user includes an XML encoding declaration in the view architecture. **Steps to reproduce:** - Enable **developer mode**. - Under `Settings > Technical > User Interface > Views` Create or edit any view. - Enter the `view name` and select `view type`. - In the Architecture field, declare encoding as: `<?xml version='1.0' encoding='utf-8'?>`. - Attempt to save the view. **Error:** `ValueError: Unicode strings with encoding declaration are not supported. Please use bytes input or XML fragments without declaration.` **Root Cause:** The [1] call raises a ValueError when the XML declaration includes an encoding attribute. This low-level error is not handled and results in an ungraceful failure. [1]- https://github.com/odoo/odoo/blob/bf4ccb21f6c9c8bcda9c6f94d844c89296523954/odoo/tools/translate.py#L281 This commit ensures raising an UserError, improving the error message clarity. sentry-6505918596
Due to time constraints the translations were not added in the commit adding the modules (72ac059edfcc35ad44c5faa9daf971123377af24). This commit adds the translations / fills the `.po` files. The translations were created by LMAN based on the 18.0 po files. Veri*Factu task: task-3745982
Original PR description
Due to time constraints the translations were not added in the commit adding the modules (72ac059edfcc35ad44c5faa9daf971123377af24). This commit adds the translations / fills the `.po` files. The translations were created by LMAN based on the 18.0 po files. Veri*Factu task: task-3745982
Scanning package type barcodes with GS1 settings now works without causing server errors. This improves reliability for warehouse teams using barcode workflows to identify package types.
Original PR description
Steps to Reproduce: - Set the barcode nomenclature to GS1 - Scan a package type barcode - Server logs an AttributeError(in Odoo 18) or KeyError(in Odoo 16 and 17) Issue: - The model class "stock.package.type" is missing an attribute "_barcode_field" Solution: - Add the attribute "_barcode_field" to the model class "stock.package.type" Task: [4888064](https://www.odoo.com/odoo/49/tasks/4888064) Forward-Port-Of: odoo/enterprise#93116