Thursday, November 13, 2025
10 changes · master
Resolved issues and error corrections
This update simplifies a styling workaround used in spreadsheet side panels. It helps keep the interface consistent while reducing overly complex rules that could make future maintenance harder.
Original PR description
Because of a really strong rule in o_spreadsheet lib that forced the box-sizing property pretty much everywhere, we came up with a super dense rule to counteract it inside odoo and specifically inside the side panels. This commits aims to simplify it at best with the common denominator of those rules. Task-4878174 Forward-Port-Of: odoo/enterprise#99240 Forward-Port-Of: odoo/enterprise#98876
Connecting a bank with payments disabled no longer creates an alarming error report. The system now treats this expected setup condition as a warning, reducing false error alerts while keeping the bank connection flow clearer for users and support teams.
Original PR description
Currently, an error occurs when a user connects a bank that has payments not enabled. **Steps to replicate:** * Install `account_online_payment` * Invoicing > Bank > dropdown menu and connect the…
Currently, an error occurs when a user connects a bank that has payments not enabled. **Steps to replicate:** * Install `account_online_payment` * Invoicing > Bank > dropdown menu and connect the demo bank. **Error:** `Non-blocking error during payment activation: To activate payments, you must first enable them when connecting a bank account.` **Root cause:** * The error happens because payment is disabled on the bank page. As `is_payment_enabled` is `False` in the `data` at [1], which comes from [2],and that `data` comes from a response in the super call at [3]. **Solution:** * Since this error comes from a `UserError`, it would be better to use logger warning instead of logger error. [1]: https://github.com/odoo/enterprise/blob/b5ff6fff193a7197b3983985c8af13512d677146/account_online_payment/models/account_online_link.py#L18 [2]: https://github.com/odoo/enterprise/blob/b5ff6fff193a7197b3983985c8af13512d677146/account_online_payment/models/account_online_link.py#L24 [3]: https://github.com/odoo/enterprise/blob/b5ff6fff193a7197b3983985c8af13512d677146/account_online_synchronization/models/account_online.py#L963-L970 sentry-6936347663 Forward-Port-Of: odoo/enterprise#99227
This fixes an intermittent issue where moving articles in the Knowledge sidebar could prevent the next selected article from opening correctly. Users should see more reliable editing behavior after reorganizing Knowledge articles.
Original PR description
Before this commit, the `test_knowledge_main_flow` tour sometimes failed. That tour creates articles, then d&d one of them in the sidepanel to re-organize articles, and then clicks on a previously…
Before this commit, the `test_knowledge_main_flow` tour sometimes failed. That tour creates articles, then d&d one of them in the sidepanel to re-organize articles, and then clicks on a previously created article to continue editing it. The tour failed on that step, as the previously created clicked article wasn't properly selected/displayed in the editor. The race condition was that two (non synchronized) calls to the `load` function of the model were done: one after the move because the move could have altered the displayed article (1) and one because we selected another article to open by clicking in the sidebar (2). (1) is done without resId (reload the current article) and (2) is done with the id of the clicked article. Depending on the order these two calls are done, we end up with the clicked article displayed (if (2) is done after (1)), or with the current article still displayed, but reloaded ((1) done after (2)). This commit fixes the race condition by forcing the reload of the current record for (1), instead of blindly reloading the model, which might have changed/been requested something else meanwhile. runbot error~182073 Forward-Port-Of: odoo/enterprise#99174
BACS payment export files now correctly round payment amounts when converting pounds to pence. This prevents rare cases where amounts such as £645.30 could be exported as one penny less, helping avoid payment discrepancies.
Original PR description
**Issue description:** When creating a BACS batch payment that contains a payment with an amount that can't be represented well in float (like 645.30), the generated BACS batch file will have a wrong amount (due to float precision) as the amount is represented in pence. **Steps to reproduce:** 1. Create a BACS vendor payment with amount = 645.30 2. Add this payment to a BACS batch payment. 3. Confirm the batch to generate the export file. In the file you will notice that the amount in the payment line is 64529 pence instead of 64530. opw-5159413 Forward-Port-Of: odoo/enterprise#99180
Opening Studio on calendar views now works even when a calendar field is limited to specific user groups. This prevents an unexpected crash and lets authorized users continue editing calendar views normally.
Original PR description
Have a calendar view that has a field A. the field A has a group on it, defined either in python or in the XML. Before this commit, opening studio in the calendar view crashed, because calendar did not support yet those fields that are marked with studio_no_fetch in their attributes. After this commit, there is no crash Forward-Port-Of: odoo/enterprise#99254 Forward-Port-Of: odoo/enterprise#98903
The document sharing panel now shows the correct guidance for the “Access through link” option. This avoids confusion when users configure link-based access, helping them understand the sharing settings more accurately.
Original PR description
This commit fix the helpers for the 'Access through link' option where a condition was mistakenly depending on internal access option. Task-5222910 Forward-Port-Of: odoo/enterprise#98450
This fix prevents an error in Belgian POS certification when a pro forma request finishes after the related order has already been deleted. It helps keep the checkout flow stable by confirming the order still exists before updating it.
Original PR description
Before this commit, when trying to send a pro forma for an order that had been deleted while the pro forma call was in the queue, a JS error would occur because the callback of the call would try to access the order which was no longer existing in the frontend. This is now fixed by checking that the order is still present before accessing it in the callback. Forward-Port-Of: odoo/enterprise#99248
This change adds a regression test to ensure employees with fully flexible schedules can have overlapping absences, such as sick leave and a public holiday, without payroll work entry generation failing. It helps protect payroll reliability for attendance-based contracts by preventing a previously reported error from returning.
Original PR description
**Purpose:** Add regression test to verify that overlapping leave scenarios (sick leave + public holiday) do not cause singleton errors for fully flexible employees using attendance-based work entries. **Test Coverage:** - Fully flexible employee with no calendar assignment - Attendance-based work entry source configuration - Overlapping sick leave and public holiday scenario - Work entry generation and validation without singleton errors Related : [PR](https://github.com/odoo/odoo/pull/223448) opw-4979974 Forward-Port-Of: odoo/enterprise#97947 Forward-Port-Of: odoo/enterprise#93902
This update removes leftover code from a previous reconciliation model change in the accounting tools. It helps keep the system easier to maintain without changing how users work with reconciliation.
Original PR description
In the PR (odoo/enterprise#80787) the reconciliation model was refactored in order to be easier to use for users. However, some dead code was forgotten and not removed. Forward-Port-Of: odoo/enterprise#98923
The Ask AI command no longer shows empty quotation marks when the command palette search field is blank. This removes a small visual glitch and makes the command label clearer for users.
Original PR description
Before, the "Ask AI" command in the command palette would always display quotes around the search term, even if the input was empty, showing "". Now, the quotes are conditionally rendered only when a search value is present, preventing empty quotes from appearing. task-[5262111](https://www.odoo.com/web#id=5262111&view_type=form&model=project.task) # Before https://github.com/user-attachments/assets/1bb98920-5ec2-48c3-9c13-1e49b8ab5ed4 # After https://github.com/user-attachments/assets/3c985951-a64c-4426-97de-1cdcdd572f0b