Wednesday, April 8, 2026
128 changes
4 changes
Resolved issues and error corrections
This update corrects a technical issue that prevented users from accessing the timesheet assistant. A duplicate file was identified and removed during the update process, resolving an error related to duplicate keys within the configuration. This ensures a smoother experience for users managing their timesheets.
Original PR description
In PR: https://github.com/odoo/enterprise/pull/108360/changes `aw_local_config.js` was replaced by `frequency_viewer_local_config.js` but in the Forward from saas-19.1 to saas-19.2, both files were maintained https://github.com/odoo/enterprise/commit/3ced9cf68affd973c570e92627361cd0db8eb518
This update resolves an issue preventing the download of Intrastat reports for businesses using commas as decimal separators instead of periods. The fix also addresses a previous error related to product weights, improving overall report generation reliability. A clearer error message has been added to assist users.
Original PR description
Before this commit, in 19.0+, languages that use commas instead of periods for decimals could not download the intrastat report. Simply attempting to change a string to a float was not enough. Also, when a product had a NoneType weight assigned to it another trace back would occur. This also adds a more descriptive and helpful error message. opw-6026730 Forward-Port-Of: odoo/enterprise#112627
This update fixes how default customer partners are assigned when creating orders in our Point of Sale (POS) system for specific countries (Chile, Colombia, Ecuador, and Guatemala). The change centralizes partner assignment, ensuring more consistent and accurate order creation across these localized versions of Odoo Enterprise. This improves the reliability of POS transactions.
Original PR description
Replace the `createNewOrder()` override with `getDefaultPartnerId()` in l10n_cl_edi_pos, l10n_co_edi_pos, l10n_ec_edi_pos and l10n_gt_edi_pos. The default partner assignment is now handled centrally in `point_of_sale`'s `createNewOrder()`. opw-6077656 Forward-Port-Of: odoo/enterprise#112467
This update adds a required field to Milestone actions within Odoo to ensure database upgrades run smoothly. Specifically, it addresses a technical constraint that prevents both an action ID and a Python method from being defined simultaneously. This change is a necessary maintenance update to maintain system stability.
Original PR description
Add an empty `python_method` field to the Milestones embedded actions. This is necessary to satisfy the `_check_only_one_action_defined` constraint during database upgrades. The `ir.embedded.actions` model enforces an XOR constraint between `action_id` and `python_method`, preventing both fields from being set simultaneously. Related PR: https://github.com/odoo/odoo/pull/254102 task-5993183 Forward-Port-Of: odoo/odoo#254106
2 changes
Resolved issues and error corrections
This update resolves an issue preventing the correct generation of Intrastat reports when using French language settings that utilize commas as decimal separators. The fix also addresses a previous error related to product weights, ensuring smoother report processing. This improvement enhances the reliability of Intrastat reporting for French-speaking users.
Original PR description
Before this commit, in 19.0+, languages that use commas instead of periods for decimals could not download the intrastat report. Simply attempting to change a string to a float was not enough. Also, when a product had a NoneType weight assigned to it another trace back would occur. This also adds a more descriptive and helpful error message. opw-6026730 Forward-Port-Of: odoo/enterprise#112627
1 change
Resolved issues and error corrections
This update fixes an issue where the Libro Giornale (IT) PDF report would break its layout when an account with a long name was used. By adding a CSS class, the column width is now properly controlled, preventing excessive expansion and ensuring a clean, readable report. This improves the user experience for generating financial reports.
Original PR description
When generating the Libro Giornale (IT) PDF report with an account that has a very long name, the column expands excessively and break the layout. Steps to reproduce: - With an IT company setup - Have an account with a very long name - Create an invoice using the account - Open Accounting / Reporting / Audit Reports / Journal Audit - Select variant "Libro Giornale (IT)" - Print PDF Issue: The long account name makes the column excessively large. As a result, the font shrinks to fit the page width, leaving wide gaps between lines. **before patch** <img width="794" height="493" alt="screenshot_047" src="https://github.com/user-attachments/assets/6faa5b57-9c60-41cb-9200-003a50019180" /> **after patch** <img width="793" height="553" alt="screenshot_046" src="https://github.com/user-attachments/assets/e97c8948-410b-4201-83c3-04173220d9ce" /> opw-5457103 Forward-Port-Of: odoo/enterprise#112743
5 changes
Resolved issues and error corrections
This update ensures that the milestone list view, regardless of whether it's accessed from the Kanban or top bar, displays all relevant sales-related information like 'Quantity (%)'. Previously, the top bar action used a simplified view, leading to incomplete data. This change standardizes the view for a more complete and accurate representation of project milestones.
Original PR description
Steps to reproduce: - 1. Install the sale_project module. 2. Open a project and ensure it is billable. 3. Compare the view opened from the "Milestones" link in the Kanban view with the view opened from the "Milestones" top bar action. Issue: - The milestone list view opened from the top bar action does not display sales-related fields (e.g., "Quantity (%)"). Cause: - The Kanban view calls the `action_get_list_view` python method, which is overridden in sale_project to add a custom list view including sales-related fields. The top bar action was using a static XML action, bypassing this python logic. Fix: - Update the Milestones embedded actions to call the `action_get_list_view` python method instead of using a static XML action, ensuring top bar uses the same view as others. task-5993183
1 change
Resolved issues and error corrections
This update fixes an issue where the Libro Giornale (IT) PDF report would break its layout when an account with a long name was used. The change adds a CSS class to manage column width, preventing excessive expansion and ensuring a clean, readable report. This improves the user experience for IT companies generating these reports.
Original PR description
When generating the Libro Giornale (IT) PDF report with an account that has a very long name, the column expands excessively and break the layout. Steps to reproduce: - With an IT company setup - Have an account with a very long name - Create an invoice using the account - Open Accounting / Reporting / Audit Reports / Journal Audit - Select variant "Libro Giornale (IT)" - Print PDF Issue: The long account name makes the column excessively large. As a result, the font shrinks to fit the page width, leaving wide gaps between lines. **before patch** <img width="794" height="493" alt="screenshot_047" src="https://github.com/user-attachments/assets/6faa5b57-9c60-41cb-9200-003a50019180" /> **after patch** <img width="793" height="553" alt="screenshot_046" src="https://github.com/user-attachments/assets/e97c8948-410b-4201-83c3-04173220d9ce" /> opw-5457103 Forward-Port-Of: odoo/enterprise#112743
3 changes
Resolved issues and error corrections
This update fixes an issue related to how default customer partners are assigned when creating orders in Odoo Point of Sale for specific countries (Chile, Colombia, Ecuador, and Guatemala). The change centralizes partner assignment, ensuring more consistent order creation across these localized versions. This improves order processing reliability.
Original PR description
Replace the `createNewOrder()` override with `getDefaultPartnerId()` in l10n_cl_edi_pos, l10n_co_edi_pos, l10n_ec_edi_pos and l10n_gt_edi_pos. The default partner assignment is now handled centrally in `point_of_sale`'s `createNewOrder()`. opw-6077656
6 changes
Resolved issues and error corrections
This update resolves an issue preventing non-stock users from duplicating helpdesk tickets with associated sales. The fix sets the product ID to 'false' during duplication, allowing users without stock access to create copies of tickets. This improves usability for all users.
Original PR description
Steps to reproduce: - Install helpdesk_sale_timesheet. - Create a Helpdesk Ticket and set its sale_line_id. - Log in as a user without stock.group_stock_user access. - Try to duplicate the ticket. Issue: Duplicating a ticket raises an AccessError because the user lacks stock rights required when copying the product_id. Fix: Set `product_id` to False during duplication for non-stock users. Reference: https://github.com/odoo/enterprise/pull/9100 task-5356318
3 changes
Resolved issues and error corrections
This update resolves an error that occurred when removing products from POS orders, specifically when a product lacked a POS category. The fix prevents a program crash (IndexError) that could disrupt order cancellation processes. This ensures smoother and more reliable order management within the POS system.
Original PR description
When a product is removed from a POS order, _process_preparation_changes sorts the preparation display lines by their current stage sequence to determine cancellation priority. This relies on `order_stage_ids[-1]`, which raises an IndexError when a preparation display order has no stage assigned. Steps to reproduce: 1. Create a preparation display with at least one category filter. 2. Add a product to the POS with no POS category assigned. 3. Add that product to an order and send it. 4. Remove the product from the order and proceed to payment. 5. → IndexError: tuple index out of range opw-6089731
This update fixes how default customer partners are assigned when creating orders in our Point of Sale (POS) system for specific countries (Chile, Colombia, Ecuador, and Guatemala). The change centralizes partner assignment, ensuring consistent and accurate order creation across these localized versions. This improves order processing reliability and data accuracy.
Original PR description
Replace the `createNewOrder()` override with `getDefaultPartnerId()` in l10n_cl_edi_pos, l10n_co_edi_pos, l10n_ec_edi_pos and l10n_gt_edi_pos. The default partner assignment is now handled centrally in `point_of_sale`'s `createNewOrder()`. opw-6077656 Forward-Port-Of: odoo/enterprise#112467
This update corrects a bug in the reconciliation process within Odoo. Previously, creating a reconciliation model without specifying a partner or account would default to a liquidity account, causing errors. Now, the system requires either a partner or account to be set, ensuring accurate reconciliation reporting.
Original PR description
**Steps to reproduce:** - Go to Accounting dashboard - From Bank journal, open Reconciliation Models list - Create a new reconciliation model - Add counterpart line without partner and account - Click on "Automate" **Issue:** The operation fails because the default account of the bank journal is used as there is no user and no account configured for the counterpart. Which results on several lines using a liquidity account (i.e. the cause of the error). Either a partner or an account should be set on a counterpart line. opw-6056737 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes an issue where event descriptions in Outlook Calendar downloads were displayed as raw HTML code instead of properly converted. The team added formatting to ensure HTML content is correctly translated to text for Outlook, improving the accuracy of event details when users download and view them.
Original PR description
### Steps to reproduce: - Download Events app. - Pick an event and click "Go to website". - Download the Outlook Calendar. ### Issue: - The HTML content within the event description is displayed as raw code and not converted properly - This happens because outlook takes the description as text and displays it in the ics file without conversion ### Solution: - Since we're working with *Outlook Calendar*, X Alt formatting was added to format HTML to text opw-5237027 Forward-Port-Of: odoo/odoo#246603
This update fixes an issue where the Libro Giornale (IT) PDF report would break its layout when an account with a long name was used. The change adds a CSS class to manage column width, preventing excessive expansion and ensuring a cleaner, more readable report. This improves the user experience for generating financial reports.
Original PR description
When generating the Libro Giornale (IT) PDF report with an account that has a very long name, the column expands excessively and break the layout. Steps to reproduce: - With an IT company setup - Have an account with a very long name - Create an invoice using the account - Open Accounting / Reporting / Audit Reports / Journal Audit - Select variant "Libro Giornale (IT)" - Print PDF Issue: The long account name makes the column excessively large. As a result, the font shrinks to fit the page width, leaving wide gaps between lines. **before patch** <img width="794" height="493" alt="screenshot_047" src="https://github.com/user-attachments/assets/6faa5b57-9c60-41cb-9200-003a50019180" /> **after patch** <img width="793" height="553" alt="screenshot_046" src="https://github.com/user-attachments/assets/e97c8948-410b-4201-83c3-04173220d9ce" /> opw-5457103 Forward-Port-Of: odoo/enterprise#112743
This update resolves a problem where EPD bill payments weren't correctly marked as 'paid' in the accounting system. The fix ensures that payments are accurately reflected after reconciliation, improving the reliability of financial reporting. This was triggered by a specific test scenario involving early payment terms and bank transactions.
Original PR description
Steps to reproduce: - Create an early payment term. - Create a Vendor Bill with EPD and post it. - Register a payment for this bill (no outstanding account set on journal => no move created). - Create a bank transaction fully paying the bill. - Reconcile the transaction with the bill. Issue: Access the payment of the bill. The payment state remains 'in_process' instead of 'paid'. Fix in community: https://github.com/odoo/odoo/pull/256486 opw-5881976
This update fixes a layout issue in the Italian Libro Giornale PDF report. When accounts with long names are used, the report's column width expands, causing font shrinkage and excessive spacing. The change adds a CSS class to manage column width, resulting in a cleaner and more readable PDF report.
Original PR description
When generating the Libro Giornale (IT) PDF report with an account that has a very long name, the column expands excessively and break the layout. Steps to reproduce: - With an IT company setup - Have an account with a very long name - Create an invoice using the account - Open Accounting / Reporting / Audit Reports / Journal Audit - Select variant "Libro Giornale (IT)" - Print PDF Issue: The long account name makes the column excessively large. As a result, the font shrinks to fit the page width, leaving wide gaps between lines. **before patch** <img width="794" height="493" alt="screenshot_047" src="https://github.com/user-attachments/assets/6faa5b57-9c60-41cb-9200-003a50019180" /> **after patch** <img width="793" height="553" alt="screenshot_046" src="https://github.com/user-attachments/assets/e97c8948-410b-4201-83c3-04173220d9ce" /> opw-5457103 Forward-Port-Of: odoo/enterprise#112743
This update corrects a stability issue within the expense wizard for Stripe integration. By switching to a temporary model type, the wizard now functions more reliably, preventing potential errors and ensuring smoother expense processing. This change focuses on internal improvements to the Odoo Enterprise system.
Original PR description
`HrExpenseStripeTestPurchaseWizard` is currently using a normal `Model`, but it's a wizard, so use a `TransientModel`.
This update resolves a technical issue that prevented users from closing sessions when generating the DSFinV-K export for German Point of Sale certifications. The change ensures a fallback user ID is used, allowing session closure to proceed smoothly. This improves the reliability of the certification export process.
Original PR description
Before this commit, closing a session was blocked if an order was missing the user_id field during DSFinV-K export generation. opw-6067382
This update fixes an issue where the employee health warning incorrectly flagged individuals with long-term sick leaves. The change adjusts the logic to include employees who have been on sick leave for at least 31 days, ensuring more accurate reporting of employee health status. This improves the reliability of the HR dashboard.
Original PR description
-**Issue**: The warning shows employees who had a long sick leaves before 31 days, which is incorrect. -**Fix**: Adjust the logic to include employees who have been on a sick leave for the past 31 days (at least). Forward-Port-Of: odoo/enterprise#112985
This update resolves an issue that occurred when a product was removed from a POS order, preventing a crash. The fix ensures the system handles cases where a preparation display order has no assigned stage, avoiding an error and maintaining order processing functionality. This improves stability and reliability for users.
Original PR description
When a product is removed from a POS order, _process_preparation_changes sorts the preparation display lines by their current stage sequence to determine cancellation priority. This relies on `order_stage_ids[-1]`, which raises an IndexError when a preparation display order has no stage assigned. Steps to reproduce: 1. Create a preparation display with at least one category filter. 2. Add a product to the POS with no POS category assigned. 3. Add that product to an order and send it. 4. Remove the product from the order and proceed to payment. 5. → IndexError: tuple index out of range opw-6089731 Forward-Port-Of: odoo/enterprise#112757
This update enhances error tracking for invoice processing within the account_peppol module. By including full error tracebacks in logs, developers can quickly identify and resolve issues, leading to faster problem resolution and improved system stability.
Original PR description
This change improves error logging when receiving invoices by including the full traceback in the logs. This provides better visibility into the root cause and simplifies debugging by giving more context around the error. opw-6059877 Forward-Port-Of: odoo/odoo#256619
This update resolves an issue where tours would fail to run after making changes to views using the Studio customization tool. The fix filters out a misleading module entry, 'studio_customization,' that was incorrectly identified as an installed module. This ensures tours function correctly after view modifications.
Original PR description
Step to reproduce: - start a fresh db, install studio and pos - using studio, edit any view (add or remove a field) - run any tour Observation: - we are not able to run any tour Traceback ``` File…
Step to reproduce:
- start a fresh db, install studio and pos
- using studio, edit any view (add or remove a field)
- run any tour
Observation:
- we are not able to run any tour Traceback
```
File "/home/odoo/odoo/codebase/odoo/18.0/odoo/addons/base/models/ir_qweb.py", line 2703, in _get_lazy_bundles_from_js
for fname in glob.iglob('**/static/src/**/*.js', root_dir=modroot, recursive=True):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/glob.py", line 46, in iglob
root_dir = os.fspath(root_dir)
^^^^^^^^^^^^^^^^^^^
TypeError: expected str, bytes or os.PathLike object, not bool
```
Cause:
- `_get_lazy_bundles_from_js` fetches module path for all installed module in addons
https://github.com/odoo/odoo/blob/05d0944a7640e196db989039140ae5ddb12152ac/odoo/addons/base/models/ir_qweb.py#L2686-L2697
- in case we have a view edited, we get the `studio_customization` as installled module, which doesn't have any path in addons. i.e. False
Fix:
- filter out such pseudo-modules from the list
Note: this is not a reported issue, i stumbled across it, hence made a fix
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#257806This update corrects a display issue where the product count in the stat button on Sale Order Lines created from tasks would incorrectly show '0 products' until the task was saved. Now, the counter accurately reflects the products associated with the task, providing a more reliable view of sales activity.
Original PR description
Previously, when creating a Sale Order Line on the fly from a task, the product count in the stat button showed '0 products' until the task was saved. Now, the counter no longer drops to 0 when the record is not saved. task-4276677
This update enhances error tracking for invoice processing within the account_peppol module. By including full error tracebacks in logs, developers can now quickly identify and resolve issues related to invoice receipt, leading to faster problem resolution and improved system stability.
Original PR description
This change improves error logging when receiving invoices by including the full traceback in the logs. This provides better visibility into the root cause and simplifies debugging by giving more context around the error. opw-6059877 Forward-Port-Of: odoo/odoo#256619