Tuesday, December 23, 2025
11 changes · master
Resolved issues and error corrections
This update resolves a bug that caused PoS sessions to fail when an order line had a 100% discount. The fix prevents a division-by-zero error, ensuring smooth order processing and avoiding potential disruptions for users applying discounts.
Original PR description
Before this commit, when an order line had a 100% discount, a division by zero error occurred when closing the PoS session. opw-5240429 Forward-Port-Of: odoo/enterprise#98869
This update fixes an issue where sharing archived spreadsheets caused errors. It now correctly identifies and hides the 'Share' button and related options when a spreadsheet is in the Trash, ensuring a smoother user experience. This prevents confusion and improves data management.
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#102687 Forward-Port-Of: odoo/enterprise#98984
This update resolves a technical error that was appearing when users dismissed or opened timesheets, causing a traceback. The issue stemmed from outdated component settings. The fix removes unnecessary configurations and corrects the component's settings for smoother operation.
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 Forward-Port-Of: odoo/enterprise#102680
This update streamlines the process of adding goals to employee appraisals. Previously, the system would repeatedly ask users to select the employee, even though the employee was already identified. Now, goals are automatically created for the correct employee, improving efficiency and reducing user friction.
Original PR description
When adding goals from an employee appraisal, Appraisal of an employee > Goals > Open Library > Select Goals > Continue On the next screen, you need to select the employee, but you come from an employee appraisal! The employee was already known but the flow still asked to re-select an employee again. This improvement passes the correct employee context so goals are directly created for the current employee. task-[5420664](https://www.odoo.com/odoo/project/1251/tasks/5420664)
This update allows businesses operating in Mexico (MX) to customize the sequence used for generating GI CFDI invoices for their branch offices. Previously, the system always used a standard sequence, but now branch offices can define a unique prefix, ensuring invoices are correctly identified and processed. This resolves an issue where branch-specific GI CFDI sequences weren't being properly utilized.
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 Forward-Port-Of: odoo/enterprise#100017
A recent test failure in the MRP work order module has been resolved. The issue stemmed from an incorrect count of analytic accounts during test setup, triggered by a specific employee calendar configuration. This fix ensures the test now passes and maintains the stability of the MRP work order functionality.
Original PR description
fixing runbot error https://runbot.odoo.com/odoo/runbot.build.error/234639 on test test_mrp_analytic_account_employee_from_widget introduced by this PR https://github.com/odoo/enterprise/pull/85517
**cause of the error:**
Because there is a resource.calendar.leave without calendar_id,
without resource_id and at a date after today :
during the setupclass, when the employee is created,
_create_future_public_holidays_timesheets() creates an account.analytic.line.
So at the end of the test ,
self.env["account.analytic.line"].search([('employee_id', '=', self.employee1.id)])
returns 2 records instead of 1.
runbot-234639
Forward-Port-Of: odoo/enterprise#102338
Forward-Port-Of: odoo/enterprise#102282A bug was preventing users from completing sign requests after a user account was deleted. This fix handles the scenario where a deleted user's information is still referenced, preventing an error when attempting to validate and send the completed document. 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 resolves an issue where subfolders within the Documents section were not appearing in the search panel when accessed from other applications. Previously, users would see the full folder structure, but the search functionality wouldn't reflect it. This change ensures a consistent and complete view of documents for all users.
Original PR description
...when coming from another app. Reproduce: 1. Go to a fleet vehicle record and open its 'Documents' stat button. 2. You end up in the Fleet folder, where you see subfolders as kanban cards, but they are not in the search panel. Task-5272030 Forward-Port-Of: odoo/enterprise#99688
This update prevents appraisal feedback from being reset to default templates when an appraisal is reopened. Previously, reopening the appraisal caused all employee and manager feedback to be cleared. The fix ensures that previously entered feedback is preserved, streamlining the appraisal process and reducing the need for users to re-enter information.
Original PR description
Steps to reproduce: 1- Create new appraisal 2- Confirm appraisal 3- Edit employee and manager feedbacks 4- Set the final rating for the appraisal 5- Mark appraisal as done 6- Reopen appraisal Issue:…
Steps to reproduce: 1- Create new appraisal 2- Confirm appraisal 3- Edit employee and manager feedbacks 4- Set the final rating for the appraisal 5- Mark appraisal as done 6- Reopen appraisal Issue: The feedbacks of both the employee and manager are reset to the default template. They should be unchanged. Cause: Both the reopen and reset buttons used to call the the same action "action_back" which would set the state of the appraisal to "1_new", there is a compute that is triggered by the change in state which updates the appraisal's department_id which in turn triggers two other computes for the employee and manager feedbacks, those computes have a condition that if the state of the appraisal is '1_new', then the feedbacks should be reset to the templates. Fix: Make each button call its own action and make the reopen action set the state to '2_pending' instead of '1_new'. Furthermore make the reset action also reset the final rating for the appraisal. Task-5411661 Forward-Port-Of: odoo/enterprise#102021
This update fixes a bug where product attributes weren't displayed on order lines. The change ensures that all product attribute details are now correctly shown, improving order clarity and accuracy for users. This was caused by a change in how attribute data was constructed within the system.
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 Forward-Port-Of: odoo/enterprise#102737 Forward-Port-Of: odoo/enterprise#99007
This update aligns the positions of the WhatsApp 'view-contact' button and the Live Chat 'livechat-info' panel within the discuss app. This change improves agent workflow by ensuring both buttons are consistently displayed at the top, enhancing usability and a better user experience. It addresses a previous inconsistency that impacted agent efficiency.
Original PR description
The thread action 'view-contact' is somewhat like 'livechat-info', in that this action redirects to relevant info to the whatsapp user and livechat-info is a panel with all info on the visitor and…
The thread action 'view-contact' is somewhat like 'livechat-info', in that this action redirects to relevant info to the whatsapp user and livechat-info is a panel with all info on the visitor and more. The position of both buttons were the total opposite in discuss app: - 'livechat-info' was put as the 1st panel one before panels - 'view-contact' was dead last. There are differences, with 'livechat-info' being a panel and 'view-contact' a redirect button. However, each are important buttons for the type of conversation that justify them being in their own group right now. Since the buttons are mutually exclusive by the channel type, there's reason to have them share the same position. This commit moves the position of 'view-contact' in discuss header thread actions to be the same as 'livechat-info', that is as the 1st action in the list. This makes its position consistent with livechat info, thus agents of live chat and whatsapp would appreciate the 2 button placement being consistent. Task-5431313 <img width="1760" height="231" alt="Screenshot 2025-12-18 at 21 02 24" src="https://github.com/user-attachments/assets/ee2baf91-0d9a-49ca-91ac-a7781b33e57b" /> Forward-Port-Of: odoo/enterprise#102479