Daily updates from Odoo
Thursday, February 19, 2026
10 changes · 17.0
Enhancements to existing features
This update optimizes the creation of global invoices within the Odoo Enterprise system. By changing the wizard to a 'TransientModel,' data is no longer permanently stored in the database when a global invoice is created, streamlining the process and reducing unnecessary storage. This change improves efficiency and performance.
Original PR description
Change to TransientModel so a wizard is not permanently stored in db when creating a global invoice.
This update adds more flexible deduction options within Odoo's payroll system for Swiss businesses. Specifically, five new generic AVS (Additional Voluntary Savings) deductions have been implemented to provide greater flexibility in calculating employee contributions. This change improves the system's adaptability to various Swiss payroll requirements.
Original PR description
5 more generic AVS is added to l10n_ch_hr_payroll/hr_salary_rule_data and /hr_payroll_input_types. task - 5902593
Resolved issues and error corrections
This update resolves an issue where the skills module's automated tour was failing due to a conflict with multiple popups. The fix ensures the tour correctly identifies and closes the intended popup, improving the user experience and reliability of the training process.
Original PR description
When looking for this selector `.modal-footer .btn-primary` multiple popup are opened and the tour could select the wrong one. It would then not close the correct popup and fail the tour. runbot-238877
This update resolves an issue where archived employee records were still visible in the attendance Gantt view. The change ensures that only currently active employees are displayed, improving data accuracy and clarity for reporting.
Original PR description
Steps to reproduce: 1. install `hr_attendance_gantt` 2. create an employee 3. make attendance records for the employee in the previous months 4. archive the employee When opening the gantt view of the attendance, a row appears for the archived employee, with no attendance showing up. This commit adds a constraint to only show the active employees. opw-5490119
This update resolves an issue where the default grouping by provider wasn't consistently applied in the Shipping Methods section of Odoo. The fix ensures that when a provider is set to 'default,' the system correctly groups shipments by that provider, improving the user experience and data organization.
Original PR description
**Steps to Reproduce:** - Got to the Shipping Methods. - No default group by is applied even when the provider is set to default. **Issue:** The default group by was not applied in Shipping Methods despite the provider being set as default, due to a mismatch between the filter name and the default group by name. **Fix:** Aligned the filter name with the default group by name so the grouping is applied correctly by default. **Affected Version:** 17.0~master
This update fixes an issue where payment beneficiary accounts were incorrectly assigned after merging inbound and outbound payments. Specifically, when a refund is merged, the system now correctly identifies the payment type (outbound) and assigns the appropriate bank account. This ensures accurate payment processing and reporting.
Original PR description
When we create new payments for bills and refunds, we offer the possibility to merge inbound and outbound payments together if they are from the same provider and the bills all reference the same…
When we create new payments for bills and refunds, we offer the possibility to merge inbound and outbound payments together if they are from the same provider and the bills all reference the same recipient account. Depending on the balance of the resulting payment, we assign an adequate inbound or outbound bank account as the recipient. The `partner_bank_id` can be assigned through different processes: - If the wizard has only one batch: The wizard is editable and the user can select a bank account from the computed `available_partner_bank_ids`. - If there are multiple batches: Odoo assigns a `partner_bank_id` in `_create_payment_vals_from_batch()`. For an outbound payment, it uses the batch['payment_values']['partner_bank_id']. The problem is that this value is not updated after a merge of payments. If the base line being merged on is a refund, but the result is an outbound payment, then the `partner_bank_id` should be changed accordingly. I decided to include the changes of my previous PR targeting v18 and fixing the grouping of payments, even though it was deemed unnecessary for v17, because it felt weird not to considering how close these fixes are. -Previous PR : [242863](https://github.com/odoo/odoo/pull/242863) However, I can remove these changes or re-target this PR to v18. I am not sure what would be best here. Ticket: opw-5401372
This update resolves an issue where Point of Sale (PoS) was failing to display products with single-attribute-value options (e.g., 'Small' size). The fix ensures that products with unique attribute values are correctly listed in the PoS interface, improving the user experience and preventing lost sales.
Original PR description
Steps to reproduce ------------------ 1. Create a product "P", with an attribute e.g. "Size", having only one signe possible attribute value, e.g. "Small". 2. Add it to PoS. 3. In PoS, click the "i"…
Steps to reproduce ------------------ 1. Create a product "P", with an attribute e.g. "Size", having only one signe possible attribute value, e.g. "Small". 2. Add it to PoS. 3. In PoS, click the "i" button to show this product's info popup, and click on the "Small" button. We are supposed to filter out the variants having "Small" attribute value, so we expect to see one product, however, we see NO PRODUCTS. Reason ------ When clicking the attribute value button, "Small" in this case, we filter for proucts belonging to the product template "Product", which also have "Small" in their names. This assumes that a new product have been created for that "Small" attribute value, however that's not the case, since for single-attribute-value attributes, we don't create a separate product variant. I.e. since we can only have one option for "Size" which is "Small", we don't create a separate prodduct for it. Fix ---- In the case of single-attribute-value attributes, don't add the attribute name to the search word since no products will be found. Just list all the products from that prodcuct template, they will naturally all match that single attribute value. opw-5497593
This update resolves an issue where the 13th month payment wasn't correctly included in the calculations for Swiss payroll (LPP). The change adds the 13th month to the base calculation, ensuring accurate reporting and compliance with Swiss tax regulations. This ensures accurate payroll processing for businesses using the Odoo Enterprise module in Switzerland.
This update corrects a problem preventing the automated sending of wage statements for Swiss payroll. The fix ensures accurate and timely delivery of these important documents, complying with Swiss tax regulations. This improves payroll processing efficiency and reduces the risk of late filings.
This update resolves an issue where invoice PDFs weren't correctly generated during testing, leading to errors. The fix ensures that invoices are rendered as PDFs during testing, preventing test failures and improving the reliability of the audit trail reporting. This ensures accurate reporting for tax compliance.
Original PR description
This commit fixes the invoice's pdf generation being skipped during tests (generating HTML instead), raising an error while pypdf tries to read the actual pdf (during multipage recomputation). Note: forcing report rendering was already set during forward-porting of the original commit [^1]. runbot-238807 [^1]: https://github.com/odoo/odoo/commit/aa67d2833514c10acb49bc3f8896c6f59910d3c2