Tuesday, July 21, 2026
7 changes · master
Resolved issues and error corrections
This fixes an issue where users could not disconnect a connected PayU payment provider because the system still required PayU credentials after clearing them. Businesses can now safely disconnect PayU without encountering a validation error, improving payment provider management.
Original PR description
Steps to reproduce: - Install the PayU payment provider. - Click the Connect button and complete the onboarding flow. - After being redirected back to the PayU provider form, click Disconnect. Issue: - After confirming the disconnection, a validation error is raised stating that the PayU fields must be filled in. Cause: - During disconnection, the PayU-specific fields are cleared. At that point, `_check_required_if_provider` is triggered, and since those fields have the `required_if_provider` attribute, it raises a `ValidationError` because their values are now `None`. Fix: - Remove the `required_if_provider` attribute from the PayU-specific fields. opw-6391133 Forward-Port-Of: odoo/odoo#276567
This fix restores the expected order of editing options on course forum pages. Course-specific options now appear after the standard forum page options, making the website editor clearer and more consistent for users.
Original PR description
**Issue:** The course-specific options should appear after the forum page options, but they are displayed before them. **Reason:** Due to refactoring [commit], the course-specific options were…
**Issue:** The course-specific options should appear after the forum page options, but they are displayed before them. **Reason:** Due to refactoring [commit], the course-specific options were inserted after a generic page hook. Since `website_slides_forum` is loaded before the forum module, the options were added before the forum page options, resulting in an incorrect order. **Steps to Reproduce:** 1. Go to /forum. 2. Enter edit mode. 3. Notice that the course-specific options appear before the forum page options. **Fix:** Extend the forum page options instead of the generic page hook ensuring course-specific options to be inserted after the forum page options. | Before | After | | ----- | -----| | <img width="285" height="267" alt="image" src="https://github.com/user-attachments/assets/73fb1f27-4edc-47eb-8bed-a873aea8a427" /> | <img width="285" height="268" alt="image" src="https://github.com/user-attachments/assets/d56aac2a-c66f-4c81-b04e-f204613d2c9c" /> | [commit]: https://github.com/odoo/odoo/commit/3f63c76da0b867facd5ed021beea79efabea15f1 task-[6359989](https://www.odoo.com/odoo/project/974/tasks/6359989) Forward-Port-Of: odoo/odoo#275921
The Accounting Dashboard now ignores activities that have already been marked as done, so completed tasks no longer appear as overdue on journal cards. This avoids misleading red alerts and helps users focus on accounting activities that still need attention.
Original PR description
Steps to reproduce: 1. Edit/Create an activity type (e.g., "To Do"). 2. Schedule an activity of this type on a journal (or a journal entry/move) with a deadline in the past. 3. Mark the activity as done. 4. Go to the Accounting Dashboard. Notice that the activity is still shown as "overdue" in red on the journal card. Completed activities are not deleted from the database. Instead, they are archived by setting `active = False` and `date_done` is populated. Since the activity dashboard query retrieves records via direct SQL, it bypasses Odoo's automatic active filtering on `mail.activity`. As a result, archived (done) activities were incorrectly fetched and displayed on the journal dashboard cards, appearing as overdue. This commit resolves the issue by explicitly adding `AND activity.active = TRUE` to the SQL queries. Task-6142042 Forward-Port-Of: odoo/odoo#276998 Forward-Port-Of: odoo/odoo#274313
The point of sale screensaver now automatically closes any open menus or popups when it appears after inactivity. This prevents visual clutter or confusing controls from remaining on top of the screensaver, creating a cleaner and more reliable checkout experience.
Original PR description
Currently, overlays remain open when the POS screensaver is loaded [^1]. #### Steps to reproduce: - Open the POS interface. - Open a dropdown/popover menu (e.g., the navbar hamburger menu). - Wait for the screensaver (SaverScreen) to trigger due to inactivity. - The open dropdown menu remains visible on top of the screensaver. #### Issue Dropdowns and popovers are rendered as active overlays outside the main screen container. While the screensaver setup closes active dialogs, it does not handle active overlays. #### Fix Retrieve the overlay service in SaverScreen and close all active overlays during its setup phase using a dedicated `closeAllOverlays` method. [^1]:  Forward-Port-Of: odoo/odoo#277055 Forward-Port-Of: odoo/odoo#274716
Commission adjustment entries no longer crash when someone types a non-matching user name in the Add to or Reduce From fields. The quick-create option was disabled there, so users must select an existing valid user and can continue working without server errors.
Original PR description
Steps to reproduce: - Go to Sales > Commission > Adjustments - In Add to/Reduce From, type a name with no match - Click Create '<name>' -> server crashes (RPC_ERROR) Cause: `sale.commission.plan.user._rec_name` is a Many2one (`user_id`). Default `name_create` wrote the typed text into that integer column, which Postgres rejected. Fix: - Disable quick-create on `add_user_id`/`reduce_user_id` in the Adjustments list view Version: saas-18.3 to master opw-6384909 Forward-Port-Of: odoo/enterprise#124431
Duplicating certain Sign templates with multiple documents, signers, and fields could fail because the system tried to process the same signer role more than once. This fix skips roles that were already handled, making template duplication reliable for affected signing workflows.
Original PR description
Issue: This [loop](https://github.com/odoo-dev/enterprise/blob/55bb2cc570451361701d53583f019ed832a5e5d3/sign/models/sign_item.py#L59-L63) runs multiple times with the same approvers(sign.item.role), but doesn't take into account the already 'seen map' inside the base copy function for batching. If they are already seen they will return a non-iterable [None]. To replicate: 1) Sign -> Template -> upload PDF 2) Go into the template 3) Add 2 Documents, with 2 signers and multiple fields on both documents 4) Save -> gear Icon -> make into template 5) Go back to the list view of templates 6) Select the template -> Gear Icon -> Duplicate Fix: add an already seen check to skip if already seen. opw-6352408 Forward-Port-Of: odoo/enterprise#123814 Forward-Port-Of: odoo/enterprise#122667
This fix removes an unnecessary repeated reload action from an automated restaurant appointment test. It prevents false test failures caused by a timing issue while keeping the same coverage for the intended business flow.
Original PR description
The `RestaurantAppointmentTour` performed two consecutive "Reload Data" actions. The first reload starts synchronizing data from the server to IndexedDB. If the second reload is triggered before the synchronization completes, it deletes the IndexedDB while it is still in use, causing the synchronization process to crash. This race condition can be reproduced locally by running the tour with `cpu_throttling` enabled. In practice, users never trigger two consecutive reloads, so the second reload step in the tour is unnecessary. Remove it to avoid the artificial race condition while preserving the intended test coverage. Task-[6364951](https://www.odoo.com/odoo/project/1737/tasks/6364951) Runbot Error-[941343](https://runbot.odoo.com/odoo/error/941343), [941344](https://runbot.odoo.com/odoo/error/941344), [941345](https://runbot.odoo.com/odoo/error/941345) Forward-Port-Of: odoo/enterprise#125028 Forward-Port-Of: odoo/enterprise#123429