Wednesday, February 11, 2026
42 changes · 19.0
Enhancements to existing features
Newly added dropdown choices can now appear in Odoo screens even when no matching database records have been created. This helps stable-version customizations show their options correctly, reducing the need for database updates, although translations for those new choices still require database records.
Original PR description
Previously, when developers use `selection_add` in stable versions, the new selection values could be written to the database (since `field._selection` contains them), but they would not appear in the UI due to missing `ir.model.fields.selection` records. This commit allows newly added selections to be displayed in the field description without requiring database updates. Note: the new selections still cannot be translated without database updates. mainly for enterprise https://github.com/odoo/enterprise/pull/106612 may be also helpful for https://github.com/odoo/odoo/pull/217853 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#247542
This update adjusts the Spanish reporting module to reflect a recent change in account naming conventions within Odoo. This ensures accurate financial reporting for Spanish businesses using the Odoo Enterprise platform. The change is a minor update to maintain data integrity.
Resolved issues and error corrections
The Point of Sale order list now displays order times using the user's language settings. This avoids confusion for teams using 24-hour time formats, such as French or Spanish locales.
Original PR description
In POS, when using a 24h language, the time shown in the order tab (TicketScreen) was always in 12h/AM-PM format instead of 24h.
Steps to reproduce:
-------------------
Set the POS (or user) language to a 24h locale (e.g. French, Spanish) Open POS and create an order
Open the Orders tab and look at the time shown for the order
> Observation:
Time is displayed in 12h (e.g. 4:30) instead of 24h (e.g. 16:30).
Why the fix:
------------
The order tab time was formatted with a hardcoded 12h format ("hh:mm"), ignoring the user’s locale. It now uses the locale’s time format (e.g. localization.timeFormat) so the order tab shows time in 24h or 12h according to the language.
opw-5742177This update adjusts how partner warning messages appear in Accounting so the warning line is visually cleaner. It helps users notice account-related partner warnings more easily without changing any underlying accounting behavior.
Original PR description
Adjusting the warning line to look better. task-5909566 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
When a field is hidden because a user lacks access rights, the surrounding text in the view is now kept intact. This prevents confusing or incomplete screen layouts for users with restricted permissions.
Original PR description
In a view, if a field is removed due to security access restrictions, the text that follows it is not preserved. This leads to inconsistencies in the view. opw-5798852 Forward-Port-Of: odoo/odoo#246238 Forward-Port-Of: odoo/odoo#245855
Mention suggestions now use a consistent appearance across both compact and full message composers. The update improves readability and handling on smaller screens, reducing visual glitches and overflow issues when users choose someone to mention.
Original PR description
Use the same style in full composer than in small composer. Tweak style to account for small device, better handle overflows task-5916878 Before / After (small composer) <img width="342" height="466" alt="image" src="https://github.com/user-attachments/assets/234ff152-3c5a-4c82-b257-2800a752dd3a" /> <img width="496" height="476" alt="image" src="https://github.com/user-attachments/assets/60b3d12d-38ea-429a-9dec-441886ac022e" /> Before / After (full) <img width="413" height="394" alt="image" src="https://github.com/user-attachments/assets/c51e053f-7eb2-4ee0-8a9a-bd068ee9ded0" /> <img width="487" height="555" alt="image" src="https://github.com/user-attachments/assets/d0a3514d-aa1f-4d89-8fe4-7964ec20a288" /> Forward-Port-Of: odoo/odoo#247822 Forward-Port-Of: odoo/odoo#247562
Group chat notification settings now show the correct chat name when opened from Discuss thread actions. This removes confusion for users managing notifications across multiple conversations.
Original PR description
Before this PR, when a user opened a group chat in Discuss and accessed the notification settings from the thread actions, the thread name was missing in the dialog. This commit fixes the issue by correctly displaying the thread name in the notification settings dialog. Part of task-5910210. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#247313
The Invite People dialog in Discuss channels now fills the available modal width instead of appearing squeezed into half the space. This makes the invitation flow clearer and easier to use without changing any underlying business process.
Original PR description
Backport of https://github.com/odoo/odoo/pull/244777 Before this commit, the channel invitation dialog had its content not taking the whole width of modal. Steps to reproduce: - Open "General" in…
Backport of https://github.com/odoo/odoo/pull/244777 Before this commit, the channel invitation dialog had its content not taking the whole width of modal. Steps to reproduce: - Open "General" in discuss app - Click on Sidebar "Channel Actions" - Click on "Invite People" => Invitation dialog takes about half of the width of modal. This happens because the channel invitation was wrongly assumed to be inside a resizable panel, and thus the size was limited by the max width when in resizable panel. The rule to determine whether the action is in a resizable panel was poor: any action panel in discuss app was considered as resizable. This commit fixes the issue by limiting the responsive sizing, intended only for resizable panel, only when the action panel has the `.o_resizable_panel`, which is specific to when action panel is being used inside resizable panel. Task-5804100 Before / After <img width="625" height="231" alt="Screenshot 2026-01-20 at 16 12 31" src="https://github.com/user-attachments/assets/10c02939-c4c1-47fa-82f8-4d8d037d3f0c" /> <img width="621" height="231" alt="Screenshot 2026-01-20 at 16 12 18" src="https://github.com/user-attachments/assets/eec1447c-cb42-4751-b17a-ff7b2e70b8e9" />
Mention suggestions in Mail now show people following the current record before recent chat contacts. This helps users choose the most relevant colleagues faster and reduces accidental mentions of unrelated chat contacts.
Original PR description
Before this commit, mention suggestions prioritized partners from recent chats over the record's followers. This commit fixes the behavior by reordering the sequence numbers to have the following priority order: Thread followers > Internal users > Recent chat partners. <img width="1051" height="316" alt="image" src="https://github.com/user-attachments/assets/04b80028-07b5-40b2-8972-e80f933980c7" /> task-5313114 Forward-Port-Of: odoo/odoo#247639 Forward-Port-Of: odoo/odoo#237145
This fix ensures Polish EDI session data is stored in the expected company database fields. It prevents errors during database neutralization, helping test or copied databases be prepared reliably without manual intervention.
Original PR description
### Issue: Due to recent [commit] (https://github.com/odoo/odoo/commit/06ff5d42e66b800a7e09a52e9abd51b7fb759cc3) , neutralization of the database is hampered and following error is encountered.…
### Issue:
Due to recent [commit]
(https://github.com/odoo/odoo/commit/06ff5d42e66b800a7e09a52e9abd51b7fb759cc3) , neutralization of the database is hampered and following error is encountered.
Traceback on neutralizing:
```py
odoo.sql_db: bad query: b"-- disable_l10n_pl_edi_integration\n\n-- clear KSeF Credentials\nUPDATE res_company\n SET l10n_pl_edi_certificate = NULL,\n l10n_pl_edi_access_token = NULL,\n l10n_pl_edi_refresh_token = NULL,\n l10n_pl_edi_session_id = NULL,\n l10n_pl_edi_session_key = NULL,\n l10n_pl_edi_session_iv = NULL\n;\n\n-- set test environment parameter\n INSERT INTO ir_config_parameter (key, value, create_date, write_date)\n VALUES ('l10n_pl_edi_ksef.mode', 'test', NOW(), NOW())\n ON CONFLICT (key)\n DO UPDATE SET value = 'test',\n write_date = NOW()\n;"
ERROR: column "l10n_pl_edi_session_key" of relation "res_company" does not exist
LINE 9: l10n_pl_edi_session_key = NULL,
```
Before this commit:
```sql
test_18_pl=> SELECT column_name
FROM information_schema.columns
WHERE table_name = 'res_company'
AND column_name LIKE 'l10n_pl_edi%';
column_name
---------------------------
l10n_pl_edi_certificate
l10n_pl_edi_access_token
l10n_pl_edi_refresh_token
l10n_pl_edi_session_id
(4 rows)
```
After this commit:
```sql
test_18_pl=> SELECT column_name
FROM information_schema.columns
WHERE table_name = 'res_company'
AND column_name LIKE 'l10n_pl_edi%';
column_name
---------------------------
l10n_pl_edi_certificate
l10n_pl_edi_session_iv
l10n_pl_edi_session_key
l10n_pl_edi_access_token
l10n_pl_edi_refresh_token
l10n_pl_edi_session_id
(6 rows)
```
### Solution:
Set attachment=False for the fields `l10n_pl_edi_session_key` and `l10n_pl_edi_session_iv`, ensuring that their columns are created directly on the res.company model instead of being stored as attachments. Eventually, during [neutralizing]
(https://github.com/odoo/odoo/blob/18.0/addons/l10n_pl_edi/data/neutralize.sql#L4-#L10) there won't be any column missing error.
Ticket [link](https://www.odoo.com/odoo/project.task/5751411)
opw-5751411
Forward-Port-Of: odoo/odoo#247130Images that are centered or right-aligned now stay in the correct position after being turned into links. This prevents linked images in page layouts such as carousels from unexpectedly shifting left, helping website content keep its intended appearance.
Original PR description
Steps to reproduce: - Add an image to a page and align it center or right via options. - Use the link option to wrap the image in a link. - In a flex container (e.g., carousel), the image alignment is lost. Before this commit, the alignment classes stayed on the image while the link wrapper was missing them, so linked images in flex layouts shifted left. After this commit, the link mirrors the image alignment classes when linking or changing alignment, keeping linked images positioned correctly. task-5187840 Forward-Port-Of: odoo/odoo#241721
Archived payment tokens created through express checkout can now be unarchived without an incorrect inactive payment method error. This helps customers and staff continue using saved express checkout payment details when needed.
Original PR description
### Issue: Due to this issue payment tokens with an express checkout payment, once archived cannot be unarchived. #### Steps to reproduce: 1- Enable an express checkout method. We can use Demo. 2- On website, add a payment_subscription product to the cart. 3- Navigate to the cart. Pay using express checkout. 4- Navigate to payment tokens, and archive the created token. 5- Add archived filter to the list and unarchive the token. You will get an error: `You can't unarchive tokens linked to inactive payment methods.` ### Cause: `payment_method_id` of express payments is set to `payment_method_unknown`. However, this payment method is not active, raising this user error. opw-5886048
Fixes an issue where using the down arrow in the command menu inside a table could move the cursor out of the table cell. Users can now navigate command options while keeping their editing position in the table, making table editing more predictable.
Original PR description
### Steps to Reproduce: - Go to To-Do & create a table (e.g.: /table). - Place the cursor in the last cell of the table. - Press / to open the command dialog (focus is on Heading 1). - Press Arrow Down. - Notice that cursor comes out of table and focus is as at Heading 2. ### Description of the issue/feature this PR addresses: - ArrowDown first triggers table cell navigation & cursor moves out of table. - Powerbox keydown handler runs afterward & focus moves to the next item. ### Desired behavior after PR is merged: - Powerbox keydown listener runs before table navigation (capture phase) stopImmediatePropagation() prevents table navigate cell. Cursor stays inside table cell & powerbox focus moves to the next item. task - 5895390 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#247121
Fleet Officers can now edit the fields used to mark a car or bike as planned for change. This removes an unnecessary manager-only restriction, helping fleet teams keep vehicle availability information up to date without escalation.
Original PR description
Issue: The 'plan_to_change_car' and 'plan_to_change_bike' fields were restricted to Fleet Managers, preventing Fleet Officers from editing it. Fix: Changed the view-level group restriction from Fleet Manager to Fleet Officer for both fields.. task-5443107 Forward-Port-Of: odoo/odoo#241748
Clicking outside the editor now clears special selections, such as tables and separators, along with regular text selection. This prevents items from appearing selected after the user has moved focus away, making the editing experience clearer and more consistent.
Original PR description
**Current behavior before PR:** Steps to reproduce: - In Todo, Type some text. - Insert a table and a separator. - Select text along with table and separator. - Click outside the editor. The text is deselected but table and separator are still selected. **Desired behavior after PR is merged:** Custom selection such as table and separator is deselected along with browser selection when clicking outside the editor. task-5479981 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#247413 Forward-Port-Of: odoo/odoo#243484
Users can now print bank statement PDF reports from the Accounting statements list without seeing an incorrect access error. The fix prevents the system from loading print options meant for journal entries when the selected record is a bank statement.
Original PR description
In Bank Statement list view users may select a statement and download a pdf report. However, currently, the load of extra print options may raise an error. Steps to reproduce: - In Accounting Dashboard, from a bank journal card, 3 dots > Statements - Select a line (it needs to have an id not present in `account.move`) - Click 'Print' button Issue: Access error may occur, stating the record has been deleted or it is inaccessible. This happens because backend method `get_extra_print_items` is called on `account.move` with the id of the `account.bank.statement` On accessing the record fields we get the error A solution is to avoid loading extra print item with loadExtraPrintItems if we are not in the `account.move` model opw-5500506 Forward-Port-Of: odoo/odoo#246292
Readonly user group fields now correctly display as non-editable in the web interface. This prevents users from attempting changes that would fail on save, reducing confusion without changing underlying access rules.
Original PR description
Before this commit, the res_user_group_ids field introduced in [1] didn't care about the `readonly` props. As a consequence, when the field (or the whole view, via `edit="0"`) was readonly, the widget still rendered editable SelectMenu. Obviously, editing it and then triggering a save would raise a validation error, so it was only an UI issue. This commit fixes it by properly setting the field in readonly if its props states it. [1] https://github.com/odoo/odoo/pull/179354 task~5922282 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#247802
Mention suggestions in the full message composer now prioritize relevant followers correctly. This helps users find the right recipients faster when writing messages, reducing confusion and misdirected mentions.
Original PR description
Fetch/sort suggestion in the full composer don't receive the thread param which leads to follower not being sorted at the top. task-5917226 Forward-Port-Of: odoo/odoo#247966 Forward-Port-Of: odoo/odoo#247581
This fixes an issue where cashier role information could be missing when the employee-based Point of Sale option was not installed. Businesses can rely on Point of Sale user roles being available consistently, helping avoid unexpected checkout errors.
Original PR description
When the pos_hr was not installed, the user role was not set, and if the role was accessed with cashier._role, it was undefined. opw-5479742 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix ensures translated field values are checked consistently before being used. It helps prevent mismatched translation content from causing inconsistent or incorrect results in views and HTML editing.
Original PR description
Add missing ``check_translations`` context when translating fields. This prevents fetching dalay translation values that may have a different number of terms and cause inconsistencies. 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
This fixes a typo in the Italian electronic invoicing settings label so the wording is displayed correctly to users. The change improves clarity and professionalism in the Italian localization without affecting business processes.
Original PR description
The title Fattura Electronica is wrong it should be Fattura Elettornica Asked by TSB 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
Point of Sale invoices now only apply cash rounding when the order actually meets the rounding rules. This prevents small unintended adjustments on invoice lines when cash rounding is disabled or irrelevant to the payment method.
Original PR description
Before this commit, when a rounding method was set in the PoS, but the cash rounding was not enabled, or only enabled for cash payments and the order did not contain any cash payment, the generated invoice would still be linked to the rounding method. This could lead to unwanted rounding on the invoice lines. opw-5864642 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Belgian tax names and descriptions were corrected to be clearer, better translated, and consistent across accounting and restaurant point of sale. German translations were added, and one tax setting was adjusted so the 21% tax-included rate behaves correctly.
Original PR description
In this commit[^1] the tax descriptions and names for the Belgian localization were added/updated. However, some names or descriptions were either not fully correct, poorly translated, or not translated at all. In this commit, we revised them all and added German translations for everything as well. [^1]: https://github.com/odoo/odoo/commit/c7b39c5ad4afba7e61265773b87f500469ace91b Forward-Port-Of: odoo/odoo#247828 Forward-Port-Of: odoo/odoo#247036
This update fixes an unstable automated test for the barcode scanner dialog by ensuring the screen has fully refreshed before checks run. It helps reduce false test failures, improving confidence in release validation without changing user-facing behavior.
Original PR description
This commit ensure to await the view to be correctly re-rendered. runbot-error-233551 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#246523
This update fixes a misleading warning message that appeared during PDF upload tests. The change silences specific logging messages from the PDF parsing library, ensuring test failures are clear and accurate without unnecessary noise. This improves the reliability of our PDF upload testing process.
Original PR description
Before this commit, the test test_invalid_pdf_upload was logging pypdf warnings when testing invalid PDF uploads, because the relaxed PDF parsing attempts to read malformed PDFs before raising a ValidationError. After this commit, the test mutes the pypdf._reader logger in addition to the existing mute, preventing the "invalid pdf header" warning from appearing during expected test failures. task-5921293
This update resolves an issue where users without accounting permissions couldn't duplicate partners using the l10n_mx_edi module. The change prevents the copying of sensitive data related to Mexican EDI addenda, ensuring data integrity and preventing errors. This ensures consistent partner management across the system.
Original PR description
l10n_mx_edi.addenda field on partner require accounting right to duplicate. So you try to duplicate a partner using a user without accounting rights, you will get this error: ``` You are not allowed to access 'Addenda for Mexican EDI' (l10n_mx_edi.addenda) records. This operation is allowed for the following groups: - Accounting/Administrator - Accounting/Invoicing ``` This commit avoid to copy the data of this field when copying the partner. opw-5495639
This update fixes an issue where month names were incorrectly displaying based on the user's locale instead of the Odoo environment's language. This ensures that month names are consistently shown in the correct language for each user, improving accuracy and user experience across various Odoo modules.
Original PR description
Month name is using the locale language instead of the env language Get month name in the env language Community PR: odoo/odoo#246790 Task [link](https://www.odoo.com/odoo/project.task/5902364) task-5902364 Forward-Port-Of: odoo/enterprise#106876 Forward-Port-Of: odoo/enterprise#106175
This update adjusts the taxonomy used for Dutch tax reports from NT19 to NT20, a standard change required for compliance. The update only affects namespace definitions and maintains compatibility with older versions of the XBRL template. This ensures continued accurate reporting for Dutch tax filings.
Original PR description
The taxonomy for the Dutch tax reports was updated from NT19 to NT20. There were only changes in the namespaces. Olders versions of the XBRL template are kept for backwards compatibility. task-4568359 Forward-Port-Of: odoo/enterprise#106732
This update clarifies the type of data stored within the 'vector' field in the AI module. Adding a 'ttype' field ensures better data organization and consistency, improving the reliability of AI-powered features. This change addresses a technical detail to support future development and maintain data integrity.
Original PR description
Add field ttype for vector field. community: https://github.com/odoo/odoo/pull/247542 For problem https://github.com/odoo/odoo/pull/247323#discussion_r2767940038 Forward-Port-Of: odoo/enterprise#106612
This pull request reverses a previous change that was hiding simulation offers from the list view in the HR contract salary module. This ensures that all offer types are displayed, providing users with a complete view of available options. This change improves transparency and usability for HR professionals.
Original PR description
Revert the change that hid simulation offers from the list view. task-5498873
This update fixes a bug that allowed users to create new product variants when configuring recurring or rental prices. Previously, adding variants to subscription or rental products resulted in misconfigured options. The fix restricts the 'Product Variants' field to only allow selecting existing variants, ensuring accurate pricing and configuration.
Original PR description
**version** - 19.0 **Steps to reproduce** 1. Create a recurring or rental product. 2. Add multiple variants to the product. 3. Configure a recurring/rental price. 4. From the *Product Variants* column, try to create or edit a variant. **Issue** Creating or editing a variant from the *Recurring Prices* or *Rental Prices* section creates a new variant that is not properly linked to the parent product, leading to incorrect configuration. same issue occurs in both **sale_subscription** and **sale_renting**. **Fix** Restrict the *Product Variants* field in *Recurring Prices* and *Rental Prices* to allow selection of existing variants only by disabling create and edit options. taskid-5484735
This update corrects a minor programming error in how the document search functionality retrieves its context information. Previously, the system could return a null value, leading to potential instability. This change ensures a reliable context is always available, improving the overall stability and performance of the document search feature.
Original PR description
**Before this commit** We were accessing the context on the `DocumentsSearchModel` object by using `_context`. This is incorrect because this property is private, and we can't guarantee its structure. In some cases, `_context` can be `null`, causing later issues when we try to access properties from the context. This was likely just a programming error, rather than intentional. **After this commit** We'll use the public API to get the context by accessing `context` on the `DocumentsSearchModel` object. The internals of that getter method can speak for themselves, but they are useful because they will give us a non-`null` context to work with. opw-5903535 Forward-Port-Of: odoo/enterprise#106751
This update prevents a crash that occurred when using budget filters in accounting reports. The fix addresses an issue where the system incorrectly assumed budget columns were always present, leading to an error. Now, the system safely skips budget comparisons when necessary columns are missing, ensuring stable report functionality.
Original PR description
**Steps to reproduce:** * In **Accounting**, create a new accounting report. * Set **Root Report** to **Profit and Loss**. * Add a report line with **Figure Type = Percentage**. * set **Computation…
**Steps to reproduce:** * In **Accounting**, create a new accounting report. * Set **Root Report** to **Profit and Loss**. * Add a report line with **Figure Type = Percentage**. * set **Computation Engine = External Value** and **Formula = 0** on report line. * Add a report column with **Figure Type = Monetary**. * Create a menu item for the report. * Open the report and click **Budget**. * Create a new budget filter and click **Create**. **Observed behavior:** * The system crashes with `TypeError: 'NoneType' object is not subscriptable`. * The error occurs while accessing budget column values. **Cause:** * Budget comparison logic assumes required budget columns always exist. * When the report configuration lacks compatible budget columns, internal variables remain unset and are accessed anyway. **Fix:** * Add a safety check to skip budget comparison when required columns are missing. * Prevents the crash and allows budget filters to be created safely. opw-5357339 Forward-Port-Of: odoo/enterprise#104162
This update corrects a bug in the currency reconciliation process. Previously, fully reconciling a transaction would incorrectly update balances. Now, the system accurately reflects the remaining amount after partial reconciliation, ensuring more precise financial reporting and reducing potential discrepancies.
Original PR description
Steps to reproduce: - Set up foreign currency (eg. USD) with rate 1.159197 - Create a Bill of 29.00$ (USD) - Create a Bank transaction in foreign currency journal (USD) of -16.12 - Reconcile the transaction with the Bill - Create another Bank transaction in company currency journal (EUR) of -11.06€ (12.82 USD) - Reconcile also this transaction with the Bill, that will be now partially paid, leaving open a few cents - On the latest transaction, click the pencil icon to show the Edit line modal and click on "fully paid". Issue: The system updates the balance and amount_currency of the aml to the full amount of the bill. Instead, it should only add the residual amount. opw-5355964
This update resolves an issue where saving settings in a Guatemalan company's branch would incorrectly display a 'Missing required field' error for the Service Provider. The fix ensures this field is only required for the main company, streamlining the process for branch users.
Original PR description
Currently, saving the General Settings in a branch of a Guatemalan company raises a "Missing required field" error for the 'Service Provider' field (`l10n_gt_edi_service_provider`), even if no…
Currently, saving the General Settings in a branch of a Guatemalan company raises a "Missing required field" error for the 'Service Provider' field (`l10n_gt_edi_service_provider`), even if no changes were made. ### **Steps to reproduce:** 1) Install `l10n_gt_edi` and switch to a GT company. 2) Create a branch of the GT company. 3) In the parent company, go to Accounting Settings, set the Guatemala Localization to 'Demo', and save. 4) Switch to the branch company. 5) Open Accounting Settings and click Save. ### **Observed Behavior:** An error occurs because `l10n_gt_edi_service_provider` is empty but required. ### **Root Cause:** The `l10n_gt_edi_service_provider` field is marked as `required` whenever `country_code == 'GT'` (see[1]). However, the field is hidden in branch companies via the `invisible="not l10n_gt_edi_is_root_company"` domain on the settings block. Because the field is required but empty (and invisible to the user), the form validation fails. [1]- https://github.com/odoo/enterprise/blob/6f3265aad51a264bee754ca239e8a5019487b38c/l10n_gt_edi/views/res_config_settings_views.xml#L19-L22 ### **FIX:** Update the `required` domain to include `l10n_gt_edi_is_root_company`. This ensures the field is only mandatory in the root company where it is actually visible and configurable and also set the `l10n_gt_edi_service_provider` for branch company same as parent company. **opw-5385819** Forward-Port-Of: odoo/enterprise#106323
This update corrects a bug where the email address for Belgian VAT customers was missing from reports. The fix automatically pulls the email from the customer's contact information, ensuring accurate reporting and compliance. This prevents data discrepancies in exported XML reports.
Original PR description
**Steps to reproduce:** - Install l10n_be_reports and contacts - Switch to a Belgian company (e.g. BE Company CoA) - Go to Contacts - Open the company contact (i.e. BE Company CoA) - Add an invoice address withtout email - Create an invoice: * Customer: [a Belgian customer with a VAT number] * Invoice Lines: [a line with a tax] - Confirm the invoice - Go to "Accounting / Reporting / Belgium / Partner VAT Listing" - Export the XML **Issue:** In the XML, "<EmailAddress>" is empty althouth it is mandatory. **Cause:** The email is retrieved from the invoice address, but there is no fallback on the parent contact if it is empty. **Solution:** Fallback on the email of the parent contact as it is the case for the phone. opw-5870750 Forward-Port-Of: odoo/enterprise#106893 Forward-Port-Of: odoo/enterprise#105654
This update incorporates new 2026 codes for intrastat reporting, aligning with European statistical requirements. These codes, sourced from the National Bank of Belgium, ensure accurate reporting of foreign trade data within Odoo Enterprise. This change improves compliance with international trade regulations.
Original PR description
This commit adds 2026 codes based on https://www.nbb.be/en/statistics/foreign-trade/nomenclature-and-codes opw-5504187 Forward-Port-Of: odoo/enterprise#106896
This update resolves a technical error that was preventing the system from functioning correctly. The issue stemmed from a misplaced setting ('is_simulation_offer') that was defined in a related module, leading to an error message. This fix ensures the core HR contract salary functionality operates as intended.
Original PR description
…576b35b9ef08 is_simulation_offer is defined in hr_contract_salary_payroll, not in hr_contract_salary, hence this leads to a traceback.
This update stops OCR (Optical Character Recognition) from running on split expense documents. Previously, automatic digitization triggered paid requests for each split, leading to unexpected costs for users. This change ensures OCR is only performed on the original document, optimizing IAP credit usage.
Original PR description
OCR should only be performed on the original document. Enabling it on splits leads to redundant OCR requests and unnecessary IAP credit consumption. This is particularly important when automatic digitization is enabled, as it triggers a paid request for every split generated, leading to unexpected costs for the user. opw-[5644869](https://www.odoo.com/odoo/unassigned-tasks/5644869)
This update fixes an issue where the system incorrectly linked bank statement lines to the 'ODOO' partner. The change ensures that statement lines are now correctly associated with the Odoo bot, improving data accuracy and reporting. This resolves a potential discrepancy in financial records.
Original PR description
When the partner_name was "ODOO" the retrieve partner was linking the statement line to OdooBot. no task id Forward-Port-Of: odoo/enterprise#106879
This update resolves a technical issue preventing the successful sending of monthly tax returns to HMRC. The problem stemmed from incorrect date formatting between the JavaScript and Python components, specifically related to timezone information. This fix ensures accurate data transmission for tax reporting.
Original PR description
**STEP TO REPRODUCE** 1. Install l10n_uk_reports_cis. 2. Setup hmrc test environment. 3. Try Sending the a monthly tax return to hmrc. 4. You'll have a traceback of the form `expecting only datetimes with no timezone: '2025-12-05T00:00:00.000+01:00' ` **CAUSE** The send button for monthly return is a js widget, which get data from the monthly_return_wizard models and then pass it to `action_send_montlhy_return`. It creates a Luxon datetime in the js for date_from date_to, with a timezone. When the dates are passed back to the python, the still contains the timezone which leads to the traceback. opw-5783030
This update prepares the l10n_eu_iot_scale_cert module for Odoo 19.0 by adapting its communication with the IoT device and streamlining the certification process. Specifically, it removes outdated manual quantity adjustments and negative tare settings to ensure compliance with the new version.
Original PR description
This PR adapts the l10n_eu_iot_scale_cert module for the certification in v19.0 1) It adapts the communication with the iot box to use the new iot_http_service 2) It removes the possibility to manually change the quantity on a weighed product 3) It removes the possibility to set a negative tare Related PR in v18: https://github.com/odoo/enterprise/pull/107103 task-5926814