Friday, October 10, 2025
130 changes
5 changes
Resolved issues and error corrections
This update adjusts an internal mail test related to link previews so it is formatted more reliably. It helps maintain product quality by making automated checks easier to understand and less prone to false failures, with no direct change for end users.
Original PR description
Forward-Port-Of: odoo/odoo#230833
This change prevents pricelist rules based on another pricelist from being saved unless the referenced pricelist is provided. This avoids incorrect price calculations when rules are created outside the standard user interface, such as through custom screens or integrations.
Original PR description
Before this commit, only a view-level required attribute ensured that pricelist items with `base=='pricelist'` have a `base_pricelist_id` set. Creating pricelist items from a custom view or the API or the shell could result in missing values for this field, causing `_compute_base_price` to incorrectly assume that `base=='list_price'`` This commit introduces a new constraint ensuring any pricelist whose price is `base`d on an "Other Pricelist" has a value for `base_pricelist_id`. Note: in the views, `base_pricelist_id` is required if `compute_price == 'formula' and base == 'pricelist'` but the first condition is not neeeded because `_onchange_compute_price` sets `base` to `'list_price'` when `compute_price!='formula'` --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#230438
Links added to Social Marketing posts are now recognized correctly when their parameters include commas or similar special characters. This prevents previews from cutting the link too early, helping users share accurate URLs in social posts.
Original PR description
**Steps to reproduce:** - Go to `Social Marketing` app. - Click on `New Post`. - Select Facebook for preview (should not matter). - Write a message with an URL which have comma-separated parameters. (e.g 'TEST URL https://example.be:8080/path/res-123/ext/?param1=v1,v2,v3') - URL is cut on the first comma in the preview. **Issue:** URL regex did not match URLs containing comma-separated query parameters, causing them to be truncated. **Fix:** Updated the regex to include commas. opw-5042131 Forward-Port-Of: odoo/enterprise#94220
This fixes demo chat data so messages from Alex are displayed as coming from Alex instead of Odoobot. It improves the accuracy of demo conversations and avoids confusion when users review or present the Discuss app.
Original PR description
Before this commit, Alex's messages in discuss demo data were displayed as "Odoobot" rather than Alex. This happens because message had proper author_guest_id but no author_id defined, thus it had default value Odoobot and since [1] the author_id has precedence over `author_guest_id`. Before [1] there was no bug because the server returned formatted data of a single author as a persona, and guest_author_id had precedence over author_id. [1]: https://github.com/odoo/odoo/pull/211868 Before <img width="811" height="279" alt="Screenshot 2025-10-10 at 16 18 53" src="https://github.com/user-attachments/assets/862cfd18-24a0-485f-89b6-77277b9098ad" /> After <img width="815" height="280" alt="Screenshot 2025-10-10 at 16 17 45" src="https://github.com/user-attachments/assets/f83b98dd-ffb1-4419-851c-f34f3261792d" />
Cashiers can now enter numeric passwords using a physical keyboard when the password popup is open. This fixes a point of sale usability issue where staff had to rely only on the on-screen number buttons, making login and cashier switching faster and more convenient.
Original PR description
Before this commit, when the NumberPopup was open (for example, when entering the cashier password), the keyboard input was ignored because the overlay manager blocked all keyboard events while any popup was active. As a result, it was only possible to use the on-screen number buttons. After this commit, the keyboard input is allowed when a NumberPopup is open, enabling users to type the password directly using the keyboard. opw-5152235 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#230626
4 changes
Resolved issues and error corrections
This fix ensures that pricing rules based on another pricelist must actually specify which pricelist to use. It prevents incorrectly calculated prices when rules are created outside the standard screens, improving pricing reliability across sales and point of sale flows.
Original PR description
Before this commit, only a view-level required attribute ensured that pricelist items with `base=='pricelist'` have a `base_pricelist_id` set. Creating pricelist items from a custom view or the API or the shell could result in missing values for this field, causing `_compute_base_price` to incorrectly assume that `base=='list_price'`` This commit introduces a new constraint ensuring any pricelist whose price is `base`d on an "Other Pricelist" has a value for `base_pricelist_id`. Note: in the views, `base_pricelist_id` is required if `compute_price == 'formula' and base == 'pricelist'` but the first condition is not neeeded because `_onchange_compute_price` sets `base` to `'list_price'` when `compute_price!='formula'` --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#230438
2 changes
Resolved issues and error corrections
This update prevents an error when users reconcile the final available batch payment from the Batch Payments tab. If no batch payments remain, the screen now continues by showing existing matching entries, helping accountants complete reconciliation without interruption.
Original PR description
Issue: Error is raised when there are no batch payments found in `saveSearchState()` Purpose of this PR: We display the match existing entries if there are no batch payments found. Steps to Reproduce on Runbot: install accounting make a batch payment reconcile single batch payment with statement line while on Batch Payments Tab opw-4807527
16 changes
Enhancements to existing features
Manufacturing teams can now control the order of quality checks and instructions within work operations. This restores a previously available capability, making shop floor guidance easier to organize and follow.
Original PR description
- Sequence was added to give flexibility in ordering quality points inside operations. **Note:** this was already there in past versions, it was just forgotten in the latest redesign: https://www.odoo.com/odoo/project/966/tasks/5005235 Task: 5110982
2 changes
Resolved issues and error corrections
Event organizers using Track Quiz will now see the Community menu button as intended, even when the separate event meeting feature is not installed. This restores access to the expected event community option and avoids confusion when configuring quiz-enabled events.
Original PR description
In the event form the "community" button is supposed to be shown when "track quiz" is installed. However when this was done in [1] there a mistake was made and only the label was removed, as well as the wrong field added after it. That field was removed in [2] but it was again not noticed that only the label was made visible. It may not appear easily because installing website_event_meet also unhides both the label and the field. Hence you only ge this issue when installing track quiz without it. However in 18.3 [3] removed website_event_meet which means the issue is not corrected anymore. task-5159806 [1]: https://github.com/odoo/odoo/commit/147cf5f328f5a55882a62a4279d1d92511628320 [2]: https://github.com/odoo/odoo/commit/c0f0f9f47573b74ca6b1fcdc3383e43f28f7a2e1 [3]: https://github.com/odoo/odoo/commit/9cab4f8f77f71e405971c184544765e8f252a012
1 change
Resolved issues and error corrections
This fix prevents access errors when checking transaction dates used for loyalty reward expiration. It ensures eligible loyalty transactions can be reviewed reliably, reducing disruption for sales teams and customers using loyalty programs.
Original PR description
Versions -------- - 17.0 - 18.0 - saas-18.2 Fixed in saas-18.3+ during forward porting. Issue ----- Checking transaction dates for loyalty expiration can lead to access errors. Cause ----- Transactions aren't checked using `sudo`. Solution -------- Use `sudo` to get the transaction dates. opw-4765873
Social Marketing previews now correctly recognize URLs that include comma-separated values in their parameters. This prevents links from being cut off in post previews, helping users verify and publish accurate social content.
Original PR description
**Steps to reproduce:** - Go to `Social Marketing` app. - Click on `New Post`. - Select Facebook for preview (should not matter). - Write a message with an URL which have comma-separated parameters. (e.g 'TEST URL https://example.be:8080/path/res-123/ext/?param1=v1,v2,v3') - URL is cut on the first comma in the preview. **Issue:** URL regex did not match URLs containing comma-separated query parameters, causing them to be truncated. **Fix:** Updated the regex to include commas. opw-5042131 Forward-Port-Of: odoo/enterprise#94220
Cashiers can now type password digits directly on a keyboard when the number entry popup is open, instead of being limited to the on-screen buttons. This makes cashier switching and password entry faster and more convenient in Point of Sale.
Original PR description
Before this commit, when the NumberPopup was open (for example, when entering the cashier password), the keyboard input was ignored because the overlay manager blocked all keyboard events while any popup was active. As a result, it was only possible to use the on-screen number buttons. After this commit, the keyboard input is allowed when a NumberPopup is open, enabling users to type the password directly using the keyboard. opw-5152235 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#230626
Fixes a problem that could show an error after users validated the last available batch payment during bank reconciliation. When no batch payments remain, the screen now switches to matching existing entries so accounting users can continue their workflow without interruption.
Original PR description
Issue: Error is raised when there are no batch payments found in `saveSearchState()` Purpose of this PR: We display the match existing entries if there are no batch payments found. Steps to Reproduce on Runbot: install accounting make a batch payment reconcile single batch payment with statement line while on Batch Payments Tab opw-4807527 Forward-Port-Of: odoo/enterprise#87388
Social Marketing post previews now correctly recognize links that include comma-separated values or similar special characters in their parameters. This prevents links from being cut off in previews, helping users publish accurate social posts without manual workarounds.
Original PR description
**Steps to reproduce:** - Go to `Social Marketing` app. - Click on `New Post`. - Select Facebook for preview (should not matter). - Write a message with an URL which have comma-separated parameters. (e.g 'TEST URL https://example.be:8080/path/res-123/ext/?param1=v1,v2,v3') - URL is cut on the first comma in the preview. **Issue:** URL regex did not match URLs containing comma-separated query parameters, causing them to be truncated. **Fix:** Updated the regex to include commas. opw-5042131 Forward-Port-Of: odoo/enterprise#94220
The employee salary contract testing flow was updated to stay aligned with recent underlying changes. This helps keep automated checks reliable and reduces the risk of unnoticed issues in salary contract workflows.
Original PR description
This commit handles the change in test case due to the modification in the following commit [1]. [1]=https://github.com/odoo/odoo/pull/227819/commits/360b384ba4e24
This update improves internal test helpers used by the website editor so tests wait properly for sidebar updates and related background work. It helps reduce flaky automated tests, making future website editor changes safer and more reliable without changing the user experience.
Original PR description
We need a helper to wait enough Forward-Port-Of: odoo/odoo#226582
Resolved issues and error corrections
This change removes an inappropriate demo account from the UK accounting setup and corrects bank and cash account prefixes so they behave like prefixes rather than full account numbers. This helps avoid confusing or unrealistic account defaults when configuring UK localization.
Original PR description
That account is meant to be a demo data, created in `hr_payroll_account It was probably exported without much consideration during this refactor 1017d6278b665e0f00ec63d7ed94a5aaee500682 Same goes for the bank and cash prefixes: having a full number up to the last digit doesn't make sense for a prefix.
Changing the quotation template on a sales order now removes the previously linked quote calculator spreadsheet. This prevents sales teams from using outdated calculator data tied to the old template and keeps the order aligned with the selected template.
Original PR description
Step to reproduce: - Create a new SO - Add a customer and quotation template to the order - Click on quote calculator smart button - Return to sale order (click on SO number in top left) - Change the quotation template - Result: it does not change the quote calculator that is linked to the new quotation template Cause: - Clicking on Quote Calculator creates a copy of the quotation template spreadsheet and links it to the SO. https://github.com/odoo/enterprise/blob/8bc6098335d283e6d210dc788463a8ef8c559b14/spreadsheet_sale_management/models/sale_order.py#L30-L35 - When the quotation template is later changed, the spreadsheet linked to the old template remains attached to the SO. Fix: - On changing the sale_order_template, the old spreadsheet should be unlinked from the SO. - Keeping it linked is inconsistent, as it does not matches the current template opw-4998587 Forward-Port-Of: odoo/enterprise#95861 Forward-Port-Of: odoo/enterprise#93970
Creating a new Helpdesk ticket could fail when a stage had a positive “Days to rot” setting. This change adds test coverage to ensure that scenario stays fixed, helping teams avoid interruptions when logging support requests.
Original PR description
Currently an error occurs when user creates the helpdesk ticket. Steps to Reproduce: - Install the `helpdesk` module. - Go to `Stages` and, in the `Kanban view`, open the `New Stage` record. - Set a value `greater than 0` in the `Days to rot` field. - Go to `Tickets` and click `New`. `TypeError: unsupported operand type(s) for +: 'bool' and 'datetime.timedelta'` This commit adds a test for this [PR](https://github.com/odoo/odoo/pull/230271). sentry-6927500374
Payroll now uses the correct work entry date field when finding related records for payslips. This prevents payroll processing issues caused by outdated field references after the work entry data model changed.
Original PR description
There is no more date_start and from in work entries. Use date instead.
Fixed an issue in Mail calls where, after another participant stopped sharing their screen, that person stayed incorrectly highlighted instead of returning the call to the full participant view. This improves meeting clarity by ensuring everyone in the call is shown again as expected.
Original PR description
Before this commit, when another user stops the screen sharing, said user would be now focused (the expected behavior is showing all call participants). Steps to reproduce: 1. Have a call between user A and B 2. As user A start and then stop Screen Share 3. Observe on user B that user A is focused This happened because the activeRtcSession would not be correctly cleared (regression introduced in [1]). This commit fixes the issue by reintroducing the clearing of the activeRtcSession in a more declarative way. [1]: https://github.com/odoo/odoo/pull/221019 task-5090261
This change prevents an analytic distribution field from relying on company information where that information is not available. It helps avoid errors when configuring salary rules, keeping payroll-related setup smoother and more reliable.
Original PR description
Before this commit, the widget analytic_distribution has a field dependency on company_id. But this widget is used for the field analytic_distribution in the model "hr.salary.rule" and this model doesn't have a field "company_id". So to solve this issue, this widget is duplicated (with/without company). task-5155490 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
Product names in selection dropdowns now wrap onto multiple lines instead of forcing horizontal scrolling. This makes choosing products with long names cleaner and keeps hover highlighting visually consistent.
Original PR description
Steps to Reproduce: 1. Install `eCommerce`. 2. Add a product with a name longer than 30 characters. 3. Drop the _Add to Cart_ snippet. 4. In Choose record option, search for the product. 5. Hover…
Steps to Reproduce: 1. Install `eCommerce`. 2. Add a product with a name longer than 30 characters. 3. Drop the _Add to Cart_ snippet. 4. In Choose record option, search for the product. 5. Hover over the product name and try to scroll horizontally. Issue: The product name does not wrap, causing horizontal scrolling. Additionally, the hover background is applied only to the visible viewport area, breaking visual consistency. Cause: The dropdown items had `d-flex`, which makes them flex containers. By default, flex containers prevent text from wrapping and force content to stay on a single line, which caused horizontal overflow. Fix: Removed the `d-flex` class from the _DropdownItem_ and added `text-wrap` to allow product names to wrap onto multiple lines. This eliminates horizontal scrolling and ensures the hover background covers the entire item. Additionally, removed the `align-items-center` class from _DropdownItem_ and `text-wrap` from the child div, as they were unnecessary. Behaviour in 18.4: <img width="1042" height="441" alt="image" src="https://github.com/user-attachments/assets/377047d0-0ea0-4ad8-8f6c-7a62ebf56398" />
The timesheet import template has been updated to include a missing description in one of its sample rows. This prevents errors when users import timesheet data using the provided template, making the process smoother and more reliable.
Original PR description
The previous import template for timesheet had a row without description causing an error during import. This commit fills the empty cell of the import template. task-5159539
This update adjusts an internal Mail app test related to link previews so it is formatted more clearly and runs more reliably. It helps maintain quality around link preview behavior without changing what users see in the product.
Original PR description
Forward-Port-Of: odoo/odoo#230833
Cashiers can now enter password numbers using a physical keyboard when the password popup is shown, instead of being limited to on-screen buttons. This makes POS login and cashier switching faster and less frustrating for staff using keyboard-equipped terminals.
Original PR description
Before this commit, when the NumberPopup was open (for example, when entering the cashier password), the keyboard input was ignored because the overlay manager blocked all keyboard events while any popup was active. As a result, it was only possible to use the on-screen number buttons. After this commit, the keyboard input is allowed when a NumberPopup is open, enabling users to type the password directly using the keyboard. opw-5152235 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#230626
Odoo now prevents price rules based on another pricelist from being saved unless that source pricelist is selected. This avoids incorrect product pricing when rules are created outside the standard screens, such as through custom views or integrations.
Original PR description
Before this commit, only a view-level required attribute ensured that pricelist items with `base=='pricelist'` have a `base_pricelist_id` set. Creating pricelist items from a custom view or the API or the shell could result in missing values for this field, causing `_compute_base_price` to incorrectly assume that `base=='list_price'`` This commit introduces a new constraint ensuring any pricelist whose price is `base`d on an "Other Pricelist" has a value for `base_pricelist_id`. Note: in the views, `base_pricelist_id` is required if `compute_price == 'formula' and base == 'pricelist'` but the first condition is not neeeded because `_onchange_compute_price` sets `base` to `'list_price'` when `compute_price!='formula'` --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#230438
This fixes a visibility issue that could hide payroll accounting distribution settings when Payroll and Accounting were installed independently. Users will now be able to access the expected configuration option, reducing setup confusion.
Original PR description
If payroll and accounting are installed standalone, the application_group is never made visible task-5160204
Social Marketing previews now correctly recognize URLs that include comma-separated parameters and other special characters. This prevents links from being cut off in drafted social posts, reducing preview errors before publishing.
Original PR description
**Steps to reproduce:** - Go to `Social Marketing` app. - Click on `New Post`. - Select Facebook for preview (should not matter). - Write a message with an URL which have comma-separated parameters. (e.g 'TEST URL https://example.be:8080/path/res-123/ext/?param1=v1,v2,v3') - URL is cut on the first comma in the preview. **Issue:** URL regex did not match URLs containing comma-separated query parameters, causing them to be truncated. **Fix:** Updated the regex to include commas. opw-5042131 Forward-Port-Of: odoo/enterprise#94220
This fixes an internal test issue that could occur when automated checks ran across midnight. It helps keep accounting follow-up report validation stable and avoids false failures in the release process.
Original PR description
Tests https://runbot.odoo.com/odoo/runbot.build.error/159772 where failing when setUpClass run before midnight and the test itself run at/after midnight because `today` was not the same. As follow-up report divides the lines per partner to due/overdue utilizing `today` in comparison, This resuls in different lines than expected.