Friday, June 20, 2025
14 changes
2 changes
Resolved issues and error corrections
The bank statement screen no longer shows an empty reconciliation button when no reconciliation models are available. This prevents users from clicking a broken option and makes the interface clearer.
Original PR description
Before this PR: An empty reconciliation button was displayed on the bank statement line when no reconciliation model existed, causing an error upon clicking. After this PR: That empty button is no longer shown if there are no applicable reconciliation models, avoiding the error and improving UI clarity. task-4876367
The Accounting app now hides a bank reconciliation button when its related model has been deleted. This prevents users from seeing an unlabeled button and avoids an error when reviewing bank transactions.
Original PR description
This error occurs because the model ID was deleted, but the button still references it. As a result, the button is displayed without a label, and clicking it leads to an error. Steps to reproduce: --- - Install the `Accounting` module - Accounting > Bank > Models (under Reconciliation) and delete all reconciliation models. - Go to Bank Transactions > Dropdown any statement line > click on button (without label) Traceback: --- `ValueError: Expected singleton: account.reconcile.model()` This commit resolves the issue by hiding the button when `model.id/label` is null. sentry-6674669584
3 changes
Resolved issues and error corrections
This update adjusts internal tests in Documents and Spreadsheet Edition so they match recent changes to how model selection data is represented. It helps keep quality checks reliable and prevents false test failures after the related platform change.
Original PR description
…or class
This commit is the counterpart of https://github.com/odoo/odoo/pull/215137.
Note that the mocks of `display_name_for` in `documents` were not correct, as they were returning a list of strings instead of a list of objects `{ model: string, display_name: string }`.9 changes
Resolved issues and error corrections
This fix prevents Discuss call tests from keeping old browser window data in memory after each test ends. It lowers test memory usage and helps keep automated testing more stable without changing end-user functionality.
Original PR description
Before this commit, discuss call HOOT tests retained the window object after test ended. Retained memory was about 2.5Mb-4Mb per test. An earlier PR [1] fixed a similar issue from a `const` object…
Before this commit, discuss call HOOT tests retained the window object after test ended. Retained memory was about 2.5Mb-4Mb per test. An earlier PR [1] fixed a similar issue from a `const` object being used in field default value. This was a problem because JS models internal code is keeping a reference to this object, and since HOOT suite test reuses the same window object, the window of each test were retained. The PR [1] fixed the issue by not setting object as default value of the field. Note that the default value and its presence in internal code of JS models happened for all tests that use `@mail` static files. That means this PR `[1]` fixed a retained memory for all `@mail` and related tests. While this fixed many tests, we still observed this retained memory on all discuss call tests. This happens because while the default value no longer uses this shared object, the computed value still does. Therefore call tests were sharing the const and thus retaining the window object. Note that the computed method is implicitly lazy, so this is only invoked in code that actually uses this `iceServers` field, hence why only discuss call tests were still affected by the issue. This commit fixes the issue by replacing the DEFAULT_ICE_SERVERS object by GET_DEFAULT_ICE_SERVERS function. This ensures each test use a different object, thus preventing retaining the window object after test has ended. [1]: https://github.com/odoo/odoo/pull/204521
The test setup now gives the test user the required permission group before checking unit of measure fields. This prevents automated test failures and helps keep the inter-company sales and purchasing workflow stable after recent platform changes.
Original PR description
This commit fixes tests failure caused by odoo/odoo#212098. The mentioned PR removed all occurrences of uom fields without the uom group. That led to failing any test that tried to access uom field without having the uom group. This commit ensures that the uom group is applied on the test user before accessing uom field.
The AI field refresh action now returns linked record values in the format expected by the updated system. This prevents refreshed many-to-one AI fields from incorrectly displaying “No Access,” improving reliability for users working with AI-generated field values.
Original PR description
Purpose: -------- Following the changes in [1], the relational model uses an object instead of an array for m2o values. However, the "Refresh value" button next to an ai m2o property still returns an array, which results in showing "No Access" as m2o value. This commit changes the returned value to an object. Task-4775956 [1]: https://github.com/odoo/odoo/pull/202534
Point of Sale receipts for GCC companies now show the cashier line only once instead of repeating “Served by.” This makes receipts cleaner and avoids confusing duplicate wording for customers.
Original PR description
Steps to reproduce: 1. Install l10n_gcc_pos. 2. Set the company’s country to a GCC country. 3. Print a POS receipt. Issue: - The receipt displays the phrase 'Served by' multiple times first two hardcoded and third one from prefix due to the cashier prop already including the prefix 'Served by '. - https://github.com/odoo/odoo/blob/f2dc7b5aaaf60d23e42e92f1ca0c6eed4ea13bf2/addons/l10n_gcc_pos/static/src/overrides/app/screens/receipt_screen/receipt/order_receipt.xml#L22 - Standard header data https://github.com/odoo/odoo/blob/0f8546528566acbcd2dd2fc1a99ae148ea2a7895/addons/point_of_sale/static/src/app/store/pos_store.js#L2099-L2105 Solution: - Replace cashier prop with gcc_cashier to return only the cashier’s name, without the 'Served by ' prefix. This avoids duplication and allows the template to handle translations consistently. opw-4724578
Fixes an error that occurred when users edited a scheduled email and added another attachment from the chatter. This makes scheduled email editing more reliable and prevents users from being interrupted by a traceback.
Original PR description
Steps to reproduce - open a record from Contacts app - from chatter, click `send mail` , open full mail composer - add a attachment - schedule a message, by clicking '▼' on send message - Again from…
Steps to reproduce - open a record from Contacts app - from chatter, click `send mail` , open full mail composer - add a attachment - schedule a message, by clicking '▼' on send message - Again from chatter, click on edit the same message - try to add another attachment Observation: A traceback is received Issue: Currently, `onFileUploaded` function attempts to get `res_ids` from `data`, https://github.com/odoo/odoo/blob/69828835c926485ec80ed92e14dd11fbc6c1caaa/addons/mail/static/src/core/web/mail_composer_attachment_selector.js#L25-L30 but in case message is scheduled, which is stored in `mail.scheduled.message` ,when editing it we do not have `res_ids` https://github.com/odoo/odoo/blob/69828835c926485ec80ed92e14dd11fbc6c1caaa/addons/mail/wizard/mail_compose_message.py#L120 instead we have `res_id` field, https://github.com/odoo/odoo/blob/69828835c926485ec80ed92e14dd11fbc6c1caaa/addons/mail/models/mail_scheduled_message.py#L46 hence a traceback is received when trying to json parse a `undefined` value. Fix: Adapt the `onFileUploaded` function to consider both, `res_ids` and `res_id` opw-4839926 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
A website testing tour was corrected so it more accurately detects when popup animations have finished and when scrolled elements are hidden. This helps keep automated website checks reliable and reduces false failures during quality assurance.
Original PR description
In this commit, we fix the tour snippet_popup_and_animations. For trigger: "...olumns .row > :last-child:not(:has(.o_animating))", :not(:has) is always true because no child has class o_animating. When the goal is check that the element has not a class, just use :not Also, when the scroll is well done, the element become invisible. So we need to add :hidden.
The Point of Sale product card now shows the last weighed value with adjusted text sizing. This makes the weighing information easier to read for cashiers when handling products sold by weight.
Original PR description
This small PR changes the text size displaying last weighed value for a product **Before:**  **Now:** 
The date range picker now lets users click an already selected start date to continue choosing an end date. This removes an unnecessary workaround and makes date range entry smoother and more intuitive.
Original PR description
This commit fixes an issue in the datetime_picker where clicking on an already selected start date would not initiate the selection of an end date. As a result, users were forced to select a different date first before being able to reselect the same start date. With this fix, clicking the start date again now correctly triggers the end date selection phase, improving the overall usability of the daterange picker. task-4845373
Pasting plain text into code blocks now keeps indentation using regular spaces instead of hidden non-breaking spaces. This makes copied code easier to edit, read, and reuse without unexpected invisible characters.
Original PR description
### Rationale for omitting `nbsp` in code blocks: - Code blocks, usually rendered within `<pre>` tags, inherently preserve whitespace & indentation through browser’s white-space: pre CSS behavior. Thus, inserting `nbsp` to maintain space visibility is redundant & may introduce hidden characters. ### Description of the issue/feature this PR addresses: - Indentation pasted as plain text inside code blocks was replaced by `nbsp`. ### Desired behavior after PR is merged: - Pasting plain text inside code blocks preserves indentation using normal spaces, avoiding insertion of `nbsp`. task-4815939 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
German POS receipts using Fiskaly now show official, readable names for TSS security information instead of internal technical field names. This makes receipts clearer for customers and staff and helps businesses present required certification details in a more understandable way.
Original PR description
Currently when using Fiskaly, the receipt gets printed with the technical names of the tss values. Steps to reproduce: ------------------- * Set up the db to use fiskaly * Open restaurant * Place and pay an order > Observation: On the receipt screen the name of the tss values are shown as: transaction_number, signature_algorithm, client_serial_number, .... Why the fix: ------------ Beore this commit https://github.com/odoo/enterprise/commit/d1a94147060083da54f9423f8c379676fbb7db66#diff-960ffa6839618d084dd5de6e29458ef68766a31250fc7d296512ec5358f04056 we were using a dictionnary `name, value` when using tss information, cf `_initTssInformation()` in `l10n_de_pos_cert/static/src/overrides/models/models.js`. We re-introduce this behavior and revert the following commit https://github.com/odoo-dev/enterprise/commit/9f75e3fe092bd838fffb11a35a8d854afff71869 to use the official names instead of the technical ones. opw-4822342
This update improves and fixes Odoo's internal unit test coverage for Hoot-based testing across several Enterprise apps. It helps keep future changes safer by making automated tests clearer and more reliable, with no intended impact on end users.
Original PR description
## Pull Request HOOT (PRHOOT) 33 This pull requests brings various improvements and fixes to Hoot and the Odoo unit test ecosystem. See the different commit messages for more details. Note: these changes are made in stable to avoid having to support multiple versions of the HOOT API. As such, these changes are intended to be strictly limited to unit tests as to not put the rest of the code base at risk. Community: https://github.com/odoo/odoo/pull/213223