Thursday, December 11, 2025
18 changes · 19.0
Enhancements to existing features
This update allows users to accurately display the account holder's name alongside bank details, even when it differs from the partner's name. Previously, the account holder name was automatically set to the partner's name, which is now corrected to ensure accurate reporting and reconciliation. This change enhances data clarity and reduces potential errors.
Original PR description
Allow changing of the account holder name in case it is different from the partner name which was the computed default. Task-5222712 [Related PR](https://github.com/odoo/enterprise/pull/98572)
Resolved issues and error corrections
This update resolves a bug in the Odoo Studio interface that caused incorrect field choices when switching between different field types. The fix ensures that field selections always reflect the currently chosen field, preventing errors and improving the user experience. This improves the reliability of the Studio tool.
Original PR description
Before this commit when selecting fields in studio caused `getFieldChoices` to read from this.props which could still reference the previously selected field’s relation. when switching from a non-relational field to a relational one, the stale props sometimes provided an incorrect `relation` value This resulted in incorrect choice and errors such as `Invalid model name: undefined` during loadField. After this commit getFieldChoices now uses the updated props and safely guards relation lookups. this ensures that the available choices always correspond to the currently selected field and prevents loading choices from the previous field’s relation and avoids the traceback. task-5241639
This update resolves a technical issue that caused a traceback when reloading the WorkEntries page in Studio. The fix ensures Studio correctly loads the page action, preventing errors and improving stability. This change primarily impacts the Studio user experience.
Original PR description
**Verison:** - saas-18.2 **Steps to reproduce:** - Go to an employee form view. - Click on the WorkEntries smart button. - Open Studio. - Reload page. **Issue:** - A traceback appears after reloading the page in Studio. **Cause:** - The smart button URL uses the model name hr.work.entry, but Studio’s service_action expects a path without dots. Because the action cannot be loaded correctly, the view breaks and triggers the traceback. **Solution:** - Return the proper path instead of the model name so that the action loads correctly. This prevents the error when reloading the page. task-5236317 Forward-Port-Of: odoo/odoo#239335 Forward-Port-Of: odoo/odoo#235662
This update resolves an issue where multiple daily attendance entries were incorrectly merging, resulting in inaccurate duration calculations. The fix ensures that each attendance entry is accurately recorded, preventing overlaps and providing correct work time data. This improves the reliability of employee time tracking.
Original PR description
In this commit, we fixed the merge of multiple attendance work entries on the same day. Currently, when you create multiple attendances on the same day, the work entry duration is considering the last one's duration. Reason: converting a work entry into intervals will be in a full day interval which is wrong, it will consider previous work entries as included ones within the new one. Fix: we need to regenerate the old ones too. Related task: 5405642
This update fixes a technical error preventing the Nilvera E-Invoice module from correctly generating invoices when using bank accounts. The issue stemmed from a mismatch in how the system identifies address fields, specifically when dealing with bank records. This fix ensures invoices can now be successfully sent.
Original PR description
**Steps to reproduce:** * Install the **Türkiye - Nilvera E-Invoice (l10n_tr_nilvera_einvoice)** modules * Configure test mode following the [setup…
**Steps to reproduce:**
* Install the **Türkiye - Nilvera E-Invoice (l10n_tr_nilvera_einvoice)** modules
* Configure test mode following the [setup guide](https://docs.google.com/document/d/1EUzvTBnSm9-VwIfBsX299MHGXIVys-uijnsJ1fpz7vI/edit?tab=t.0).
* Create a bank account for the main company and fill the **Bank** selector (bank identifier dropdown).
* Create and attempt to send a customer invoice via Nilvera.
**Observed behavior:**
* A server error occurs: `KeyError: 'country_id'` in `l10n_tr_nilvera_einvoice/models/account_edi_xml_ubl_tr.py` at line 172 while generating `<cac:PayeeFinancialAccount>`.
* The invoice cannot be sent.
**Cause:**
* `_get_address_node()` determines field names using `vals.get('model', 'res.partner')`.
* When the parent class calls `_get_address_node({**vals, 'partner': bank})` with a `res.bank` record, it does **not** pass a `model` parameter.
* The method falls back to `'res.partner'` and attempts to read `country_id` from a `res.bank` record, which instead uses the field `country`.
* This mismatch triggers a `KeyError`.
**Fix:**
* Detect the appropriate field set by checking `partner._name` rather than relying on `vals.get('model')`.
* Use `country` / `state` when the record is `res.bank`.
* Use `country_id` / `state_id` when the record is `res.partner`.
opw-5380246This update corrects a potential issue in the Chilean VAT (l10n_cl_edi) module where an incorrect sequence number could be generated for VAT documents. Previously, if a specific journal setting wasn't configured, the system might produce sequences starting with 'False'. This fix ensures accurate and reliable sequence generation, preventing reporting errors.
Original PR description
Before this commit, if the journal is not set to using the document (l10n_latam_use_documents), the method _get_last_sequence could return a sequence that starts with False. opw-5404813 Forward-Port-Of: odoo/enterprise#101824
This update corrects a display issue in the SA EDI version of vendor bills. When a bill's currency doesn't match the company's local currency, the amounts shown in the currency conversion section were incorrectly appearing as negative. The fix ensures accurate currency calculations and proper bill formatting.
Original PR description
**Steps to reproduce:** - Create a vendor bill with currency not matching the currency of an SA company - Print the bill in the SA EDI specific format (is not shown on preview) or export as PDF **Issue:** Amounts displayed in the currency conversion section of the bill incorrectly show negative values for subtotal and total. **Solution:** The view affecting the bill in question referred to `o.amount_untaxed_signed` and `o.amount_total_signed` where either unsigned `o.amount_untaxed` and `o.amount_total` or `abs(o.amount_[...]_signed)` should be used instead, as in other localizations. opw-5253213 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#236654
This update resolves an issue where top-up events would fail when a company's archived account was used. The team has simplified the reconciliation process, now skipping it as it's considered a 'nice to have'. This ensures top-ups function correctly even with archived accounts.
Original PR description
Before this commit: Webhook 'topup.succeeded' events would fail if the company `transfer_account_id` field is set to an archived account at the reconciliation step After this commit: As the reconciliation is a "nice to have", we skip the reconciliation step Steps to reproduce: - Install `hr_expense_stripe_demo` - Fill the KYC of doom - Archive the account set on the company `transfer_account_id` field - Create a top-up - Nothing happens, error 550 logged on IAP test
This update fixes a technical issue that prevented product catalog search options from being properly translated into different languages. By wrapping labels with the '_t' function, the system now supports localization, ensuring consistent and accurate translations across all Odoo languages. This improves the user experience for international customers.
Original PR description
When adding the search options in the catalog view[^1], the labels were not made translatable. This commit wraps the labels with the _t function to ensure they can be translated into different languages. [^1]: https://github.com/odoo/odoo/commit/96dc626f8d489817c944420178c22dba5c916799
This update fixes a technical issue related to how audit status information is calculated in financial reports. The previous calculation used incorrect settings, leading to inaccurate reporting. This change ensures that audit status data is correctly processed across various localized versions of Odoo Enterprise.
Original PR description
When computing allow_account_audit_status_on_lines, we used the wrong field_name and default_value. Removed all the localized value as this fix should have been the one done in the first place. task-5106852
This update resolves an issue where the Gantt chart would crash when event start or end dates were cleared. The fix ensures the Gantt calculation only runs when a valid date range exists, preventing errors caused by comparing dates with empty values. This improves stability and usability of event scheduling.
Original PR description
When removing the start or end date on an Event, the system raises a traceback during Gantt information computation. **Steps to Reproduce:** 1. Install `website_event_track_gantt` module. 2. Create a new Event. 3. Add at least one **Track** with a track **Date** and **Duration**. 4. In the Event form, clear the Start or End Date field. **Error:** `TypeError: '<' not supported between instances of 'datetime.datetime' and 'bool'` **Cause:** When the event start or end date is removed, those fields become False. During computation, the system attempts to compare these False values with the track dates (which are real datetimes), resulting in an invalid datetime-boolean comparison, causing the error. **Fix:** This commit ensures the Gantt calculation only executes when the event has a valid date range, avoiding comparisons that include missing values. no id Forward-Port-Of: odoo/enterprise#101541
This update resolves an issue where the color picker test was failing intermittently due to timing problems. The fix ensures the test waits for all steps to complete, preventing unpredictable results and improving the reliability of the website customization process. This enhances the overall quality and stability of the website builder.
Original PR description
__Behavior before commit:__ Since `edit` writes one character after the other, using it on a color picker to write an RGBA color calls `make_scss_customization` when the input value reaches the RGB color. Then, another call is made when the entire color is written (because they are both valid colors). However usually the test finished before the steps for the second call were reached because the `Deferred` was only waiting for the first call. __Fix:__ Wait for all steps to avoid nondeterministic behavior. Runbot error: https://runbot.odoo.com/odoo/runbot.build.error/234621 Forward-Port-Of: odoo/odoo#239441
This update removes the display of guest amounts from the payment screen in the Odoo Restaurant Point of Sale module. Previously, this information was shown for all orders, which was causing confusion and unnecessary data. This change simplifies the payment process for users.
Original PR description
Before this commit, for all of the orders there was the amount per guest displayed in the payment screen. opw-5394429 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes a minor usability issue where clicking the question mark (?) on the website would unexpectedly focus a field. This was causing a frustrating user experience, particularly on mobile devices. The fix ensures the question mark only displays the tooltip, as intended.
Original PR description
On desktop: - Hovering the "?" opens the tooltip; - Clicking on the "?" focuses the field => bug On Mobile: - Clicking on the "?" focuses the field => bug Clicking on the "?" should not focus the field (annoying because it could open a "Search more" on M2O, a bottom sheet, etc.) task-5359752 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update enhances the IoT app by providing clear notification feedback when users enable remote debug. Previously, there was no indication of success or failure when entering the debug token. Now, users will receive a confirmation message, improving the user experience and troubleshooting.
Original PR description
When activating the remote debug from iot app backend there is no feedback when entering the token. We now display a notification to inform whether the remote debug is enabled or not. Task: 5388242
This update resolves a confusing issue with audio/video device selection in Odoo's Discuss calls, specifically on Chromium browsers. The system now correctly requests necessary permissions and displays a clear 'Permission Needed' message when permissions aren't granted, leading to a smoother user experience.
Original PR description
Backport of https://github.com/odoo/odoo/pull/236499 This commit removes the 'Browser Default' placeholder for audio/video device selection on Chromium-based browsers, as they already return their own default device and the placeholder causes confusion. The device-selection dropdown will now display 'Permission Needed' when permissions are not granted. Clicking the dropdown will trigger the permission dialog if the necessary permissions are not granted. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes a discrepancy in the demo data where the maximum paid time off was incorrectly displayed as 21 days. The change ensures the demo data accurately reflects the legal maximum of 24 days for employees working 6 days a week, aligning with current regulations. This update improves the accuracy of the demo environment for testing and training.
Original PR description
In the demo data, the number of paid time off was displayed as 21, when it should be 20. The issue was tracked to the statement used for assigning the working schedule to each employee. Also the maximum time off possible is now 24 days as stated by the law (for people working 6 days a week). task-5172492
This update resolves a technical issue where the POS appointment booking tab displayed incorrectly for users with Arabic language settings. The fix corrects how dates are formatted, preventing a traceback error caused by an incorrect date translation. This ensures a smooth and accurate booking experience for all users, regardless of their language.
Original PR description
Currently, when the user language is arabic and we try to select the booking tab inside pos, a traceback appears. Steps to reproduce: ------------------- * Make sure shop has activate the booking feature * Set appointment type to "Table" * Set user language to arabic * Open pos session * Open the booking tab > Traceback: ... invalid isoformat string Why the fix: ------------ `.toFormat` was responsible for the "translation" of the date to arabic. opw-5380768