Daily updates from Odoo
Thursday, December 18, 2025
22 changes · master
Resolved issues and error corrections
This update ensures that rental product availability in our e-commerce system accurately reflects when employees are on time off. Previously, the system didn't account for employee absences, leading to incorrect availability displays. This fix corrects this issue, providing a more reliable view of available resources for rental bookings.
Original PR description
…navailabilties Before this commit, when an human resource is linked to rental product thanks to his role and take a time off at a certain day. The user inside ECommerce should be able to add that product when the resource is off (since there is no resource available) at the period chosen. However, that check does not take into account the time off taken by the resources linked to that service rental product. This commit makes sure the time off of the resources linked to the product are correctly taken into account to know if the service rental product is available at a specific period. task-5075698 Forward-Port-Of: odoo/enterprise#98165
This update corrects a formatting error in invoices generated when using quotation templates in sales orders. Previously, the name and description were combined on the invoice PDF. Now, a necessary line break is added to ensure correct invoice presentation, improving clarity for customers.
Original PR description
### Issue: In this issue, when a quotation template is used in sale order, the end line is missing between name and description in the invoice pdf. #### Steps to reproduce: 1- Install a db with sale…
### Issue: In this issue, when a quotation template is used in sale order, the end line is missing between name and description in the invoice pdf. #### Steps to reproduce: 1- Install a db with sale and invoicing installed 2- Create a quotation template, and add a description in the line. 3- Create a quotation with the created template. 4- Confirm the order and create an invoice for the sale order. 5- Print the pdf, as seen the name and description are shown in the same line, while if the sale order was created without a template, we would have seen the description from product in the next line. `_get_journal_items_full_name` is used to enforce the product name in the description. However, in cases where product name doesn't exist in the description, e.g. our case here, the name and description will be shown in the same line in the invoice pdf. This can be fixed by adding a new line between the name and the description. opw-5130171 Forward-Port-Of: odoo/enterprise#102208 Forward-Port-Of: odoo/enterprise#100417
This update fixes an issue where the download button appeared prematurely in the eSigner wizard. It now correctly hides the button until a signature is completed, and adjusts text size for better readability when using Aadhaar signatures. This ensures a smoother and more professional user experience for e-document signing.
Original PR description
Version: - 19.0 Issue: - The wizard shows a download button even when using emsigner, but the file should only be downloaded after signing. - When users sign with Aadhaar and download the document, the text appears too small. Fixes: - Hide the download button in the wizard for emsigner requests. - Adjust page coordinates so the font size displays correctly. Impact: - Makes the text clear and readable in documents signed with Aadhaar. - Hides the download button until the user signs. After signing with eSigner, they can download the document with the certificate. task-5075596 Forward-Port-Of: odoo/enterprise#94279
This update fixes a previous issue where users couldn't select product variants when setting recurring prices. Now, users can accurately define recurring prices for each variant of a product, ensuring accurate subscription billing and improved flexibility in managing recurring revenue. This enhancement simplifies subscription management and reduces the risk of pricing errors.
Original PR description
Version: - 19.0 Before: - When creating a product with variants and setting recurring prices, users could not select product variants in the recurring price list. Issue: - The recurring price list appeared read-only for product variants, preventing users from defining variant-specific recurring prices. Cause: - The product variant field was missing from the recurring pricing view. Fix: - Added the product variant field to the recurring prices list view, allowing users to select and manage variants while setting recurring prices. Taskid-5361266 Forward-Port-Of: odoo/enterprise#101779
This update fixes a bug where the Partena export file incorrectly used the active company's code when generating exports for inactive companies. The change ensures the correct Partena code is included in the file, resolving potential reporting discrepancies. Tests have been added to verify this fix.
Original PR description
### Issue: In multicompany, when we generate the Partena export file of the 'not active' company, the partena code of the active company is inputted in the file. ### Steps to reproduce: - Install…
### Issue: In multicompany, when we generate the Partena export file of the 'not active' company, the partena code of the active company is inputted in the file. ### Steps to reproduce: - Install 'l10n_be_hr_payroll_partena' and switch to a Belgian company - Make sure the company has a "Partena Affiliation Number" - Create an employee for this company, with a "Partena code" - Create a contract for this employee, set it a running - Create a new Belgian company with a different "Partena Affiliation Number" - Activate both Belgian companies, but set the second one as active - Payroll > Reporting > Export work entries to Partena - Create a new one, populate it with the employee just created - Click "Generate Export File" ### Cause: When getting the data for the CSV file, we use `self.env.company` which is the active company. So when this company is not the one of the export record, we input the wrong code values. ### Solution: Use `self.company_id` instead of `self.env.company_id`. Also adds the test class with basic tests. opw-5345786 Forward-Port-Of: odoo/enterprise#102062 Forward-Port-Of: odoo/enterprise#101110
This update ensures that rental orders created from leads automatically include the tags associated with the original lead. Previously, rental orders lacked this functionality due to a slight difference in how context information was passed. This change streamlines the rental order process and maintains consistent tag management across sales and rental transactions.
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Have a lead with tags; 2. convert lead to rental order. Issue ----- The new rental order has no tags. Cause ----- Tags are added to regular sales orders via the `_prepare_opportunity_quotation_context` method, but rental orders use `_get_action_rental_context` instead, which is virtually identical, but adds the `in_rental_app` context value, and doesn't include `default_tag_ids`. Solution -------- Rather than having duplicate code, make `_get_action_rental_context` retrieve the base context from `_prepare_opportunity_quotation_context`, then adding `in_rental_app=True`. opw-4549941 Forward-Port-Of: odoo/enterprise#102220
This update fixes an issue where invoice reports in the KE company setup were not displaying prices with commas. The fix removes a duplicate XPath and correctly formats the total and taxable amounts, ensuring accurate financial reporting. This improves clarity and compliance for KE-related invoices.
Original PR description
Steps to reproduce: 1. install `l10n_ke` 2. Switch to KE Company 3. Create a product with all KRA eTIMS details set on the Accounting page. 4. Create an invoice to KE Company with that product and set unitprice > 10000 5. Confirm the invoice and send it. Now, see the invoice report Issue: 1. xpath for `td_subtotal` was duplicated 2. The total amount and taxable amount were not formatted as prices (no commas). Before: <img width="771" height="397" alt="image" src="https://github.com/user-attachments/assets/492fe911-18d6-4e01-a16d-d7450c17373f" /> After: <img width="766" height="389" alt="image" src="https://github.com/user-attachments/assets/bbe5d4e2-b337-445c-833a-06492a8c827d" /> Solution: Updated the invoice report to: - Remove the duplicated `td_subtotal` xpath. - Properly format the total and taxable amounts with `t-options`. opw-5341578 Forward-Port-Of: odoo/enterprise#101794 Forward-Port-Of: odoo/enterprise#100279
This update fixes a technical issue that could cause website errors during event ticket payments when using rentable tickets. The change improves error handling to prevent these tracebacks from appearing to users, ensuring a smoother payment experience. While the rentable ticket feature itself is being addressed, this fix focuses on stabilizing the payment process.
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Have `website_event_sale` but not `stock` installed; 2. create an event with a ticket; 3. make the ticket's product rentable; 4. change ticket's product type to Goods; 5. publish the event to website; 6. register for the event via website; 7. go to payment. Issue ----- AttributeError: 'bool' object has no attribute 'tzinfo' Cause ----- Having odd configurations like rentable tickets creates rental orders without rental dates, leading to unhandled errors. Solution -------- While rentable event tickets doesn't make enough sense to make it work, we can still improve the error handling to prevent showing tracebacks to the client. opw-5207045 Forward-Port-Of: odoo/enterprise#101936 Forward-Port-Of: odoo/enterprise#99000
This update resolves a critical bug in the Report Editor that caused crashes due to incorrect data translation. By disabling translation specifically within the report's iframe, the system now reliably saves edited reports without errors. This ensures a stable and accurate report generation experience.
Original PR description
Before this commit, when google translate was active on the current ReportEditor, it produced wrong data to save, and ultimately crashes. After this commit, since we disable the translation on the whole HTML element inside the iframe (that is only for the edited report), there is no error any more opw-5122924 Forward-Port-Of: odoo/enterprise#97019
This update corrects a bug where invoice posting in Chilean tests resulted in incorrect date calculations due to timezone differences. The fix ensures invoices are processed correctly by freezing the test time and setting a fixed invoice date, preventing date rollbacks.
Original PR description
**Issue:** ```python File "/data/build/enterprise/l10n_cl_edi/models/account_move.py", line 744, in _l10n_cl_edi_post_validation raise UserError( odoo.exceptions.UserError: The stamp date and time…
**Issue:**
```python
File "/data/build/enterprise/l10n_cl_edi/models/account_move.py", line 744, in _l10n_cl_edi_post_validation
raise UserError(
odoo.exceptions.UserError: The stamp date and time cannot be prior to the invoice issue date and time. TIP: check in your user preferences if the timezone is "America/Santiago"
```
**Cause:**
Posting an invoice at early local hours (e.g., 2025-12-11 04:00) is converted by the [Chilean timezone (America/Santiago)](https://github.com/odoo/enterprise/blob/ac3f333d97eda5c86a0813490ac6204d4ec5721f/l10n_cl_edi/models/l10n_cl_edi_util.py#L117-L120) to the previous day (e.g., 2025-12-10 19:30).
**Solution:**
- Freeze the test time at a stable CL-safe hour
- Add a fixed `invoice_date` aligned with the frozen timestamp
Reference : [timezone converter](https://dateful.com/time-zone-converter?t=730pm&d=2025-12-10&tz2=Santiago-Chile)
Runbot error: [234755](https://runbot.odoo.com/odoo/runbot.build.error/234755)
Related PR: https://github.com/odoo/enterprise/pull/99518
Forward-Port-Of: odoo/enterprise#102127
Forward-Port-Of: odoo/enterprise#101901This update streamlines the live chat closing process within the AI Website module. The change ensures a cleaner and more reliable way to close live chat sessions, reducing potential disruptions for users. This improves the overall user experience and efficiency of the AI-powered website.
This update fixes a usability issue in the Sign editor where the document dropdown didn't close properly after selection. The changes include improved hover behavior, consistent styling for actions, and a new mechanism to handle dropdown closures within the PDF iframe, ensuring a smoother user experience.
Original PR description
- Fix hover and pointer behavior on update document action - Apply consistent danger styling to delete action - Ensure dropdown closes correctly after interaction (PDF iframe has its own document so outside-click logic did not apply; add a click listener on the iframe document to close open dropdowns. ) task: 5384677
This update corrects a bug in the 'My Work Orders' filter within the manufacturing work order list, ensuring it accurately displays only work orders assigned to the current user. This improves usability and allows users to easily find and manage their assigned tasks.
Original PR description
Before this commit: ------------------------- The 'My Work Orders' filter in the manufacturing work order list view was not functioning as expected. Previously, it did not effectively filter work…
Before this commit: ------------------------- The 'My Work Orders' filter in the manufacturing work order list view was not functioning as expected. Previously, it did not effectively filter work orders to display only those assigned to the current user. Steps to reproduce: ------------------------- 1. Install 'mrp_workorder' module. 2. Go to Operations → Work orders view. 3. Apply Search Filter → My Work Orders . 4. Notice that the 'My Work Order' filter does not displays work orders assigned to the logged-in employee. Cause of the issue: ------------------------- In this filter, a static ID was used to identify the logged-in user. However, user IDs are dynamic and vary from one user to another. As a result, the filter could not work properly. After this commit: ----------------------- It resolves the issue by ensuring the filter now correctly identifies and displays work orders assigned to the logged-in employee, providing the expected 'My Work Orders' view.It helps the users to filter the work-orders directly which are assigned to them. Task Id: 4935833
This update addresses several key issues in the ID payroll calculations, ensuring more accurate net salary and year-end reporting. Specifically, it incorporates reimbursements, corrects JHT and JP calculations, and streamlines data for improved payroll processing. This change enhances the reliability of employee compensation data.
Original PR description
* Move fixed allowance to basic category since it is treated same as basic salary and used together in other rules * Spread the sequences * Update the net salary calculation since curently it did not include reimbursement * Update the view historical lines in employee so it search only paid/validated payslip and also show the JHT and JP * Update the end of year calculation to use accumulated JHT and JP in a year (similar to gross rule) * Add new parameter data for JP for 2025 * Remove outdated worked days rate method and instead use the standard basic salary rule * Update the rounding to down Task: [5182482](https://www.odoo.com/odoo/project.task/5182482)
This update resolves an issue where the tax return calendar view in Odoo Enterprise was confusing users. The fix replaces the calendar view with a more intuitive Kanban view for tax returns, streamlining the process for users to manage their returns. This ensures a clearer and more efficient user experience.
Original PR description
Steps to reproduce: - Go to Accounting/tax return - Set the opening date - Open the Calendar view - Open one tax return -> The view is a default form view provided by the framework Solution: Open instead the kanban view of return checks (which for the user seems like the form view of the return). task-5392552
Previously, users couldn't change the name of the 'Help' menu item in the Helpdesk, encountering an error. This update allows users to rename the menu item, resolving this restriction and providing greater flexibility within the Helpdesk feature. This change improves usability and simplifies management.
Original PR description
**Issue** It was not possible to rename the "Help" menu item, an error appeared with the message: "This URL is reserved for the helpdesk teams with 'website form' feature enabled.", even if the user was not trying to edit the URL. **Change** Allow the user to edit the menu item's name. opw-5375334 Forward-Port-Of: odoo/enterprise#102175 Forward-Port-Of: odoo/enterprise#101323
This update resolves a bug preventing users from adding products to invoices when navigating from an FSM task. The issue stemmed from differing context settings – the sale order provides a specific context, while the task does not. This change ensures consistent domain settings for product searches across different invoice access points.
Original PR description
On a fsm task, using the smart button to go to the invoice, will not give the same domain for the products, if you go from the sale order or directly from the task Steps to reproduce:…
On a fsm task, using the smart button to go to the invoice, will not give the same domain for the products, if you go from the sale order or directly from the task Steps to reproduce: ------------------- * Create a product - Purchase: False - Sale : True * Create a fsm task * Add products * Go to the sale order * Create the invoice (regular invoice) * Go back to the task * Go to the invoice using the invoices smart button * Try to add your product -> issue it's not possible. Observation: --------------- The domain of the search is not the same if we go from the sale order or from the task. This is because the domain depend on the context and the context is not the same : [Domain](https://github.com/odoo/odoo/blob/8258ddf12ed6c0495628f7a480d1e2424e756540/addons/account/views/account_move_views.xml#L1134-L1141) When using the smart button on the SO, some elements will be added to the context, the important one is: default_move_type : "out_invoice": [SO context](https://github.com/odoo/odoo/blob/18.0/addons/sale/models/sale_order.py#L1453) Instead when using it on the task, the context does not have that element: https://github.com/odoo/enterprise/blob/cb79d565031ee0e1bec9db82aa35deb2e1c03576/industry_fsm_sale/models/project_task.py#L325-L327 This will be calculate here in the js files: [evalContext](https://github.com/odoo/odoo/blob/c3367bd7c6900e42394b006ccf48c3b36a1b87e9/addons/web/static/src/views/fields/field.js#L400) opw-5135567 Forward-Port-Of: odoo/enterprise#101938 Forward-Port-Of: odoo/enterprise#98612
This update resolves an issue where archived employees were still appearing in the timesheet section of helpdesk tickets. The fix ensures that only active employees are displayed, improving data accuracy and preventing confusion when managing timesheets.
Original PR description
**Steps to Reproduce:** - Install hekpdesk_timesheet. - Go to settings, enable timesheets - Archive an employee. - In a ticket, try to add a timesheet entry. **Isuue:** Archived employees are also appearing under timesheets tab. **Fix:** Passed a context so that only active employees appear in the selection. task-5078763 Forward-Port-Of: odoo/enterprise#95137
This update fixes an issue where product documents would stop appearing on product pages after a document version was updated. The fix ensures that the product document record is correctly linked to the latest document version, maintaining accurate product information. This improves the consistency of product data.
Original PR description
**Steps to reproduce:** 1. Install `sale_management` and `documents`. 2. Go to settings > check `product` under Files Centralization. 3. Create a product and add a document to it using the smart button. 4. Update the version of that document from the *Manage Versions* action on the document page. **Issue:** - After updating the document version, the linked document no longer appears on the product page. **Cause:** - The product page displays records from the `product.document` model, but its `ir_attachment_id` was not updated when the document’s version changed. **Solution:** - Update the `ir_attachment_id` on the corresponding `product.document` record when the document version is updated. opw-5144041 Forward-Port-Of: odoo/enterprise#99226
This update resolves an error that prevented the creation of draft payslips for employees configured to report BAS-W3 data. The fix corrects a coding issue that was causing a type error, ensuring that draft payslips can now be generated correctly for this employee group. This improves payroll processing reliability.
Original PR description
Currently, an error occurs when generating draft entries for the Australian payslips when the employee is configured to `report in BAS–W3`. **Steps to reproduce:** - Install the…
Currently, an error occurs when generating draft entries for the Australian payslips when the employee is configured to `report in BAS–W3`. **Steps to reproduce:** - Install the `l10n_au_hr_payroll_account` module and switch to `My Australian Company`. - Create an employee with all necessary payroll information and enable `Report in BAS – W3`. - Go to Payroll Settings and complete the `Payroll Onboarding`. - Navigate to Payroll > Payslips > Payslips and open any draft payslip. - Click `Create Draft Entry`. (Refer [1] for steps to produce.) **Error:** `TypeError: 'int' object is not iterable` **Root Cause:** At [2], the code tries to append an `integer`(`w3_tag.id`) to a `list`(`tag_ids`) using `+=`, which causes the `error`. **Fix:** This commit prevents an error when creating a draft entry by wrapping the integer in a list before adding it to `tag_ids`, similar to [3]. [1]: https://drive.google.com/file/d/1XGUUYCpmB3ocwXSWkxgFV7vjyAvRsHS6/view [2]: https://github.com/odoo/enterprise/blob/d9c864a5a55dd45f6fed794a809a5aefe26e7699/l10n_au_hr_payroll_account/models/hr_payslip_line.py#L23 [3]: https://github.com/odoo/enterprise/blob/d9c864a5a55dd45f6fed794a809a5aefe26e7699/l10n_au_hr_payroll_account/models/hr_payslip_line.py#L27 opw-5370293 Forward-Port-Of: odoo/enterprise#101811
This update fixes a previous issue where sales lines flagged as 'out of scope' were incorrectly excluded from tax warnings. The change ensures that all sales lines, including those marked as 'out of scope,' now trigger the necessary tax configuration checks, improving accuracy and compliance. This resolves a potential reporting discrepancy.
Original PR description
Previously, we excluded all lines with the `sale_out_of_scope` section from checks and warnings to improve performance. However, some tax-related warnings also apply to those lines. Due to the global exclusion, warnings for incorrect tax configuration were no longer shown when the line belonged to the `sale_out_of_scope` section. This commit removes the `sale_out_of_scope` condition from the shared (general) domain and instead applies it only to specific warnings where it is actually needed. task-5404258 Forward-Port-Of: odoo/enterprise#101781
This update resolves an issue where ECO applications incorrectly linked product documents to attachments, leading to database errors. The fix ensures that ECOs correctly reference the associated attachments, preventing potential application failures and data inconsistencies. This improves the reliability of ECO implementation.
Original PR description
When applying an ECO, the system incorrectly sets the origin_attachment_id of a product.document to a product.document record itself instead of its related ir.attachment. As a result, if the incorrectly referenced ir.attachment is missing, the ECO will attempt to reference a record that does not exist, leading to a foreign key violation during action_apply. Steps to reproduce: 1.) Create an mrp.eco record 2.) Upload a document, take note of the product.document ID 3.) Unlink the ir.attachment with ID = (document ID + 1) (+1 is to account for the .copy within action_apply) 4.) Run eco.action_apply 5.) Observe SQL Constraint Expected result: The ECO should correctly link the product.document to its related ir.attachment. Actual result: origin_attachment_id may point to an unrelated ir.attachment, causing constraint violations when those attachments do not exist. opw-5050263 Forward-Port-Of: odoo/enterprise#94958