Thursday, October 16, 2025
21 changes · saas-18.2
Resolved issues and error corrections
This fixes an issue that prevented setting up related one-to-many list fields when no matching reverse link field existed on the current model. It helps administrators and implementers configure data relationships more reliably without being blocked by an unnecessary validation requirement.
Original PR description
…n_field Before this commit, it was not possible to create a related one2many without a relation_field (inverse) However, the relation_field of a relation cannot be the one of the original field (because it doesn't exist on the current model) After this commit, this flow works. opw-5155440 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 Forward-Port-Of: odoo/odoo#231434 Forward-Port-Of: odoo/odoo#231187
The Point of Sale customer list now shows the deposited amount for customers who have made deposits through Customer Account. This helps cashiers and staff quickly see available customer deposits without missing important account information.
Original PR description
The partner list in the PoS was never showing the deposited amount for the partners. Steps to reproduce: ------------------- * Open PoS and make a deposit for a partner using the Customer Account * Check the partner list > Observation: No deposited amount is shown Why the fix: ------------ We backport the part of this fix https://github.com/odoo/enterprise/commit/bf4b6043b999b4a081b1afa73fc4113bf4db28f8 that changes the partner list to show the deposited amount. opw-4954740 Forward-Port-Of: odoo/odoo#226861
Odoo now shows a clear validation message when a user enters a check number that is too large for a bank journal. This prevents confusing technical errors and helps accounting users correct the value immediately.
Original PR description
**Issue** When trying to set a very large value as *Next Check Number* in a Bank Journal, Odoo raises a low-level `RPC_ERROR` caused by a PostgreSQL `integer out of range` error. This results in a technical traceback instead of a clear message to the user. **Steps to Reproduce** 1. Go to *Accounting > Configuration > Journals* 2. Open the Bank Journal 3. Go to the *Outgoing Payments* tab 4. Enable *Manual Numbering* 5. Set *Next Check Number* to `2147483648` **Root Cause** The field `ir.sequence.number_next` is stored as an integer in the ORM. Any value greater than `2,147,483,647` (max signed 32-bit integer) causes PostgreSQL to raise an overflow error when saving. Since the error occurs deep in the ORM write call, the user only sees a generic RPC error without explanation. Opw-5042096 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#225103
This update fixes how Odoo checks and updates old session history records when session files are no longer present. It processes large volumes of records in smaller batches, reducing the risk of long-running operations and improving reliability during maintenance.
Original PR description
The commit: https://github.com/odoo/odoo/commit/6fb676a4e3566c781ddd57480a200cddc88d99ae adds the model `res.device.log` which will hold a lot of data. In order to use this data efficiently, we decide to process data with the boolean field `revoked` equal to `True` (via the indexes). This boolean field indicates whether the session that generated the log is still present on the disk. The commit: https://github.com/odoo/odoo/commit/e4c9d1794f2d4873755a8692f4861ba043fac943 adds an automatic verification mechanism to change this value if necessary. Between the time the model was created and the time the verification mechanism was implemented, the table may have become too large. This will result in a very long write within a transaction. The purpose of this commit is to introduce a method for performing the batch writing. Forward-Port-Of: odoo/odoo#225736
This fixes a problem where the import screen could crash if a model provided more than one sample import template. Users can now see and choose from multiple templates reliably, with slightly cleaner button spacing.
Original PR description
Import templates are defined on models to allow developpers to provide
sample import files to users. These templates are fetched by the client
as an array of objects of the form {label: string, template: string},
where label is the label to display and template the URL of the file.
The iteration on `importTemplates` goes through this list, and if more
than one element is present in it, the t-key for both elements will be
the same (`[[object Object]]`), leading to a crash of the client
action's template.
This commit uses the 'template' url as the key, as it should be unique
(the label is less trustworthy, as it is translatable).
It also slightly changes the styling, as having an mb32 between multiple
buttons looked rather bad.
Forward-Port-Of: odoo/odoo#231521
Forward-Port-Of: odoo/odoo#231407When users load additional website themes, the configurator now shows a full-screen loading overlay. This prevents users from accidentally selecting an existing theme before the new theme list has finished loading, making setup more reliable.
Original PR description
Steps to reproduce: 1. Create a new website and proceed to the theme configuration step. 2. Click on View More Themes. -> You’ll notice a loading effect on the button, but the existing themes remain selectable. Before this commit: Users could still select existing themes while additional themes were being loaded. After this commit: A fullscreen loader is displayed while loading more themes via the View More Themes button, preventing any unintended interactions. task-4661292 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 Forward-Port-Of: odoo/odoo#230557
This fix prevents a crash in Discuss calls when a direct peer-to-peer call offer is processed after a delay. It makes call handling more reliable for users by avoiding errors caused by outdated connection information.
Original PR description
Before this commit, since https://github.com/odoo/odoo/pull/205198, the handling of an offer can be arbitrarily delayed by the `acceptOffer` callback. This could lead to a traceback when the reference to `peer` is stale by the time the event is handled. Forward-Port-Of: odoo/odoo#231620
Creating a first timesheet no longer fails when an employee does not have access to the company's internal project. The system now leaves the default project blank in that case, allowing the user to continue without an error.
Original PR description
To reproduce: ============= - make the internal project of the company for invited internal users only - with internal user that doesn't have access to the internal project, and no previous timesheet created, try to create a timesheet - you get a traceback Problem: ======== when not having a previous timesheet, in the default value we set project_id based on the internal project of the company. But if the user doesn't have access to this project, it raises an access error. Solution: ========= check if the user has access to the internal project of the company, if not, use `False` as default value. opw-5119839 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#229818
Editing or hovering over display settings for website form fields no longer removes previously configured spacing offsets. This prevents accidental layout changes and saves users from having to reapply spacing when adjusting form appearance.
Original PR description
Before this commit, changing display parameters of a field (label position, description, etc.) would remove the offset already added. It would require to add them again if a change was made on the display, even if the mouse just hovered the buttons. This commit solves the issue. Steps to reproduce the bug: - Add a form snippet - Add an offset to a field - In the snippet customization, hover over the label position (The offset was removed for good) task-3675509 Forward-Port-Of: odoo/odoo#231297 Forward-Port-Of: odoo/odoo#181344
Romanian eTransport exports now convert Greece’s country code from “GR” to the EU VAT-standard “EL”. This helps submitted transport documents pass validation and keeps partner and transporter country information consistent.
Original PR description
Added a mapping for EU VAT country codes to ensure that the VAT prefix aligns with EU standards (e.g., 'GR' -> 'EL') in EDI exports. ## Description of the issue/feature this PR addresses: This PR…
Added a mapping for EU VAT country codes to ensure that the VAT prefix aligns with EU standards (e.g., 'GR' -> 'EL') in EDI exports. ## Description of the issue/feature this PR addresses: This PR adds country code mapping functionality to ensure compatibility with the format required by the Romanian eTransport system. Specifically, it adds the conversion of the country code "GR" (Greece) to "EL" according to European VAT standards and applies this mapping to relevant fields in transport documents. ## Current behavior before PR: Before this PR, the country code for Greece was sent as "GR" to the eTransport system, which could cause validation errors because in European VAT systems, Greece is identified by the code "EL". Also, there was no consistent mapping for country codes in different parts of the system. ## Desired behavior after PR is merged: After implementing this PR, country codes will be correctly mapped to comply with European VAT standards, especially the conversion of "GR" to "EL" for Greece. This ensures that documents sent through eTransport contain the correct country codes and will pass system validations. The mapping is applied to country codes for both commercial partners and transporters. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#216122 Forward-Port-Of: odoo/odoo#214621
Tooltips shown in live chat, email/discuss, point of sale, and web emoji features are now included in the standard translation process. This helps users see these interface hints in their selected language instead of untranslated text.
Original PR description
Unless you tell Owl to do so, custom attributes like data-tooltip aren't translated. This commit adds the data-tooltip attribute to the list of translated attributes when missing. *: im_livechat, mail, point_of_sale Forward-Port-Of: odoo/odoo#231541 Forward-Port-Of: odoo/odoo#231006
The Saudi Arabia e-invoicing module now labels the second street/address field as “District” instead of “Street 2”. This helps users enter the correct district or borough information required for Saudi e-invoicing compliance, reducing confusion and data-entry errors.
Original PR description
## Before this commit The `street2` field on `res.company` and `res.partner` was mapped to `cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:CitySubdivisionName`, but its placeholder displayed `Street 2…`. This caused confusion among users, as they assumed it referred to `cbc:AdditionalStreetName`, leading to incorrect data entry and potential non-compliance. ## After this commit The placeholder of the `street2` field has been changed from `Street 2…` to `District…`, clarifying that this field represents the city subdivision (district or borough) of the Seller/Customer, in line with the Saudi Arabia e-invoicing specification. > Task-4951545 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#231676 Forward-Port-Of: odoo/odoo#231160
This update adjusts an internal accounting test so it always includes demo data when running localization checks. It helps keep automated testing consistent across versions and reduces the chance of false test failures, with no direct impact on end users.
Original PR description
In later versions, we improve the testing suite to avoid having to install demo data in order to reduce the testing time. In order to keep the testing configuration simple across versions, we force the installation of demo data instead of only asserting that demo is installed before launching the script. Forward-Port-Of: odoo/odoo#231810 Forward-Port-Of: odoo/odoo#231660
Rating icons in Live Chat, Discuss, and Ratings screens now use a transparent background instead of showing a white box in dark mode. This improves visual consistency and readability for users working with dark mode enabled.
Original PR description
**Current behavior before PR:** The rating images have an unintended white background in dark mode. **Steps to Reproduce:** - Turn on Dark Mode - Go to livechat - Go to Report > Sessions History **Desired behavior after PR is merged:** This PR fixes the issue by applying a transparent background to rating images through the `img_class` option in image widget. The change is applied to: - discuss.channel (kanban, list, form views) - rating.rating (form, kanban views) --- **Before:** <img width="372" height="202" alt="image" src="https://github.com/user-attachments/assets/d573ab3e-62be-4ab2-9c7f-e39bf97cb542" /> **After:** <img width="394" height="141" alt="image" src="https://github.com/user-attachments/assets/6133c231-c634-4afd-a99f-5440ecfe72be" /> task-[4689867](https://www.odoo.com/odoo/project/1519/tasks/4689867) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#215207
This fix restores visibility of weekends and public holidays that occurred before an employee's current contract start date. It ensures past expired contracts are considered when showing working-time information, while still excluding draft contracts that should not affect results.
Original PR description
Since changes made in https://github.com/odoo/odoo/pull/212959, we don't see anymore the week-end and banck holidays before the start date of your current contract. As the goal of the initial commit was to prevent to use the contracts in state 'new', we add the contracts 'exppired' that are contracts of the past that really give information of the working hours. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#231400
This fix prevents Web Studio from saving an invalid link when users create a related field to a contact’s child records from another model, such as sales orders. It avoids crashes during later form updates, making Studio-created customizations safer and more reliable.
Original PR description
On sale order, create a related field to res_partner.child_ids Before this commit, the related field is not stored but has a relation_field to parent_id (res.partner) During an onchange (outside of studio), this will crash. After this commit, we unset relation_field in this case as it doesn't make sense (the relation_field should reference a res.partner field, not a field presetn in the current model) opw-5155440 Forward-Port-Of: odoo/enterprise#97107 Forward-Port-Of: odoo/enterprise#96950
The Point of Sale customer list now correctly shows deposited amounts for partners after deposits are made through Customer Account. This helps staff see customer balances directly in PoS and avoid confusion when managing deposits.
Original PR description
The partner list in the PoS was never showing the deposited amount for the partners. Steps to reproduce: ------------------- * Open PoS and make a deposit for a partner using the Customer Account * Check the partner list > Observation: No deposited amount is shown Why the fix: ------------ We backport the part of this fix odoo/enterprise@bf4b604 that changes the partner list to show the deposited amount. opw-4954740 Forward-Port-Of: odoo/enterprise#95597
This update corrects an internal calculation issue in accounting reports that could lead to unreliable report values in some cases. It helps ensure financial reports are generated consistently and accurately for users.
Original PR description
Forward-Port-Of: odoo/enterprise#97144
This fix prevents the Helpdesk knowledge base search suggestions from causing an error when users navigate results with the keyboard. It makes the search experience more reliable for customers using the self-service helpdesk pages.
Original PR description
Steps to Reproduce: 1. Navigate to '/helpdesk/customer-care-1/knowledgebase'. 2. Enter any text in the search bar to trigger suggestions. 3. Press the down arrow key twice. 4. A traceback error occurs, indicating an Odoo Client Error. Before this commit, we had a crash when a user types something in a searchbar in the website helpdesk and do keydowns: "Cannot read properties of undefined (reading 'nextElementSibling')" To fix this, we need to add the 'data-bs-toggle' attribute to let BS find it to set '_element' (which must be the previous sibling of the dropdown-menu). This data attribute was probably not set before because in this case the BS dropdown is not used on a button or a link as documented; we use it as an autocomplete functionnality. task-4752497 Forward-Port-Of: odoo/enterprise#97149 Forward-Port-Of: odoo/enterprise#90228
This fixes how French VAT report data is prepared for ASPOne submissions so key name and address fields respect required length limits. It helps prevent filing issues caused by values that do not match the official XML-EDI format.
Original PR description
The aim of this commit is making sure that the field Designation, DesignationSuite1, DesignationSuite2, AdresseVoie and AdresseComplement are correctly filled. Indeed, the XSD implied that these fields have to be respectively 35, 35, 35, 30 and 35 characters max. [Documentation 2025](https://www.aspone.fr/files/tutoriaux/xmledi/Documentation_XML-EDI.zip) no task id Forward-Port-Of: odoo/enterprise#97199
Miscellaneous changes
opw-5018450 Forward-Port-Of: odoo/odoo#231394
Original PR description
opw-5018450 Forward-Port-Of: odoo/odoo#231394