Daily updates from Odoo
Monday, December 22, 2025
72 changes
22 changes
New functionality added to Odoo
This update adds the ability to generate Peruvian 5th and 6th Inventory and Balance reports within the general ledger. These reports require specific data from account and company settings, and are created using direct SQL queries for efficiency. This expands reporting capabilities for Peruvian businesses using Odoo Enterprise.
Original PR description
Adding 'Inventory and Balance' export option to the Peruvian general ledger report, and fields required for these reports to account_account and res_company. Report lines are handled with direct SQL queries since no UI display is required for this one, and some elements needed are outside of the scope of the usual reports model. task-4057152 Forward-Port-Of: odoo/enterprise#102356 Forward-Port-Of: odoo/enterprise#89744
Enhancements to existing features
This update automatically expands the grouped list view within the Spreadsheet Dashboard, making it easier for users to see all relevant data at a glance. The previous version contained a redundant file which has now been removed, streamlining the dashboard's functionality. This change improves user experience and efficiency.
Original PR description
Auto expand the dashboard grouped list view and remove the file which is useless Task-5430726 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 enhances the way live chat is displayed on the website. The change involves updating a test to reflect the new live chat name format, ensuring a more consistent and professional user experience. This is a minor improvement to the website's helpdesk functionality.
Original PR description
The community counterpart improves the live chat display name. This commit adapts a test relying on the old name format. task-5408945 community: https://github.com/odoo/odoo/pull/240913
This update enhances the visual style of the Discuss Call menu within Odoo. Specifically, it now displays conversation avatars next to names, moves tracking icons closer to the chevron, and reduces the chevron size for a cleaner and more intuitive user experience. These changes improve the overall readability and usability of the discussion interface.
Original PR description
- Show conversation avatar next to name - Move tracking icon next to chevron - Reduce chevron size Before / After <img width="1275" height="43" alt="Screenshot 2025-12-19 at 16 51 30" src="https://github.com/user-attachments/assets/90cab521-b2df-4e7f-b1dc-50b918763475" /> <img width="1274" height="48" alt="Screenshot 2025-12-19 at 21 03 57" src="https://github.com/user-attachments/assets/6a22eb84-f0ec-49a5-8df9-57f71a975828" /> Before / After <img width="1278" height="48" alt="Screenshot 2025-12-19 at 16 51 10" src="https://github.com/user-attachments/assets/7959da23-392f-47d7-b728-fae505054b93" /> <img width="1280" height="49" alt="Screenshot 2025-12-19 at 21 03 39" src="https://github.com/user-attachments/assets/2c3612ae-a7b8-4987-a2c0-fc90c8e22dd3" />
Resolved issues and error corrections
This update fixes a visual issue where select and button group controls sometimes overlapped, obscuring text and button labels. The change ensures that select text remains visible and button labels are fully displayed, providing a cleaner and more user-friendly experience for users interacting with these controls. This improves the overall usability of the application.
Original PR description
Fix animation options layout when a select and a button group share the same row. Ensure the select text remains visible and the buttons show their full labels (e.g. for "onScroll"). | Before | After | | ------------- | ------------- | | <img width="290" height="39" alt="image" src="https://github.com/user-attachments/assets/4fb367fe-77f0-4038-ac2c-c0d856aeba8f" /> | <img width="288" height="40" alt="image" src="https://github.com/user-attachments/assets/99402e23-4144-42bf-81b1-7ddec0c35cfe" /> | | Before | After | | ------------- | ------------- | | <img width="290" height="36" alt="image" src="https://github.com/user-attachments/assets/39f1a6d0-3ba5-4c80-b452-5c5ba03cee2d" /> | <img width="289" height="39" alt="image" src="https://github.com/user-attachments/assets/482f84cc-7600-4510-91d7-1d6ad9d63937" /> | task-5353509 Forward-Port-Of: odoo/odoo#239588
This update fixes an issue where the category title in the Discuss sidebar was overly visible when not hovered over. The change reduces the opacity of the title when the chevron icon isn't active, ensuring a cleaner and more professional look. This improves the overall user experience.
Original PR description
Follow-up of https://github.com/odoo/odoo/issues/239537 PR Above improve style of category title. One of the change is reduce opacity of title when not hovered. The chevron icon was not taken into…
Follow-up of https://github.com/odoo/odoo/issues/239537 PR Above improve style of category title. One of the change is reduce opacity of title when not hovered. The chevron icon was not taken into account, which makes the category title line more visible than intended. This commit put same condition to reduce opacity of category title when not mouse-hovering on the chevron icon. Before / After <img width="297" height="854" alt="Screenshot 2025-12-18 at 15 59 43" src="https://github.com/user-attachments/assets/90e9c49f-7105-4f35-965c-0be5c5822a39" /> <img width="297" height="853" alt="Screenshot 2025-12-18 at 15 58 59" src="https://github.com/user-attachments/assets/65246008-b5b8-4d94-b095-544c99e1e3aa" /> <img width="304" height="858" alt="Screenshot 2025-12-18 at 16 00 30" src="https://github.com/user-attachments/assets/9c5bdaac-b113-45f3-9bd6-fb9171eaa260" /> <img width="300" height="858" alt="Screenshot 2025-12-18 at 16 00 51" src="https://github.com/user-attachments/assets/47f26fe0-bdb4-45f8-af2d-125dfe72f59a" />
This update resolves a technical error that caused tracebacks when dismissing or opening timesheets in the Enterprise version of Odoo. The fix addresses an outdated configuration setting and a naming inconsistency, ensuring smoother timesheet functionality for users. This improves stability and prevents potential disruptions.
Original PR description
Steps to reproduce: - Open Timesheets - Open Timesheets assistant menu - Click on any record Issue: - Traceback appears on opening in debug mode, traceback appears on clicking dismiss of timesheet. Reason: - Unused props to component and wrong props in component. Solution: - Remove `canbeDismissed ` as it was earlier and was removed in futher editions (check push history for the feature pr). - Rename onDismissed to onDiscard as it seems changed. task-5434806
A previous error prevented users from completing sign requests after a user was deleted. This fix addresses a technical issue where the system incorrectly handled missing user information when retrieving sign request items. The update ensures the system gracefully handles this scenario, preventing errors and improving the sign request completion process.
Original PR description
Currently an error occurs when a user tries to click `Valid & Send Compeleted Document` as follows below: - Install the `sign` module with demo data - Log in as the `demo` user and send 2 sign requests to the `admin` user - Now log in as the `admin` user and delete the `demo`user - Go to the sing and open sign request that was sent by the `demo` user - Complete the sign and click on `Valid & Send Compeleted Document` This issue occurred while retrieving the suggested sign request items. The code was accessing the `create_uid` of those items, but because the user had been deleted, `create_uid` was set to False instead of containing a valid user ID and user name. This commit fixes the above issue by handling cases where `item['create_uid']` is False. When `item['create_uid']` is False, the code now safely returns `False` instead of attempting to access its index. sentry-7116433081 Forward-Port-Of: odoo/enterprise#102438
This update ensures that when users share a document via a link and have the list view as their default view, the document preview automatically opens. Previously, the preview was only displayed in the kanban view. This change improves the user experience and makes document sharing more consistent.
Original PR description
Bug === If the user has the list view as his default view, if we share him a document, the preview is not opened. After this commit, the preview is opened like in the kanban view, and the document is selected. Task-5361212 Forward-Port-Of: odoo/enterprise#102598 Forward-Port-Of: odoo/enterprise#100716
This update resolves an issue where document previews were not updating correctly after renaming documents. Previously, the preview would show the old attachment name. Now, the preview accurately reflects the document's name after any renaming action, ensuring data consistency.
Original PR description
BUG 1: --------- **steps to reproduce**: 1. Install documents 2. Open any document 3. Go to Action > Rename 4. Rename the document 5. Preview it and read the name showed there **issue**: When…
BUG 1:
---------
**steps to reproduce**:
1. Install documents
2. Open any document
3. Go to Action > Rename
4. Rename the document
5. Preview it and read the name showed there
**issue**:
When previewing the document, it still shows the old attachment name.
**observation**:
When renaming a document, only the document name was updated. The attachment name remained unchanged, which caused inconsistencies:
1. In the All Records section, the document name is displayed correctly. https://github.com/odoo/enterprise/blob/459e8ddaf6f67a556d35bf00e0fbb68eb1500a94/documents/views/documents_document_views.xml#L130
2. But in the Preview, the old attachment name was still shown, as it is taken from the attachment:
https://github.com/odoo/enterprise/blob/459e8ddaf6f67a556d35bf00e0fbb68eb1500a94/documents/static/src/views/hooks.js#L373-L383
**solution**:
Use the document name when previewing it
BUG 2:
---------
**steps to reproduce**:
1. Install Documents.
2. Open any document.
3. Rename it via the chatter.
4. Try renaming it again via the details panel.
**issue**:
After renaming a document twice through the details panel, the preview still displayed the old document name.
**cause**:
On the first rename, the [insert](https://github.com/odoo/enterprise/blob/691115d8a0b31322f64d35d82dc8c9ddbfcd39b0/documents/static/src/core/document_service.js#L96-L129)) method creates a new [store.Document](https://github.com/odoo/enterprise/blob/691115d8a0b31322f64d35d82dc8c9ddbfcd39b0/documents/static/src/views/hooks.js#L367-L393) record with the updated attachment name. However, The write method (used by chatter) skips reloading the record and linked attachment data on the second rename.
Unlike the Rename button, which uses web_save (and triggers a record reload via web_read), the chatter directly calls write without refreshing the attachment.
**Solution**:
Ensure the preview uses the document name from the document record, keeping it consistent after multiple renames via the details panel.
**Example:** Try to rename a "Invoice.pdf" document to "Invoice_rename.pdf"
<details>
<summary>Click here to see the results:</summary>
Before:
<img src="https://github.com/user-attachments/assets/563b7fb9-709c-4651-8492-032a7f353730"/>
After:
<img src="https://github.com/user-attachments/assets/6fc6bdfe-dd1e-4f3c-aaf7-821c44fd135d"/>
</details>
opw-5065433
Forward-Port-Of: odoo/enterprise#101919
Forward-Port-Of: odoo/enterprise#95111This update resolves an issue where tax reports were generating errors when configured for companies outside of Belgium. The fix prevents the system from attempting to parse invalid VAT numbers, ensuring accurate tax calculations for all company types. This improves the reliability of our financial reporting.
Original PR description
**Steps to reproduce:** 1. Go to Companies and set a non-BE VAT on the current company, e.g., `US12345678` 2. Go to Accounting → Configuration → Fiscal Positions. 3. Create a new Fiscal Position and set the country to Belgium. 4. Enter a valid Foreign Tax ID, e.g.,` BE0477472701`, and save. 5. Create the taxes. **Issue:** A traceback is raised: `ValueError: invalid literal for int() with base 10: 'US12345678'` **Cause:** This happens because `_be_company_vat_communication` attempts to parse the company's VAT number even when the company does not belong to BE, resulting in invalid VAT formats such as "USxxxxxxx". **Solution:** Return an empty structured communication unless: - the VAT is valid, and - the detected country code is BE, and - the fiscal country is Belgium. This prevents parsing foreign or invalid VATs and avoids the traceback during foreign tax generation. **opw-5368016** Forward-Port-Of: odoo/enterprise#101648
This update resolves an issue where the Eas field was incorrectly focused during Peppol registration. By removing the ability for users to focus this field, the registration process is now streamlined and ensures the correct pre-selected option is used, improving the user experience.
Original PR description
During registration on Peppol, the eas field is focused first, which makes no sense as it's supposed to be correctly preselected, and users aren't supposed to touch it So this commit makes it non-focusable 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#240816 Forward-Port-Of: odoo/odoo#240679
This update resolves an issue where the web_studio report editor was generating invalid field nodes, causing errors when creating reports. Specifically, it prevents the editor from attempting to create fields outside of designated areas like headers or tables, ensuring reports can be created without errors. This improves the stability and usability of the report editor.
Original PR description
cf commit Forward-Port-Of: odoo/enterprise#102311 Forward-Port-Of: odoo/enterprise#99385
This update fixes a confusing labeling issue within the account reports section of Odoo. Previously, a menu item was incorrectly named 'Currencies,' leading to user confusion. This change ensures the menu item accurately reflects its function – displaying unrealized currency balances.
Original PR description
Previously, there were two menu items named `Currencies`: one under Review and another under Configuration, which caused confusion. The one under Review was incorrectly labeled, it should have been `Unrealized Currencies`. This **PR** renames the menu item under Review to `Unrealized Currencies` to reflect its actual purpose. **task**-5169637 Forward-Port-Of: odoo/enterprise#97356
This update fixes a bug where the HTML editor incorrectly identified certain QWeb nodes (like those with `display: none`) as non-blocking, leading to parsing errors. The change ensures consistent behavior regardless of a node's visibility, improving the overall reliability of the HTML editor and preventing unexpected errors during content creation.
Original PR description
Problem: When nodes have `display: none` (for example a QWeb `t-else` node with a false condition), `isBlock` incorrectly fails when checking them. Solution: If a node has `display: none`, fall back to checking its `tagName` against `blockTagNames`. This ensures consistent behavior regardless of the node visibility. Steps to reproduce: - Open “Appointment: Attendee Invitation”. - Add a list item to the list in the content. - Save. - A QWeb parsing error occurs. opw-5268806 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#240651 Forward-Port-Of: odoo/odoo#239482
This update resolves a problem with the Chile invoice PDF report, where text was incorrectly formatted and overflowing. The fix ensures the invoice layout is correct and readable, preventing issues with printing and exporting invoices. This improves the accuracy and professionalism of our Chile-specific invoicing.
Original PR description
Steps to reproduce: 1. Install l10n_cl_edi. 2. Create an invoice with a customer having a Chile address. 3. Print "Invoice PDF copy (Chile)". Issue: The PDF layout is broken: some text is rendered vertically and the content overflows across multiple pages. Cause: The footer right column row did not have an explicit width, causing wkhtmltopdf to shrink the container and wrap text letter by letter. Fix: Set w-100 on the inner row to stabilize the layout and prevent vertical text rendering. Before Fix : <img width="408" height="313" alt="image" src="https://github.com/user-attachments/assets/1d61412d-cfd3-48df-a4d4-eabd10df4865" /> After Fix: <img width="409" height="320" alt="image" src="https://github.com/user-attachments/assets/3a098227-7e43-44f0-9266-b4b0023f382c" /> opw-5348151 Forward-Port-Of: odoo/enterprise#102111
This update fixes a potential error when sharing spreadsheets that have been moved to the Trash. It now hides the 'Share' button and related menu options in this state, providing a cleaner and more intuitive user experience. This ensures users don't encounter issues when attempting to share archived documents.
Original PR description
## Description This PR fixes a traceback when sharing a spreadsheet that is in Trash. It exposes `is_archived` in the spreadsheet metadata and adds an `env.isArchived()` getter on the environment. It hides the topbar "Share" button and the "Share"/"Freeze and share" menu entries when the document is in Trash. Task: [5166945](https://www.odoo.com/odoo/project/2328/tasks/5166945) Forward-Port-Of: odoo/enterprise#98984
A recent test failure related to date sequences was caused by a discrepancy in formatting between the generated sequence numbers and the comparison strings. This update ensures that sequence dates are consistently formatted with leading zeros, resolving the test failure and improving data accuracy. This change primarily impacts the core 'base' functionality of Odoo.
Original PR description
Versions -------- - saas-18.3+ Steps ----- 1. Run `test_ir_sequence_iso_directives` in January or February. Issue ----- Test fails due to the sequence generated having a leading zero on the ISO week number, whereas the comparison string doesn't. Cause ----- We get the week number from the comparison string from the `isocalendar` method as a simple `int`, hence we it doesn't automatically get formatted with a leading zero. Solution -------- In the comparison string, ensure the `isoy` and `isoweek` parts are always formatted with 2 width, adding a leading zero when needed. runbot-234592 Forward-Port-Of: odoo/odoo#238721
This update resolves an issue where excessive notifications were triggered when a timesheet was created. The fix restricts notifications to be displayed only when timesheets are created in the calendar, streamlining communication and reducing unnecessary alerts for users. This improves the user experience and reduces notification fatigue.
Original PR description
This occurs due to the reason we have not limited the notification using bus to shown only when records are created in calendar. Due to this when ever timesheet is created notification occurs. Fix: Use context to limit notifications to be visible. Problem from : https://github.com/odoo/odoo/pull/240049 opw-5431729 Forward-Port-Of: odoo/odoo#240828
Documentation and clarification updates
This pull request confirms the individual CLA signature for the Odoo 19.1 release. This is a standard legal step to ensure compliance with Odoo's open-source license. The change is a documentation update to record this confirmation.
Original PR description
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#240817
Miscellaneous changes
This pull request represents the final release notes for Odoo 19.1's SaaS offering. It includes final adjustments and improvements to ensure a stable and reliable experience for our cloud customers. This update focuses on delivering a polished and performant SaaS environment.
This pull request represents the final preparations for the release of Odoo Enterprise 19.1. It includes final code adjustments and documentation updates to ensure a smooth and stable release for our customers. This is a standard release update focused on stability and performance.
13 changes
New functionality added to Odoo
This update adds the ability to generate Peruvian 5th and 6th Inventory and Balance reports within the general ledger. These reports require specific data from account and company settings, and are generated using direct SQL queries for efficiency, as they don't need a user interface.
Original PR description
Adding 'Inventory and Balance' export option to the Peruvian general ledger report, and fields required for these reports to account_account and res_company. Report lines are handled with direct SQL queries since no UI display is required for this one, and some elements needed are outside of the scope of the usual reports model. task-4057152 Forward-Port-Of: odoo/enterprise#89744
Resolved issues and error corrections
A previous error prevented users from completing sign requests after a user account was deleted. This fix addresses a technical issue where the system incorrectly handled missing user information when retrieving sign request items. The update ensures the system gracefully handles this scenario, preventing errors and improving the sign request completion process.
Original PR description
Currently an error occurs when a user tries to click `Valid & Send Compeleted Document` as follows below: - Install the `sign` module with demo data - Log in as the `demo` user and send 2 sign requests to the `admin` user - Now log in as the `admin` user and delete the `demo`user - Go to the sing and open sign request that was sent by the `demo` user - Complete the sign and click on `Valid & Send Compeleted Document` This issue occurred while retrieving the suggested sign request items. The code was accessing the `create_uid` of those items, but because the user had been deleted, `create_uid` was set to False instead of containing a valid user ID and user name. This commit fixes the above issue by handling cases where `item['create_uid']` is False. When `item['create_uid']` is False, the code now safely returns `False` instead of attempting to access its index. sentry-7116433081 Forward-Port-Of: odoo/enterprise#102438
This update resolves an issue where user activity wasn't accurately tracked, causing the system to incorrectly display users as 'away'. The fix allows the system to reliably detect user clicks and update their presence status in real-time. This ensures a more accurate representation of user engagement.
Original PR description
Before this PR, Elements that stopped event propagation (e.g., using event.stopPropagation()) prevented the global click listener from firing. As a result, user activity wasn't detected, and the presence status stayed "away" instead of switching back to "online". This PR fixes the issue by enabling event capturing on the global click listener (useCapture: true). With capture mode, the listener receives the event during the capture phase before any element can stop propagation. Bug:  task-[4892229](https://www.odoo.com/odoo/project/1519/tasks/4892229) Forward-Port-Of: odoo/odoo#238650
This update fixes an issue where job offer emails didn't include the employee's name in the subject line. Now, the email subject will automatically include the employee's name, making offers more personalized and easier to identify. This improves communication and streamlines the hiring process.
Original PR description
**Steps to reproduce:** - Go to Employees app and select any employee - Press "Offers" smart button - Create a new job offer and send it by email **Issue:** The employee name is not populated in the email subject. Task: 5407028
This update fixes an issue where job offer emails didn't include the employee's name in the subject line. Now, the email subject will automatically include the employee's name, improving clarity and personalization for candidates. This ensures a more professional and informative communication.
Original PR description
**Steps to reproduce:** - Go to Employees app and select any employee - Press "Offers" smart button - Create a new job offer and send it by email **Issue:** The employee name is not populated in the email subject. Task: 5407028
This update fixes an issue where sharing a document through the list view didn't automatically open the preview. Now, when a user shares a document with the list view as their default, the preview will open correctly, similar to the kanban view, ensuring a seamless experience for document access.
Original PR description
Bug === If the user has the list view as his default view, if we share him a document, the preview is not opened. After this commit, the preview is opened like in the kanban view, and the document is selected. Task-5361212 Forward-Port-Of: odoo/enterprise#102598 Forward-Port-Of: odoo/enterprise#100716
This update ensures that downpayment lines in the My E-commerce module are consistently classified with code '022'. Previously, these lines were using product-based classifications, which caused discrepancies in reporting. This change improves the accuracy of financial data related to downpayments.
Original PR description
Ensure downpayment lines are assigned a fixed classification code ("022"), while other lines retain their product-based classification.
Task-5356913
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#240529
Forward-Port-Of: odoo/odoo#239831A recent test failure related to date sequences was resolved by ensuring consistent formatting of ISO week numbers in comparison strings. The fix addresses a discrepancy where sequence dates lacked leading zeros, causing tests to fail. This ensures accurate date generation and comparison within the Odoo system.
Original PR description
Versions -------- - saas-18.3+ Steps ----- 1. Run `test_ir_sequence_iso_directives` in January or February. Issue ----- Test fails due to the sequence generated having a leading zero on the ISO week number, whereas the comparison string doesn't. Cause ----- We get the week number from the comparison string from the `isocalendar` method as a simple `int`, hence we it doesn't automatically get formatted with a leading zero. Solution -------- In the comparison string, ensure the `isoy` and `isoweek` parts are always formatted with 2 width, adding a leading zero when needed. runbot-234592 Forward-Port-Of: odoo/odoo#238721
This update resolves an issue where changing a blog author's contact information caused the author's avatar to display incorrectly in the website builder. The fix ensures that avatar updates are properly applied across the website builder, maintaining consistent display of author information.
Original PR description
With the [website builder refactor], the avatar of the author of a blog post is updated when the author is changed. But with the [replication of fields] in the builder, if the avatar is present several times on the page with different options, the replication would overwrite some instances with the options of another. This commit avoids the avatar field from getting replicated (and avoids the weird removal of `o_dirty`) by updating the avatar of mutated fields in a `normalize_handlers`. Steps to reproduce: - Open website builder on a blog post - Enable the "Sidebar" - Enable the "Author" in the sidebar - Click on the name of the author in the page (any of the 2 instances) - Change the "Contact" associated with the author of the post - Bug: the avatar in the sidebar is now small and round like the other [website builder refactor]: 9fe45e2b7ddbbfd0445ffe25a859e67a316d02b2 [replication of fields]: 7d7d6df5aaff52f740a54fe5234f0f778e3d4905
This update resolves an issue where deleting a shopfloor instruction suggestion caused errors. The fix ensures that adding a new suggestion after a deleted one functions smoothly, preventing a traceback related to quality point management. This improves the reliability of the shopfloor instruction suggestion process.
Original PR description
**BUG:** Traceback when **suggesting** deleting a BOM step from the shopfoor. **STEPS TO REPRODUCE:** - Open a shopfloor MO (with PLM installed) -- Add a suggestion step (MO > cog> Update…
**BUG:** Traceback when **suggesting** deleting a BOM step from the shopfoor. **STEPS TO REPRODUCE:** - Open a shopfloor MO (with PLM installed) -- Add a suggestion step (MO > cog> Update instructions > Improvement Suggestion > Add a step). -- Add a second suggestion step after the first one. -- Delete the second suggestion step (MO > cog> Update instructions > Improvement Suggestion > Delete a step). -- Add a third suggest suggestion step after the second one we just suggested deleting. -- > Traceback **ORIGIN:** First, when adding the suggestions: - 2 Quality Check (QC) are created on the **new_bom_id** in `add_quality_check_from_tablet.save()` - 2 Quality Point (QP) are also created in `add_check_in_chain()`, (only in mrp_workorder_plm override) - The 2nd new QC is linked to previous QC in `_insert_in_chain` Secondly, when deleting the 2nd added suggestion (_on the same MO, as suggestions are linked to the new bom_id and wont appear on other MOs until ECO is validated_): - The QP of the second QC is deleted (but the QC itself is not deleted) here: https://github.com/odoo/enterprise/blob/f91b0c8c41f40a71cbea3cd4f5ccc6873af3c004/mrp_workorder_plm/wizard/propose_change.py#L72-L74 Finally, when adding a new suggestion after the one we just suggested deleting, in `_add_check_in_chain`, a traceback happens by trying to access the QP point we deleted in the resequencing part of `_add_check_in_chain` here: https://github.com/odoo/enterprise/blob/eb716c18944ec50c9c8c74a2888ed5f3032a7b08/mrp_workorder_plm/models/mrp_workorder.py#L62-L63 **FIX:** We accept that not all QCs must have QPs `[0]` -> `[:1]` (see note on another approach idea) changing ```diff - point = check.point_id if check.point_id.operation_id == operation else points.filtered(lambda p: p._get_sync_values() == check.point_id._get_sync_values())[0] + point = check.point_id if check.point_id.operation_id == operation else points.filtered(lambda p: p._get_sync_values() == check.point_id._get_sync_values())[:1] ``` **NOTES:** -1 Another fix could have been to delete the QC at the same time as the QP but I did not find any `remove_from_chain` function to safely remove the QC from the chain of QC. Along those lines we could rethink the sequencing / resequencing of QC and QP as the logic seems to differ between both. -2 Added some comments to remove the field and the line setting the `is_deleted` field in master as it was not used anywhere in the code (the color highlighting in the ECO is done with `<list decoration-danger="change_type=='remove'" ...>`) ticket #5180122 Forward-Port-Of: odoo/enterprise#101366
This update optimizes the speed of our website tests by caching the parsing of HTML snippets. Previously, each test repeatedly analyzed the same HTML, causing delays. This change significantly reduces test execution time, leading to faster feedback and a smoother development process.
Original PR description
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 simplifies the HTML Editor testing process by separating individual tests to avoid shared timeouts and removing overly complex helper functions. This change improves test reliability and reduces potential confusion within the development team.
Original PR description
Description of the issue/feature this PR addresses: I. Grouping multiple testEditor in a single test is bad practice because the timeout of it is then shared between the different testEditor calls rather than each having their own separate timers. This PR splits the calls of each testEditor to its own test. II. This PR removes helper functions used to create different types of tags. Instead of simplifying the code, these helpers introduced unnecessary complexity and confusion. task-5375867 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#240782 Forward-Port-Of: odoo/odoo#240345
This update resolves an issue where printer drivers encountered errors with incompatible USB devices. Specifically, it catches a value exception related to device language support, preventing the system from crashing when encountering unsupported printers. This enhancement improves the reliability of the IoT driver functionality.
Original PR description
This PR fixes the exception thrown by the usb devices incompatible with escpos code.
It fixes the following exception:
```
2025-12-22 14:49:59,724 1433 ERROR ? odoo.addons.iot_drivers.exception_logger: File "/home/pi/odoo/addons/iot_drivers/iot_ha
ndlers/drivers/printer_driver_L.py", line 42, in init
self._init_escpos(device)
2025-12-22 14:49:59,724 1433 ERROR ? odoo.addons.iot_drivers.exception_logger: ValueError: The device has no langid (permission issue, no string descriptors supported or device error)
```9 changes
New functionality added to Odoo
This update introduces basic localization support for Mauritania within the Odoo system. It includes translations for key financial reports and data formats, allowing Odoo to correctly handle transactions and reporting requirements specific to Mauritanian businesses. This expands Odoo's global reach and ensures compliance with local regulations.
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 Forward-Port-Of: odoo/odoo#237407 Forward-Port-Of: odoo/odoo#211906
This update adds key financial reports – Balance Sheet and Profit & Loss – to the Mauritanian localization for Odoo Enterprise. This expands reporting capabilities for businesses operating in Mauritania, allowing them to generate essential financial statements in the local language and currency.
Original PR description
Add the Balance Sheet and Profit & Loss to the Mauritanian localization. task-4236158 Forward-Port-Of: odoo/enterprise#86530
This update adds the ability to generate Peruvian 5th and 6th Inventory and Balance reports within the general ledger. These reports require specific data from account and company settings, and are created using direct SQL queries for efficiency, as they don't need a user interface.
Original PR description
Adding 'Inventory and Balance' export option to the Peruvian general ledger report, and fields required for these reports to account_account and res_company. Report lines are handled with direct SQL queries since no UI display is required for this one, and some elements needed are outside of the scope of the usual reports model. task-4057152 Forward-Port-Of: odoo/enterprise#89744
Enhancements to existing features
PayPal has requested an identifier be added to Odoo's payment processing to improve tracking of transactions originating from our platform. This change enhances PayPal's ability to monitor and manage transactions linked to Odoo, leading to better visibility and support. This is an internal improvement to streamline PayPal integration.
Original PR description
PayPal requested that we add an identifier so that they know which transactions are coming from Odoo for better trackability. task-5358321 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#239750 Forward-Port-Of: odoo/odoo#237336
Resolved issues and error corrections
A previous error prevented users from completing sign requests after a user was deleted. This fix addresses a technical issue where the system incorrectly handled missing user information when retrieving sign request items. The update ensures the system gracefully handles these scenarios, preventing errors and improving the sign request workflow.
Original PR description
Currently an error occurs when a user tries to click `Valid & Send Compeleted Document` as follows below: - Install the `sign` module with demo data - Log in as the `demo` user and send 2 sign requests to the `admin` user - Now log in as the `admin` user and delete the `demo`user - Go to the sing and open sign request that was sent by the `demo` user - Complete the sign and click on `Valid & Send Compeleted Document` This issue occurred while retrieving the suggested sign request items. The code was accessing the `create_uid` of those items, but because the user had been deleted, `create_uid` was set to False instead of containing a valid user ID and user name. This commit fixes the above issue by handling cases where `item['create_uid']` is False. When `item['create_uid']` is False, the code now safely returns `False` instead of attempting to access its index. sentry-7116433081 Forward-Port-Of: odoo/enterprise#102438
This update resolves an issue where user activity wasn't accurately tracked, causing the presence status to incorrectly remain 'away'. The fix allows the system to reliably detect user clicks, ensuring the presence status updates correctly and reflects user activity in real-time. This improves the accuracy of user presence data.
Original PR description
Before this PR, Elements that stopped event propagation (e.g., using event.stopPropagation()) prevented the global click listener from firing. As a result, user activity wasn't detected, and the presence status stayed "away" instead of switching back to "online". This PR fixes the issue by enabling event capturing on the global click listener (useCapture: true). With capture mode, the listener receives the event during the capture phase before any element can stop propagation. Bug:  task-[4892229](https://www.odoo.com/odoo/project/1519/tasks/4892229) Forward-Port-Of: odoo/odoo#238650
This update resolves an error that occurred when sending customer statements. The fix ensures the system correctly handles scenarios where a custom email template isn't used, preventing a technical issue and allowing users to reliably send statements. It now defaults to using the current user's email address.
Original PR description
Currently, an error occurs when a user sends a customer statement. **Steps to Reproduce ([Video](https://drive.google.com/file/d/1soOylzCVnNCNsWUBizeBQ9vfFlI5pzSP/view)):** - Install the…
Currently, an error occurs when a user sends a customer statement. **Steps to Reproduce ([Video](https://drive.google.com/file/d/1soOylzCVnNCNsWUBizeBQ9vfFlI5pzSP/view)):** - Install the `account_reports` module. - Go to `Invoicing` > `Customers` > `Customers`. - Switch to `List view`, select `a customer`, then click on `Actions` > `Open Customer Statements`. - Click `Send`, remove the `Email Template`, add a `subject`, and then click `Print & Send`. **Error:** `ValueError: Expected singleton: mail.template()` After [this commit], which checks whether the template has an email_from, when a user sends the customer statement and removes the email template, it still tries to access the template to fetch email_from for a particular customer [1]. If no email template is used, this results in an error [2] when going to extract the email_from. This commit ensures that email_from is taken from the email template if one is used; otherwise, it uses the current user's email address [3], which matches the default behavior. [this commit]: https://github.com/odoo/enterprise/commit/22c46e4f63e7b2dc0eee16fc807656cd4de21fb7 [1]- https://github.com/odoo/enterprise/blob/dc4d5633407ccc728d30de5ce2072a80c16b2766/account_reports/wizard/account_report_send.py#L246 [2]: https://github.com/odoo/odoo/blob/0dabb221225fba96c0e55779afadd9f12b369777/addons/mail/models/mail_render_mixin.py#L691-L693 [3]: https://github.com/odoo/odoo/blob/0dabb221225fba96c0e55779afadd9f12b369777/addons/mail/models/mail_thread.py#L2891-L2892 sentry-7106576491 Forward-Port-Of: odoo/enterprise#102219
This update streamlines the HTML Editor's testing process by separating individual tests and removing unnecessary helper functions. This change improves test reliability and reduces code complexity, ensuring a more stable and maintainable HTML Editor.
Original PR description
Description of the issue/feature this PR addresses: I. Grouping multiple testEditor in a single test is bad practice because the timeout of it is then shared between the different testEditor calls rather than each having their own separate timers. This PR splits the calls of each testEditor to its own test. II. This PR removes helper functions used to create different types of tags. Instead of simplifying the code, these helpers introduced unnecessary complexity and confusion. task-5375867 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#240707 Forward-Port-Of: odoo/odoo#240345
This update prevents guest users from seeing the unpin button in the PinnedMessagesPanel, resolving a confusing user experience. Previously, guests could interact with a feature that was blocked by the server. Now, the UI accurately reflects guest user permissions, providing a smoother and more reliable experience.
Original PR description
**Description of the issue/feature this PR addresses:** ---------------------------------------------- Currently, guest users in PinnedMessagesPanel can see the unpin button on pinned messages, but…
**Description of the issue/feature this PR addresses:** ---------------------------------------------- Currently, guest users in PinnedMessagesPanel can see the unpin button on pinned messages, but the server correctly rejects their unpin requests. This creates confusion and a poor user experience where external users see functionality that doesn't work for them. **Current behavior before PR:** ---------------------------------------------- - Guest users see the unpin button on pinned messages - Clicking the unpin button results in server rejection - UI shows functionality that guest users cannot actually use **Desired behavior after PR is merged:** ---------------------------------------------- - Guest users cannot see the unpin button on pinned messages - Internal users continue to have full pin/unpin functionality - UI accurately reflects user permissions and capabilities - Better user experience with appropriate access control Task-5033295 ---------------------------------------------- I confirm I have signed the CLA and read the PR guidelines at https://www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#240640 Forward-Port-Of: odoo/odoo#229211
4 changes
New functionality added to Odoo
This update adds the ability to generate Peruvian 5th and 6th Inventory and Balance reports as part of the general ledger. These reports require specific data from account and company settings, and are created using direct SQL queries for efficiency, as they don't need a user interface.
Original PR description
Adding 'Inventory and Balance' export option to the Peruvian general ledger report, and fields required for these reports to account_account and res_company. Report lines are handled with direct SQL queries since no UI display is required for this one, and some elements needed are outside of the scope of the usual reports model. task-4057152 Forward-Port-Of: odoo/enterprise#89744
Resolved issues and error corrections
A bug was preventing users from completing sign requests after a user was deleted. The fix ensures the system handles cases where user information is missing, preventing errors and improving the sign request workflow. This ensures a smoother experience for users managing sign requests.
Original PR description
Currently an error occurs when a user tries to click `Valid & Send Compeleted Document` as follows below: - Install the `sign` module with demo data - Log in as the `demo` user and send 2 sign requests to the `admin` user - Now log in as the `admin` user and delete the `demo`user - Go to the sing and open sign request that was sent by the `demo` user - Complete the sign and click on `Valid & Send Compeleted Document` This issue occurred while retrieving the suggested sign request items. The code was accessing the `create_uid` of those items, but because the user had been deleted, `create_uid` was set to False instead of containing a valid user ID and user name. This commit fixes the above issue by handling cases where `item['create_uid']` is False. When `item['create_uid']` is False, the code now safely returns `False` instead of attempting to access its index. sentry-7116433081 Forward-Port-Of: odoo/enterprise#102438
This update fixes an issue where product attributes weren't shown on order lines. The change ensures that all product attribute names are now correctly displayed, providing a more complete view of the order details for users. This improves order clarity and accuracy.
Original PR description
Before this commit: --- - When an order was placed with product attributes, the attribute details were not shown on the order line. After this commit: --- - The product attribute names are now correctly displayed on the order line. Cause: --- - Until saas-18.2, the attribute string was built using the product’s display name and `attribute_line_ids`, which only included never type PTAV entries. - Starting from saas-18.2, the attribute string is constructed solely from `attribute_line_ids`, which now includes all PTAVs. task-5244869
This update fixes a technical issue where unused sign item roles were accumulating in the database, preventing them from being removed. A temporary 'dummy' sign item is now created for each new role, allowing the system to automatically clean up these orphaned roles and maintain database efficiency. This ensures the sign item management functionality remains stable and performs optimally.
Original PR description
Fixes an issue where sign item roles were created but never deleted if they had no sign items linked to them. These orphaned roles were no longer shown in the app and remained in the database indefinitely. To address this, a dummy sign item is now created for each new sign item role. This allows the autovacuum logic to detect and automatically clean up unused roles and dummy items. Without this dummy item, it would be impossible to determine if a role is truly orphaned. task-4971485
10 changes
New functionality added to Odoo
This update introduces a new model for managing VoIP extensions within the Odoo Enterprise system. It includes access controls, sample data for demonstration, and user-friendly views for easy configuration. This enhancement improves the flexibility and usability of VoIP extension management.
Original PR description
Introduce the voip.extension model with access rights, demo data, and list/form views, and wire it into the module init. task-5343969
This update adds the ability to generate Peruvian 5th and 6th Inventory and Balance reports within the general ledger. These reports require specific data from account and company settings, and are generated using direct SQL queries for efficiency. This enhancement supports Peruvian accounting requirements.
Original PR description
Adding 'Inventory and Balance' export option to the Peruvian general ledger report, and fields required for these reports to account_account and res_company. Report lines are handled with direct SQL queries since no UI display is required for this one, and some elements needed are outside of the scope of the usual reports model. task-4057152 Forward-Port-Of: odoo/enterprise#89744
Resolved issues and error corrections
This update resolves an issue where website subscription tours weren't working correctly after changes to the search bar. The fix adjusts the tour selectors to account for updated search results, ensuring tours now function as expected for users. This improves the overall user experience for subscription sign-ups.
Original PR description
Purpose: - Adapt tours to work without :first-style selectors, since our changes altered the number of search results and the original selectors can no longer locate the expected elements. community: https://github.com/odoo/odoo/pull/236245 task-5264301
This update resolves an issue where a technical error (traceback) occurred when generating tax reports for companies not based in Belgium. The fix ensures the system correctly handles VAT numbers from other countries, preventing errors and improving the reliability of tax reporting. This ensures accurate tax calculations for all company types.
Original PR description
**Steps to reproduce:** 1. Go to Companies and set a non-BE VAT on the current company, e.g., `US12345678` 2. Go to Accounting → Configuration → Fiscal Positions. 3. Create a new Fiscal Position and set the country to Belgium. 4. Enter a valid Foreign Tax ID, e.g.,` BE0477472701`, and save. 5. Create the taxes. **Issue:** A traceback is raised: `ValueError: invalid literal for int() with base 10: 'US12345678'` **Cause:** This happens because `_be_company_vat_communication` attempts to parse the company's VAT number even when the company does not belong to BE, resulting in invalid VAT formats such as "USxxxxxxx". **Solution:** Return an empty structured communication unless: - the VAT is valid, and - the detected country code is BE, and - the fiscal country is Belgium. This prevents parsing foreign or invalid VATs and avoids the traceback during foreign tax generation. **opw-5368016** Forward-Port-Of: odoo/enterprise#101648
This update resolves a problem preventing a demo tour from running correctly. The issue stemmed from a duplicate job entry in the demo data, causing incorrect matching. Additionally, a minor correction was made to a job name to ensure proper tour execution.
Original PR description
- fixing tour `hr_contract_salary_tour_sign_again`which was failing with demo data because another job was installed in the demo data with name Experienced Developer so it was matching with it instead of the correct job position - note that the job is renamed from `Experienced Developer (BE)` to `Experienced Developer BE` because the closing bracket wasn't written correctly (framework issue most likely) so it was written as `Experienced Developer (BE` task-id: 5413364
This update fixes a crash that occurred when generating work entries for employees who don't have a resource calendar (fully flexible). The fix ensures accurate unavailability intervals are created, preventing errors when opening work entry or payroll modules. This improves stability and functionality for all employee types.
Original PR description
Steps to reproduce: - Install hr_work_entry - create an active employee with a running contract and no resource calendar(fully flexible) - try to open work entries/payroll - you get a traceback because of `_gantt_unavailability` Current behavior: - when the employee is flexible, the unavailability is set to an empty interval without accessing the calendar(that doesn't exist) - added `test_gantt_unavailability` to check if the unavailability intervals of employees are generated correctly task-id: 5408752
This update resolves an issue where document previews were not updating correctly after renaming documents. Previously, the preview displayed the old attachment name even after a successful rename. This change ensures that document previews always reflect the latest document name, improving data consistency and user experience.
Original PR description
BUG 1: --------- **steps to reproduce**: 1. Install documents 2. Open any document 3. Go to Action > Rename 4. Rename the document 5. Preview it and read the name showed there **issue**: When…
BUG 1:
---------
**steps to reproduce**:
1. Install documents
2. Open any document
3. Go to Action > Rename
4. Rename the document
5. Preview it and read the name showed there
**issue**:
When previewing the document, it still shows the old attachment name.
**observation**:
When renaming a document, only the document name was updated. The attachment name remained unchanged, which caused inconsistencies:
1. In the All Records section, the document name is displayed correctly. https://github.com/odoo/enterprise/blob/459e8ddaf6f67a556d35bf00e0fbb68eb1500a94/documents/views/documents_document_views.xml#L130
2. But in the Preview, the old attachment name was still shown, as it is taken from the attachment:
https://github.com/odoo/enterprise/blob/459e8ddaf6f67a556d35bf00e0fbb68eb1500a94/documents/static/src/views/hooks.js#L373-L383
**solution**:
Use the document name when previewing it
BUG 2:
---------
**steps to reproduce**:
1. Install Documents.
2. Open any document.
3. Rename it via the chatter.
4. Try renaming it again via the details panel.
**issue**:
After renaming a document twice through the details panel, the preview still displayed the old document name.
**cause**:
On the first rename, the [insert](https://github.com/odoo/enterprise/blob/691115d8a0b31322f64d35d82dc8c9ddbfcd39b0/documents/static/src/core/document_service.js#L96-L129)) method creates a new [store.Document](https://github.com/odoo/enterprise/blob/691115d8a0b31322f64d35d82dc8c9ddbfcd39b0/documents/static/src/views/hooks.js#L367-L393) record with the updated attachment name. However, The write method (used by chatter) skips reloading the record and linked attachment data on the second rename.
Unlike the Rename button, which uses web_save (and triggers a record reload via web_read), the chatter directly calls write without refreshing the attachment.
**Solution**:
Ensure the preview uses the document name from the document record, keeping it consistent after multiple renames via the details panel.
**Example:** Try to rename a "Invoice.pdf" document to "Invoice_rename.pdf"
<details>
<summary>Click here to see the results:</summary>
Before:
<img src="https://github.com/user-attachments/assets/563b7fb9-709c-4651-8492-032a7f353730"/>
After:
<img src="https://github.com/user-attachments/assets/6fc6bdfe-dd1e-4f3c-aaf7-821c44fd135d"/>
</details>
opw-5065433
Forward-Port-Of: odoo/enterprise#101919
Forward-Port-Of: odoo/enterprise#95111This update resolves an issue where users were encountering errors when creating reports in web_studio. Specifically, it prevents the generation of invalid field nodes within the report templates, ensuring reports render correctly. This improves the overall reliability and usability of the report design tool.
Original PR description
cf commit Forward-Port-Of: odoo/enterprise#102311 Forward-Port-Of: odoo/enterprise#99385
This update clarifies the Odoo Enterprise interface by renaming a menu item to 'Unrealized Currencies'. Previously, duplicate labels caused confusion, and this change ensures users are directed to the correct section for managing unrealized currency positions. This improves clarity and usability.
Original PR description
Previously, there were two menu items named `Currencies`: one under Review and another under Configuration, which caused confusion. The one under Review was incorrectly labeled, it should have been `Unrealized Currencies`. This **PR** renames the menu item under Review to `Unrealized Currencies` to reflect its actual purpose. **task**-5169637 Forward-Port-Of: odoo/enterprise#97356
This update resolves a problem with the layout of Chile's invoice PDF reports. Previously, the PDF displayed incorrectly with text wrapping vertically and overflowing. The fix ensures proper alignment by adding a width constraint to the report's layout, improving readability and preventing formatting errors.
Original PR description
Steps to reproduce: 1. Install l10n_cl_edi. 2. Create an invoice with a customer having a Chile address. 3. Print "Invoice PDF copy (Chile)". Issue: The PDF layout is broken: some text is rendered vertically and the content overflows across multiple pages. Cause: The footer right column row did not have an explicit width, causing wkhtmltopdf to shrink the container and wrap text letter by letter. Fix: Set w-100 on the inner row to stabilize the layout and prevent vertical text rendering. Before Fix : <img width="408" height="313" alt="image" src="https://github.com/user-attachments/assets/1d61412d-cfd3-48df-a4d4-eabd10df4865" /> After Fix: <img width="409" height="320" alt="image" src="https://github.com/user-attachments/assets/3a098227-7e43-44f0-9266-b4b0023f382c" /> opw-5348151 Forward-Port-Of: odoo/enterprise#102111
5 changes
Resolved issues and error corrections
A previous error prevented users from completing sign requests after a user was deleted. This fix addresses a technical issue where the system incorrectly handled missing user information when retrieving suggested sign requests. By safely handling cases where user IDs are missing, the system now reliably allows users to complete sign requests without errors.
Original PR description
Currently an error occurs when a user tries to click `Valid & Send Compeleted Document` as follows below: - Install the `sign` module with demo data - Log in as the `demo` user and send 2 sign requests to the `admin` user - Now log in as the `admin` user and delete the `demo`user - Go to the sing and open sign request that was sent by the `demo` user - Complete the sign and click on `Valid & Send Compeleted Document` This issue occurred while retrieving the suggested sign request items. The code was accessing the `create_uid` of those items, but because the user had been deleted, `create_uid` was set to False instead of containing a valid user ID and user name. This commit fixes the above issue by handling cases where `item['create_uid']` is False. When `item['create_uid']` is False, the code now safely returns `False` instead of attempting to access its index. sentry-7116433081 Forward-Port-Of: odoo/enterprise#102438
This update fixes an issue where sharing a document link within the list view didn't automatically open the preview. Now, the preview opens in the list view, similar to the kanban view, ensuring a consistent and user-friendly experience when accessing shared documents. This improves usability for users who primarily view documents in the list format.
Original PR description
Bug === If the user has the list view as his default view, if we share him a document, the preview is not opened. After this commit, the preview is opened like in the kanban view, and the document is selected. Task-5361212 Forward-Port-Of: odoo/enterprise#102598 Forward-Port-Of: odoo/enterprise#100716
This update clarifies the labeling of a key reporting menu item within the Enterprise module. Previously, duplicate menu names caused confusion. The 'Currencies' menu item under 'Review' has been renamed to 'Unrealized Currencies' to accurately reflect its function and improve user experience.
Original PR description
Previously, there were two menu items named `Currencies`: one under Review and another under Configuration, which caused confusion. The one under Review was incorrectly labeled, it should have been `Unrealized Currencies`. This **PR** renames the menu item under Review to `Unrealized Currencies` to reflect its actual purpose. **task**-5169637
This update fixes an issue where sharing a deleted spreadsheet caused errors. It now correctly identifies if a spreadsheet is archived and hides the 'Share' options when it's in the Trash, providing a cleaner and more intuitive user experience. This ensures users can't accidentally share deleted documents.
Original PR description
## Description This PR fixes a traceback when sharing a spreadsheet that is in Trash. It exposes `is_archived` in the spreadsheet metadata and adds an `env.isArchived()` getter on the environment. It hides the topbar "Share" button and the "Share"/"Freeze and share" menu entries when the document is in Trash. Task: [5166945](https://www.odoo.com/odoo/project/2328/tasks/5166945)
This update resolves a technical issue where a checkbox in the Odoo chart side panel was present but not functioning correctly. The checkbox for 'Use compact format' was implemented, but did not affect chart rendering. This fix ensures that users can now consistently utilize the compact format option for their charts.
Original PR description
The checkbox to toggle the `Use compact format` option in the chart side panel was present for odoo charts, but did nothing. Task: [5405064](https://www.odoo.com/web#id=5405064&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form)
6 changes
New functionality added to Odoo
This update adds the ability to generate Peruvian 5th and 6th Inventory and Balance reports as part of the general ledger. These reports now include necessary data for Peruvian accounting standards, leveraging direct SQL queries for efficiency and covering data not typically found in standard reports.
Original PR description
Adding 'Inventory and Balance' export option to the Peruvian general ledger report, and fields required for these reports to account_account and res_company. Report lines are handled with direct SQL queries since no UI display is required for this one, and some elements needed are outside of the scope of the usual reports model. task-4057152
Enhancements to existing features
This update clarifies the 'Overdue Customer Invoices' filter within the account follow-up reports. This ensures users can more easily identify and manage overdue invoices, leading to better cash flow tracking and improved customer relations. The change is an improvement to reporting functionality.
Original PR description
opw-5232434
Resolved issues and error corrections
This update resolves an issue where user activity wasn't accurately tracked, causing the system to incorrectly display users as 'away'. By enabling event capturing, the system now reliably detects user clicks and updates their presence status in real-time, ensuring accurate user activity monitoring.
Original PR description
Before this PR, Elements that stopped event propagation (e.g., using event.stopPropagation()) prevented the global click listener from firing. As a result, user activity wasn't detected, and the presence status stayed "away" instead of switching back to "online". This PR fixes the issue by enabling event capturing on the global click listener (useCapture: true). With capture mode, the listener receives the event during the capture phase before any element can stop propagation. Bug:  task-[4892229](https://www.odoo.com/odoo/project/1519/tasks/4892229) Forward-Port-Of: odoo/odoo#238650
This update resolves an issue where Documents actions weren't appearing when a secondary language was active but deactivated. The fix ensures that only the currently active language is used when embedding actions, preventing errors and guaranteeing a consistent user experience across all supported languages. This improves the reliability of the Documents app.
Original PR description
Steps to reproduce: 1. Install `documents` 2. Activate a second language (e.g., Arabic `ar_001`). 3. Deactivate the Arabic language by active toggle. 3. Go to the Documents app and open a folder 4. Set the 'Action on Select' (cog menu) to embed a server action. Issue: - Action is not selected. Cause: - The method `action_folder_embed_action` uses `_get_stored_translations`, which returns translations for inactive languages as well. This causes an `Invalid language code` error Solution: - Filter the languages retrieved from the DB to ensure only the currently active languages are used. opw-5380645
This update resolves a visual issue where the Sales 3 menu on the website would overflow when multiple menu items were added. The fix prevents the parent element from overflowing, ensuring the menu displays correctly regardless of the number of items. This improves the user experience for customers using the Sales 3 template.
Original PR description
Scenario: - edit the website navbar and set template "Sales - 3" (penultimate) - edit menu to add several menu items that will be larger than possible Result: the menu overflows Cause: a parent element of the menu doesn't overflow, so when computing autoHideMenu where we compute what overflow the list of menu, nothing overflows it since the overflow already happened in the limitless parent element. Fix: using CSS to prevent the parent from overflowing. opw-5178552 __pr note:__ this is happening in 17.0 but I'm targeting 18.0 since the ticket is in 18.0 and code is the same in 18.0 up to master.
This update fixes a visual inconsistency in the Point of Sale (POS) system. Previously, product images were always displayed in combo product configurations, regardless of the user's settings. Now, the combo product configurator correctly respects product image visibility settings, ensuring a consistent and professional user experience across all product types.
Original PR description
Before this commit: ==================== In POS, when product images were configured to be hidden, the setting was correctly applied to normal products. However, in the combo product configurator, product images were still displayed, causing inconsistency with the configured behavior. After this commit: ====================== The combo product configurator now respects the product image visibility configuration, ensuring consistent behavior across all product types in the POS interface. Task-5163955
3 changes
Resolved issues and error corrections
This update corrects a minor inconsistency in how the report editor handles its layout. Previously, the system was incorrectly reading one variable instead of another, which could lead to unexpected behavior. This fix ensures the report editor functions reliably and consistently.
Original PR description
Issue: getQwebVariables returns isEditingFooterHeader, but isInHeaderFooter was read from it Cause of the issue: e2eed2b71647de29905bcc1a40c3c540d2a87e47
This update allows businesses operating in Mexico to customize the sequence used for generating GI CFDI invoices within branch offices. Previously, the system always prioritized the root company's sequence, which is now configurable, ensuring accurate invoice numbering and compliance with Mexican tax regulations. This change addresses a specific requirement for branch operations.
Original PR description
Add a way to set a custom prefix for GI sequences on the settings for MX. Get this sequence first on the branch before looking to the one on root company. opw-5096687
This update fixes a misleading error message displayed when deleting sale orders with associated bookings. Previously, users received an incorrect instruction to reduce order quantities. Now, the system correctly informs users they must cancel the order before deletion, aligning with expected business processes. This ensures a smoother user experience and prevents confusion.
Original PR description
Problem: When the module is installed and there are bookings with answers linked to sale orders, the order lines are deleted before the order, causing the wrong error message to be displayed.…
Problem: When the module is installed and there are bookings with answers linked to sale orders, the order lines are deleted before the order, causing the wrong error message to be displayed. Solution: The order lines should not be manually unlinked from the sale order. It should be the bookings linked to the order lines that should be unlinked before the sale order deletion. Expected Behavior: When deleting a sale order whose lines have bookings, the following error message shoud be displayed: "You can not delete a sent quotation or a confirmed sales order. You must first cancel it." Current Behavior: When deleting a sale order whose lines have bookings, the following error message is displayed: "Once a sales order is confirmed, you can't remove one of its lines (we need to track if something gets invoiced or delivered). Set the quantity to 0 instead." Steps to reproduce on Runbot: 1. Install Appointments and ecommerce 2. For the dental care appointment, edit and enable "Up-front payment" 3. On the website, book an appointment for dental care and proceed to payment 4. Delete the sale order with the booking 5. Observe the incorrect error message being displayed opw-5092349