Daily updates from Odoo
Saturday, February 28, 2026
10 changes · saas-19.2
Resolved issues and error corrections
This update fixes an issue where QR code payment links for installment-based invoices were incorrectly showing the full outstanding amount. By using the default values for the payment link wizard, the links now accurately display the next payable installment, ensuring accurate payments.
Original PR description
The link from QR code in invoice pdf was explicitly passing `amount`, `res_model`, `res_id` to create `payment.link.wizard` using create method which overrides default_get() of wizard. As a result, installment-based invoices were generating payment links for the full residual amount. Also the `active_id` and `active_model` is passed in context which writes to `res_model` and `res_id` so no need to add it in create again. By letting default_get() populate the wizard values, the payment link now correctly reflects the next payable installment. task-5401335 Forward-Port-Of: odoo/odoo#241825
This update resolves an issue where selection fields would display an error if a chosen value wasn't available in the current options. Now, the field will gracefully display the original, raw value instead, preventing disruptions to the user experience. This ensures smoother operation and avoids unexpected errors when working with selection fields.
Original PR description
When a selection field contains a value not found in the current options list, display the raw value instead of raising an error. 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#251201
This update resolves a compatibility issue in Firefox 148 related to how initial blank pages are loaded. By using empty iframes, the website and snippet editors now load correctly and immediately, eliminating delays and ensuring a smoother user experience. This change improves performance and reliability for our users.
Original PR description
Firefox 148 fixed the behavior of `about:blank` documents, as explained in their [release notes]: > The initial about:blank document is now Web-compatible. If the first > navigation of a browsing…
Firefox 148 fixed the behavior of `about:blank` documents, as explained in their [release notes]: > The initial about:blank document is now Web-compatible. If the first > navigation of a browsing context goes to about:blank, it completes > synchronously and is no longer replaced by a second parser-generated > document. Commit [e0796020] added the new page dialog in website, and used empty iframes to load each page template. Commit [edf81c13] added the add snippets dialog in website, and used an empty iframe to load the snippets previews. In both cases, before Firefox' fix, it meant we had to wait the recreation of the 2nd document before proceeding. This is no longer the case in Firefox >= 148. [release notes]: https://www.firefox.com/en-US/firefox/148.0/releasenotes/ [e0796020]: https://github.com/odoo/odoo/commit/e0796020ee0c3188e1e9d9fa077de73a2211c6f7 [edf81c13]: https://github.com/odoo/odoo/commit/edf81c13d8f2f6d29a77d68cbfa0dc9216da3c2a Forward-Port-Of: odoo/odoo#251172 Forward-Port-Of: odoo/odoo#250592
This update enables the copying of the main attachment from a vendor to the newly created invoice when using the 'Reverse and Create Invoice' button. This streamlines the process for users needing to attach relevant documents during invoice reversal, improving data accuracy and efficiency. It addresses a previous limitation in the system.
Original PR description
This commit copies the main attachment to the newly created vendor through the "Reverse and Create Invoice" Button. task-5905299 Forward-Port-Of: odoo/odoo#250183
This update fixes an issue where QR codes generated in Point of Sale were incorrectly pointing to 'localhost:8069' instead of the associated company's website. The change ensures that QR codes now accurately reflect the correct URL for generating invoices, improving the customer experience.
Original PR description
Steps to reproduce ------------------ 1. Make a website, associated with company 'A' 2. Add a `domain` on that website, e.g. 'test.domain.com' 3. Select company 'A', and create a PoS shop for it 4.…
Steps to reproduce ------------------ 1. Make a website, associated with company 'A' 2. Add a `domain` on that website, e.g. 'test.domain.com' 3. Select company 'A', and create a PoS shop for it 4. Enable 'Self-service invoicing' for that PoS shop, select 'QR code' 5. Open the shop, select a client and make an order -> The generated QR code point to the domain 'localhost:8069' and not to the company's website domain 'test.domain.com'. Why the issue ------------- In 1ee02f8a47d42d3ba3fd11ffcf8d9768ea17678e, we moved the `_base_url` from the session to the config. So now we call `self.get_base_url` on the config and not on the session anymore. However, `self` is an empty config created on the fly, and it's not the `session.config_id` config object used by that shop. The fix ------- In `_load_pos_data_read` of the config model, we call `get_base_url` on the `config` instance, which is garanteed to be the valid config of that shop. opw-5942057 Forward-Port-Of: odoo/odoo#251177 Forward-Port-Of: odoo/odoo#249858
This update fixes an issue where the calculation of 'sandwich leave' (leave periods surrounding holidays) was incorrect. Specifically, when leave was approved and then re-approved, the system failed to properly account for neighboring leave days, leading to an inaccurate leave count. This change ensures that leave durations are calculated correctly, aligning with the intended business logic.
Original PR description
## Steps to reproduce:- 1. Apply Friday to Monday leave and Tuesday is Public holiday and again apply single leave on Wednesday. - According to the sandwich leave rule, the leave should be counted as 6 days (Friday to Wednesday, including weekend and holiday). 2. Now refuse the Friday to Monday leave and re-approve again. 3. Now the leave count is updated to 5 days as it should be 6 days! ## Root cause:- On approve and reset actions the neighbor leaves where not recomputed. ## Fix:- - Override `_l10n_in_update_neighbors_duration_after_change` on approve and reset actions. - Updated `_l10n_in_update_neighbors_duration_after_change` so that current and neighbors both leaves are recomputed. task-[5446346](https://www.odoo.com/odoo/action-4043/5446346) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#251111 Forward-Port-Of: odoo/odoo#244235
This update resolves an issue where the legal name displayed in payroll reports was not accurately reflecting the employee's legal name in Switzerland. The fix ensures that the correct legal name is computed and presented, complying with Swiss legal requirements and improving reporting accuracy. This update primarily impacts the l10n_ch_hr_payroll module.
Original PR description
task-5979726 Forward-Port-Of: odoo/enterprise#109037
This update resolves an issue where work entries weren't being created when multiple resource calendar attendances were close together in time. The fix prevents attendances from being incorrectly combined, ensuring accurate work entry generation for employees. The change improves the reliability of the payroll and time tracking processes.
Original PR description
When you have two resource calendar attendances that are stuck together, and you generate work entries, the second one doesn't appear: Bug is caused when having two attendances stuck together: In a resource.calendar, change the time of a resource.calendar.attendance to finish at 15.36 and create a new one that begins at 15.36 and finished at 16.36 with a work entry type of Credit time. Go and regenerate work entries and you can see that no work entries are generated for credit time. Fixed by adding keep_distinct in an interval to not fuse them together. Also added extra checks to another test to not pass with incorrect values. task-5894994 Forward-Port-Of: odoo/enterprise#108993 Forward-Port-Of: odoo/enterprise#105981
This update fixes an issue where the 'Billable' and 'Non-Billable' timesheet filters were inaccurate, preventing the KPI button from working correctly. The fix now uses a more reliable method based on analytic line associations, ensuring timesheets are correctly categorized for reporting. This improves the accuracy of time tracking data.
Original PR description
Due to a previous [commit](https://github.com/odoo/odoo/commit/8e8b273), the "Billable" and "Non-Billable" were incorrect for timesheets. This lead the billable timesheet KPI button not to filter the timesheets anymore. This is fixed by filtering based on whether the analytic line has an SOL associated to it, which is more robust to changes in the `billable_type` field, and improves clarity. See odoo/enterprise#108347 task-5956027
This update corrects an issue where the 'Billable' and 'Non-Billable' timesheet filters were inaccurate, preventing the KPI button from working correctly. The fix now uses a more reliable method – checking for a linked Service Order Line (SOL) – ensuring accurate filtering and improved clarity. This enhances reporting on billable time.
Original PR description
Due to a previous [commit](https://github.com/odoo/odoo/commit/8e8b273), the "Billable" and "Non-Billable" were incorrect for timesheets. This lead the billable timesheet KPI button not to filter the timesheets anymore. This is fixed by filtering based on whether the analytic line has an SOL associated to it, which is more robust to changes in the `billable_type` field, and improves clarity. Further, remove unnecessary service patch introduced in odoo/enterprise#108035. See odoo/odoo#250149 task-5956027