Monday, December 1, 2025
87 changes · master
New functionality added to Odoo
Odoo now includes a flag image for Northern Ireland in the base country data. This improves country and region presentation for users who need accurate Northern Ireland identification in the interface.
Original PR description
Add a flag for Norther Ireland TASK-ID: 5217015 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#235444
This update adds new automated tests for the 'get_contacts' function within the Odoo VoIP module. These tests ensure the function correctly retrieves contact information, improving the reliability and accuracy of VoIP calls. This is a standard improvement to ensure data integrity.
Original PR description
Task-4646694 Forward-Port-Of: odoo/enterprise#100794 Forward-Port-Of: odoo/enterprise#99884
Enhancements to existing features
The IoT Box now saves its black box sequence in its configuration file so the sequence stays consistent over time. This helps maintain reliable fiscal device data continuity after restarts or configuration changes.
Original PR description
To ensure fdm sequence consistency, we now persist it in the IoT Box configuration file (`odoo.conf`).
Resolved issues and error corrections
A payment-related test was moved out of the community edition because it depends on behavior available only in the enterprise edition. This prevents false build failures in the community version while keeping the enterprise behavior covered by tests.
Original PR description
Community build was failing with: ``` test_bill_state_change_on_payment_state self.assertEqual(payment.invoice_ids.payment_state, 'not_paid') AssertionError: 'paid' != 'not_paid' - paid + not_paid ``` [Commit](https://github.com/odoo/odoo/pull/234725/commits/5dc43a2156e5b176e3236583b45b4838a987ee7d) In community there is no any `in_payment` state for account move records. As on changing payment state to draft It stayed in the `paid` only. `in_payment` state introduced in the enterprise module. So the test case is failing for the community version. To fix this I've moved the test case to the enterprise to retain the expected behaviour. runbot error: 234453 Forward-Port-Of: odoo/odoo#237933 Forward-Port-Of: odoo/odoo#237881
Features or functions removed from Odoo
This update removes obsolete internal code from the Mail module that was no longer needed after earlier changes. It helps keep the system cleaner and easier to maintain without changing day-to-day user behavior.
Original PR description
In https://github.com/odoo/odoo/issues/35659, _invalidate_documents becomes useless. Remove it and all the useless override of it.
Code cleanup and technical improvements
This change reorganizes how chat invitation information is stored in the mail app, moving it to the channel where it more naturally belongs. It should not change day-to-day behavior for users, but it helps keep the messaging code easier to maintain and evolve.
Miscellaneous changes
Two forward-port commits[^1],[^2] corrupted the POT files of these modules. They both resulted in missing `msgstr` entries causing the `msgmerge` in Weblate to fail. This commit regenerates the POT files to fix the issue. [^1]: https://github.com/odoo/odoo/commit/4e51a4a259bbb36dbbd7f6aa59ba30280f97cd89 [^2]: https://github.com/odoo/odoo/commit/f3286d792e17746d2330b5e06d5c5c8e01c52928 Forward-Port-Of: odoo/odoo#237485 Forward-Port-Of: odoo/odoo#237031
Original PR description
Two forward-port commits[^1],[^2] corrupted the POT files of these modules. They both resulted in missing `msgstr` entries causing the `msgmerge` in Weblate to fail. This commit regenerates the POT files to fix the issue. [^1]: https://github.com/odoo/odoo/commit/4e51a4a259bbb36dbbd7f6aa59ba30280f97cd89 [^2]: https://github.com/odoo/odoo/commit/f3286d792e17746d2330b5e06d5c5c8e01c52928 Forward-Port-Of: odoo/odoo#237485 Forward-Port-Of: odoo/odoo#237031
This update improves internal documentation and type definitions for website and HTML editing tools. It helps developers maintain these areas more reliably, with no expected direct change for end users.
Original PR description
backport of https://github.com/odoo/odoo/pull/236084 Forward-Port-Of: odoo/odoo#237594 Forward-Port-Of: odoo/odoo#237357
This update improves internal accounting test tools for checking and saving XML files, making them easier to maintain and less error-prone. It helps developers keep accounting-related automated tests consistent, which supports long-term reliability without changing end-user functionality.
Original PR description
> This is a backport of the merged https://github.com/odoo/odoo/pull/235565 - with a couple of improvements & adaptations to the test files. This commit adds helpers and improves on the way we assert…
> This is a backport of the merged https://github.com/odoo/odoo/pull/235565 - with a couple of improvements & adaptations to the test files. This commit adds helpers and improves on the way we assert XML files in `AccountTestInvoicingCommon` and all accounting test that extend from it. From now on, all accounting test code that assert an XML tree/string to an XML file should call the `assert_xml` helper, and design their test file name/location/etc. around this framework. This approach has a few major benefits: Assert / Save XML When testing XML files, we often need to perform create/read/update operations on the asserted XML to make sure it corresponds to the most updated/intended data. Previously, to save something to an XML, a developer would need to write their own local helpers to save the XML in the right directory. This was cumbersome and error-prone, so we decided to design a helper that allows developer to immediately save AND/OR update the asserted XML: to save/update an XML, we can simply add `SAVE_XML` as an additional test tags. Better test naming and optional subfolder management To better organize test files, the `assert_xml` method allows us to write just the test key name (without `.xml`), and the framework will automatically get the XML to assert/save from the `test_files` directory. An optional `subfolder` parameter is also added to allow writing to specific subfolder within `test_files`. Better `___ignore___` management in assertion XMLs Sometimes, we want to ignore a few XML node that are not relevant, or have content that are not deterministic (changes on every test run). To handle this, previously, developers would need to modify the assertion XML content by hand or write their own local script to do so. With this new framework, we just need to add an `ignore_schema.xml` file somewhere in the `test_files` directory. If put inside a subfolder, it will be applied with more priority towards the XML that are put on that specific subfolder. Save "pure" XML (before applying `___ignore___`) in temporary folder When calling `SAVE_XML`, before applying the ignore patches, the XML will be saved in a temporary folder (same folder as the screenshots for tours), so that developers can use them in external tests in the future, and for any other saving reasons. In addition, this commit also: - add `extra_tags` helper to save all the common tags for EDIs, for a better way to enable `EXTERNAL_MODE` testing inspired by `l10n_mx_edi` - convert some non-assert XML test helpers into a class method - canonicalize the XML to ensure consistency of the generated test files following the C14N Version 2 standard. (Deterministic namespaces location, sorted attributes, etc.) task-4891206 Forward-Port-Of: odoo/odoo#237435 Forward-Port-Of: odoo/odoo#237285
Cached web requests can now expire after a defined time, so outdated stored responses are automatically ignored. This helps users see fresher information while still keeping the performance benefits of caching.
Original PR description
Introduces `maxAge` cache setting for cached RPC calls. When reading from the cache entries are validated against their expiration time. If expired, cached data is ignored, a fresh RPC call is made, and the cache is updated with the new data and expiration time. To support this, each cached entry now includes a `timestamp` and `expires` fields to easily identify expired entries and lay the groundwork for future eviction strategies. task-5145462 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The German tax report now shows tax codes next to the specific cell values they relate to, rather than only at the line level. This makes multi-column report lines easier to read and helps users match each reported amount to the correct tax code.
Original PR description
The German tax report contains lines with multiple columns where each cell corresponds to a code, making line-level codes insufficient. This commit displays these codes next to their corresponding cell values. task-5233075 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Odoo now records how long base automations take to run, making it easier for infrastructure teams to identify actions that may be slowing down servers. Logging stays targeted by increasing visibility only for longer-running actions, and diagnostic dumps now include accumulated automation runtime statistics.
Original PR description
The Odoo Infra team wants to be able to track down the base automations that slow down the server, but at the same time they don't want to fill logs with silly data. In this work we refactored the logging to log the run duration, the log level increases with the action duration. The longer the action takes to run, the more severe the log level is. Also as per request of the Infra team, we also included some statistics about base automations in the SIGQUIT dumpstack. At the moment the stats are a mapping action_id: accumulated run duration.
Large monetary values now use familiar abbreviations such as K, M, B, and T instead of less common metric prefixes. This makes figures easier for users to read and better aligned with standard business reporting conventions.
Original PR description
Using kMGTPE as metric prefixes for monetary values is not standard. This commit changes the metric prefixes to: - Thousand = K - Million = M - Billion = B - Trillion = T task-4968225
The sales portal was updated to align with similar portal behavior in other Odoo apps. This minor internal improvement makes future customizations and integrations more consistent across sales, accounting, projects, and purchasing.
Original PR description
kwargs is added to the `_get_page_view_values()` method in other modules: `account` (https://github.com/odoo/odoo/blob/fdfa573fef5de83a77310e650dd950bddd7b0554/addons/account/controllers/portal.py#L47), `project` (https://github.com/odoo/odoo/blob/fdfa573fef5de83a77310e650dd950bddd7b0554/addons/project/controllers/portal.py#L58), or `purchase` (https://github.com/odoo/odoo/blob/fdfa573fef5de83a77310e650dd950bddd7b0554/addons/purchase/controllers/portal.py#L110). @Tecnativa TT57124 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#237270
This update makes minor improvements across employee records, time off accrual setup, and skills reporting. These changes should make HR workflows and related reports slightly clearer and easier to use, with limited business impact.
HR screens now use the term “Contract Type” instead of “Employment Type” in the relevant job information. This makes wording more consistent across the HR app and helps users understand the same concept without mixed labels.
Original PR description
- renamed the instances of Employment Type to be Contract Type to be more consistent with other places task-id: 5167551 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
List view group headers have been visually refined to make grouped records easier to scan. The group count is repositioned, the header styling is adjusted, and group titles are no longer bold for a cleaner, more consistent interface.
Original PR description
This commit changes the position of the group count, the background color and size of group header in list view and remove the bold style of the group title. task-5232234 task-5221260
Spreadsheet dashboards no longer store or force company identifiers when loading dashboard data. This simplifies dashboard configuration and avoids redundant company-specific settings while keeping visible dashboards available to the right users.
Original PR description
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
A new helper makes it easier for Odoo's accounting tools to identify matched debit and credit entries on journal lines. This supports more consistent account reconciliation behavior and can simplify future maintenance or related enhancements.
Original PR description
This commit add a new helper to easily get matched_debit_ids and matched_credit_ids from an account.move.line. Linked:https://github.com/odoo/enterprise/pull/100493 opw-5184679 Forward-Port-Of: odoo/odoo#237931 Forward-Port-Of: odoo/odoo#237367
When choosing a currency on an accounting entry, users will now see active currencies by default in the extended search list. Inactive currencies remain available through filters, reducing clutter while preserving access when needed.
Original PR description
In account.move form view, when the user clicks on search more of the currency, they should only see active ones they can then show inactive currencies using filters task-5354516 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#238089
When users insert a Pivot from Odoo data, the side panel now automatically receives focus. This makes the workflow smoother by letting users continue configuring the pivot without an extra click.
Original PR description
Insert Pivot from Odoo data should give the focus to the side panel Task : 5252937 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#235458
This update modifies the VAT report process to include tracking of payment steps. The change adjusts a setting within the accounting system to specifically flag the 'pay' stage for VAT reports, ensuring accurate reporting of payments. This improves the visibility and tracking of VAT payments within the system.
Original PR description
removed states_workflow `generic_state_review_submit` value from `account.return.type` to default `generic_state_tax_report` in order to add pay step in reports. task-5126401
This update makes a small visual adjustment to the offline systray item in the Odoo interface. The change enhances the user experience by refining the design for better clarity and visual appeal. This is a cosmetic improvement focused on presentation.
This update enhances the debugging experience by enabling a fuzzy search for technical field names within the Odoo Enterprise application. Previously, debugging relied on exact matches, which could be cumbersome. Now, developers can quickly find the relevant technical names during debugging, streamlining the troubleshooting process.
Original PR description
This commit adds the technical names of fields to the fuzzy search keys when in debug mode, to match the behavior of row/col. Task: 5226786
This update standardizes the naming of 'Working Schedule' instances to 'Working Hours' across the Odoo Enterprise system. This change enhances clarity and consistency within the HR recruitment integration, making it easier to manage job hour information.
Original PR description
- renamed the instances of Working Schedule to be Working Hours to be more consistent with other places task-id: 5167551
This update improves the user experience when creating a pivot table from Odoo data. Now, the side panel automatically receives focus, making it easier for users to quickly access related information and settings. This streamlines the pivot creation process and enhances usability.
Original PR description
Insert Pivot from Odoo data should give the focus to the side panel Task: 5252937 Forward-Port-Of: odoo/enterprise#99361
Fixes visual display issues in skill tables on employee, applicant, and appraisal forms across Firefox and Chrome. This makes HR records easier to read by restoring proper spacing, alignment, and separators.
Original PR description
This PR fixes various issues with how the skill table is displayed in hr, hr_recruitment, and hr_appraisal. Issues: 1. The skills table on the employee form view is cropped on the sides when viewing in Firefox. 2. The skills table header and the resume header on the employee form view is not aligned and styled the same way. 3. The skills table header on the employee form view is missing the separator below it when viewing in Chrome. 4. The skills table header on the applicant form view is missing the separator below it when viewing in Firefox. 5. The skills table on the appraisal form view is missing a separator when viewing on Firefox. Task-5033427 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Fixes a layout issue in the website forum moderation panel where a navigation button could appear too close to the content card below. This restores clearer spacing, making the moderation screen easier to read and use.
Original PR description
This commit fixes an issue in the `website_forum` moderation panel introduced by Commit [^1], which aimed to make navigation across the front-end more consistent. | Master | This PR | |--------|--------| | <img width="1011" height="218" alt="image" src="https://github.com/user-attachments/assets/ee4a7d4a-538c-4373-a942-9fcfdf8d8ddc" /> | <img width="995" height="260" alt="image" src="https://github.com/user-attachments/assets/2fc04c24-d9a8-4036-993c-b0f28d49f982" /> | To do so, some utility classes handling padding were removed. However, there are corner cases where these classes were actually needed, which is the case on this screen, to ensure that the button rendered next to the breadcrumb does not stick to the card below. task-5240823 [^1]: https://github.com/odoo/odoo/commit/bb5b7cfa284a55e6dd3a5deb4870bcfae28033af --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update adjusts the IoT driver so it matches recent changes in the underlying device library. It helps keep connected IoT hardware integrations working reliably after the library update.
Original PR description
This PR fixes the declaration of the six methods according to the latest C library changes introduced in https://github.com/odoo/enterprise/pull/96748
This update fixes an HR test that could fail depending on the time of day it was run. By using a fixed test time, automated checks become more reliable and reduce false failures in the development process.
Original PR description
The test introduces with https://github.com/odoo/odoo/pull/235438 is failing if run outside of working hours. This commit fixes the test by using freeze_time. Related Runbot issue: https://runbot.odoo.com/odoo/runbot.build.error/234532 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 fix prevents a recent checkbox visual animation from incorrectly affecting form toggle switches. Toggle controls now display their handle in the correct position, avoiding confusing or broken-looking form inputs for users.
Original PR description
Before this commit, the recent checkbox changes from commit [1] applied background-size: 100% 100% to all checked checkboxes, including form switches (toggles). This caused switches to render incorrectly with the toggle bullet appearing in the middle instead of the right side. This commit removes the unnecessary `background-size` override and disables the check-grow animation for form switches. task-5367051 [1]: https://github.com/odoo/odoo/commit/0c4c8022c71c269683ac6df093b7495c44fa7907 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue where add-on status could remain incorrectly marked after an upgrade action was aborted. It helps keep system administration screens accurate and prevents confusion when managing Odoo apps.
Original PR description
There is a typo in Odoo 19 and master: module state is not reset when upgrade action is aborted. 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#233883
This update skips a payroll work entry test for Switzerland that is not currently applicable. It helps keep automated checks reliable by preventing unrelated test failures from blocking development.
Fixes an issue where opening a link to a message outside the current conversation could unexpectedly launch a new browser tab. Users now stay in the intended Odoo discussion flow, reducing navigation disruption.
Original PR description
Before this commit, clicking on a message link for a message outside of the current thread would open a new tab. This unwanted behavior is caused by a missing return value on an override of Thread's `open` introduced in [1], breaking the chain of returns. This commit fixes the issue by correctly returning the super call in said override. [1] https://github.com/odoo/odoo/pull/223004 task-5268790 Forward-Port-Of: odoo/odoo#237318
Product pages now show proper spacing below custom out-of-stock messages. This fixes a visual layout issue so unavailable products look cleaner and more consistent for shoppers.
Original PR description
The out_of_stock_message div doesn't have a margin bottom, and it looks like something is off in the product page. Steps To Reproduce: 1.Go to a product with no inventory. 2.Add a out-of-stock message in the sale tab. 3.Go to the product page on the website. We can see that the message div has no margin bottom. To fix this we just add a margin bottom, as it was before. The PR that affected the margin bottom: https://github.com/odoo/odoo/pull/220506 opw-5259994 Forward-Port-Of: odoo/odoo#237674
The Dutch localization now uses the correct description for the 9% sales tax. This prevents misleading tax wording in accounting records and customer-facing tax information.
Original PR description
The traduction of te description of the 9% ST tax was wrong and was TVA to get back on a sale tax task-5217323 Forward-Port-Of: odoo/odoo#237730 Forward-Port-Of: odoo/odoo#236655
This fixes an unwanted border effect in mobile kanban views when records are not grouped. The change improves the visual appearance on small screens by preventing borders from clashing with the device edges.
Original PR description
On mobile the ungrouped kanban have horizontal borders which creates a weird effect with the sides of the device. task-5357601 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#237583
This fixes visual issues with skills tables on employee, applicant, and appraisal forms, including cropped content, missing separators, and inconsistent header styling in Firefox and Chrome. It helps HR users view skills information more clearly and consistently across supported browsers.
Original PR description
This PR fixes various issues with how the skill table is displayed in hr, hr_recruitment, and hr_appraisal. Additionally, all code related to displaying sample data for the appraisal skills is removed in this PR, as the skills page has been hidden (rather than showing sample data) since at least v18. Issues: 1. The skills table on the employee form view is cropped on the sidees when viewing in Firefox. 2. The skills table header and the resume header on the employee form view is not aligned and styled the same way. 3. The skills table header on the employee form view is missing the separator below it when viewing in Chrome. 4. The skills table header on the applicant form view is missing the separator below it when viewing in Firefox. 5. The skills table on the appraisal form view is missing a separator when viewing on Firefox. Task-5033427 Forward-Port-Of: odoo/odoo#237752
This fix ensures Guatemala is correctly treated as part of the Latin American localization group. As a result, Guatemalan companies can see and use the Identification Type field on contact records as expected.
Original PR description
Step to reproduce: - install `l10n_gt_edi` with demo - switch to GT company - open a record from contacts Observation: - partner form is missing the Identification Type field Cause: - after this commit [1] , Identification Type is now conditional. It only appear in other localizations when the type is not is_vat and the allowed company is not a LATAM company. Fix: - As Guatemala is a latam, we add it in LATAMID group [1]:https://github.com/odoo/odoo/commit/bc742ad449c704cf9324e569e73aa1e919238dda opw-5234916 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#235663
This fixes an issue where Firefox users saw a technical error when reloading Odoo while offline. The web app now correctly recognizes Firefox's offline connection error and can show the intended offline page instead, improving reliability for users with disrupted connectivity.
Original PR description
Before this commit, reloading the webclient on firefox while being offline resulted in a traceback. Now that we introduced a (partial) support of offline mode in the webclient, we have an error handler to catch errors thrown by window.fetch when there're connection problems. The thrown error is a TypeError (which is quite generic) with various messages depending on the browser. This commit adds the message of the TypeError for firefox. We applied the same diff in the service worker, in the handler responsible of displaying the offline page, which was never shown on firefox. Task~5364336 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#237894
This update fixes an error in the sales stock portal by using the correct creation date field after an older date field was removed. Business users should see fewer portal crashes when viewing related sales or delivery information.
Original PR description
This commit replace date field with create_date field which was removed in [the PR] and causing traceback because that field does not existing in that model now. [the PR]: https://github.com/odoo/odoo/pull/213949 Forward-Port-Of: odoo/odoo#237590
This fixes an issue where pasting already-formatted text into similarly formatted content could make the style appear stronger than intended, such as overly bold or overly small text. The editor now removes duplicate nested formatting so pasted content keeps a consistent appearance.
Original PR description
### Description of the issue/feature this PR addresses: - When pasting formatted content (like `<strong>` or `<font>`) into a region that already had same formatting, it caused nested identical tags, leading to exaggerated styling (e.g., "double bold"). ```html <!-- User pastes <strong>text</strong> inside <strong> --> <p><strong>text []</strong></p> <!-- Resulting HTML --> <p><strong>text <strong>text</strong>[]</strong></p> ``` ### Desired behavior after PR is merged: - Prevents unwanted style amplification by unwrapping nested identical formatting tags. ```html <!-- Resulting HTML --> <p><strong>text text[]</strong></p> ``` task-5138472 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#237243 Forward-Port-Of: odoo/odoo#230915
Work center capacities now use the selected product’s default unit of measure instead of always defaulting to “Unit.” Capacity entries also keep the order in which users add them, making setup clearer and reducing manufacturing configuration mistakes.
Original PR description
This fixes that adding a product whose default unit is not 'Unit' resulted in the creation of a capacity with 'Unit'. Also removed order of capacities to let them appear as they are entered. task: 5358827 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#237509
Tasks created from sales order lines for manual or milestone-based services now receive the correct allocated hours from the ordered quantity. This ensures project teams see accurate planned effort immediately after confirming a sales order.
Original PR description
To reproduce: ============= - Create service product with `service_tracking = task_in_project` and `service_type = manual` - Create a SO with this product and set quantity on the line - Confirm the SO - check the created task, allocated hours is 0.0 instead of the quantity of the SO line Problem: ======== When creating tasks from SO lines, allocated hours is initialized to 0 then computed based on the SOL quantity except when the product's service_type is 'milestones' or 'manual'. Solution: ========= Following the logic in `write` method of `sale.order.line`, the allocated hours should be set to the SOL quantity. opw-5153467 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#237851 Forward-Port-Of: odoo/odoo#234524
Project rating information is now displayed only when a project uses at least one task stage that supports ratings. This prevents irrelevant rating sections from appearing after the older project-level rating setting was removed.
Original PR description
After this commit, we only show the project ratings if the project uses at least one stage that allows rating. Reason: as we removed the 'rating_active' field from 'project.project' (v19), we have to rely on task stages to determine if the project should show ratings. task-5172594 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#232333
Event pages with titles in Korean and other languages using encoded characters now identify the correct event when opened in website editing mode. This prevents the editor from selecting the wrong event and helps multilingual event pages work reliably.
Original PR description
The website event page extracts the event id from urls that are formatted like "/event/[title]-[id]/" by matching the first number not followed by a word character. Languages like Korean however will have their title percent-encoded like "%EC%82%AC%EC", causing the regex to miss the true ID and return the wrong one. Steps to Reproduce: 1. Create an event with a Korean title eg "모든 행사". 2. Go to the website view and click on edit. 3. You'll see that the regex grabs a wrong id. This fix is for adapting this commit https://github.com/odoo/odoo/commit/d16b0a8e303047997a0d4764f55bb7f1c214d47b to the use of plugins over snippets in 18.4 and onwards. opw-5095411 Forward-Port-Of: odoo/odoo#235584 Forward-Port-Of: odoo/odoo#232781
Message reactions now have better spacing when shown under notification-type messages. This makes conversations look less cramped and easier to read without changing functionality.
Original PR description
Before this commit, the spacing between the text content of a message of type notification and the reactions was too small and resulted in the UI feeling cramped. This commit fixes the issue by removing the negative top margin in message reactions for messages that don't have enough padding. | Before | After | | ------------- | ------------- | | <img width="207" height="223" alt="Pasted image 20251124144956" src="https://github.com/user-attachments/assets/f23c070c-6253-440a-8b93-7b546daabda3" /> | <img width="202" height="236" alt="image" src="https://github.com/user-attachments/assets/e366a2ba-f851-4676-b108-bebf2fb12ec8" /> | task-5344759 Forward-Port-Of: odoo/odoo#237799 Forward-Port-Of: odoo/odoo#237120
This change adds a safeguard test to ensure online shoppers cannot use decimal quantities when buying products. It helps keep ecommerce ordering consistent with expected stock and sales rules, reducing the risk of incorrect order quantities.
Original PR description
In ecommerce quantity shouldn't have decimal. This commit aims to to add a test for the fix in #234888 opw-5237233 Forward-Port-Of: odoo/odoo#237094
Cash on delivery is now automatically disabled when a delivery method is changed to in-store pickup. This prevents customers from seeing or selecting an unavailable payment option during checkout, reducing confusion and incorrect orders.
Original PR description
### Issue: In this issue, `allow_cash_on_delivery` is allowed when delivery type is pick up in store. #### Steps to reproduce: 1. Create a `fixed_price` delivery method 2. Check `Cash on delivery` checkbox 3. Change the delivery type to `in_store` and configure it 4. Activate cash on delivery payment method 5. Choose a storable ptoduct on the /shop, checkout with a created dm and proceed to payment 6. Observe that you see the 'cash on delivery' pm for pickup in store. Currently, `allow_cash_on_delivery` is invisible when `delivery_type` is set to `in_store`. However, it's not set to `False`, once the type is changed to `in_store`. opw-5258535 Forward-Port-Of: odoo/odoo#238001 Forward-Port-Of: odoo/odoo#235434
A mail-related automated test now cleans up a temporary browser window change after it runs. This helps keep the test environment stable and reduces the chance of unrelated failures in future checks.
Original PR description
Window is patched in test to intercept `window.open()` but was made without cleanup. Forward-Port-Of: odoo/odoo#238107
Image resize controls are now disabled when editing reports in Studio because resized images were not appearing correctly in generated PDFs. This prevents users from applying changes that the PDF engine cannot reproduce, reducing confusion and ensuring report output matches supported behavior.
Original PR description
Problem: When resizing an image in Studio within any report, the change is not reflected in the generated PDF. This happens because `wkhtmltopdf` does not support percentage-based `width` / `height` values, which are used by the resize tool (e.g., `width: 25%`). Solution: Disable the image resize option in Studio when editing reports, since the resulting `%` sizing cannot be rendered correctly in PDFs. Steps to reproduce: 1. Open Studio → Reports → open any report. 2. Add an image. 3. Resize it to 25%. 4. Save and print the PDF. 5. The image appears at its original size in the PDF. opw-5233052 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#237304 Forward-Port-Of: odoo/odoo#237088
A test case in the Odoo Enterprise accounting module was failing due to differences in payment state handling between the community and enterprise versions. This change moved the test case to the enterprise environment to ensure it accurately reflects the expected behavior, resolving the reported error.
Original PR description
Community build was failing with: ``` test_bill_state_change_on_payment_state self.assertEqual(payment.invoice_ids.payment_state, 'not_paid') AssertionError: 'paid' != 'not_paid' - paid + not_paid ``` [Commit](https://github.com/odoo/odoo/pull/234725/commits/5dc43a2156e5b176e3236583b45b4838a987ee7d) In community there is no any `in_payment` state for account move records. As on changing payment state to draft It stayed in the `paid` only. `in_payment` state introduced in the enterprise module. So the test case is failing for the community version. To fix this I've moved the test case to the enterprise to retain the expected behaviour. runbot error: 234453 Forward-Port-Of: odoo/enterprise#100865 Forward-Port-Of: odoo/enterprise#100834
This update corrects a bug in Odoo where setting an employee's timezone to 'None' would cause an error. Now, the system will display a validation error, ensuring the 'Timezone' field is always populated. This prevents data inconsistencies and ensures accurate employee timezone tracking.
Original PR description
Description of the issue/feature this PR addresses: On Odoo 19.0 and master, setting an employee’s timezone to None would cause a traceback when creating or updating the employee. Current behavior before PR: a traceback when creating or updating the employee. Desired behavior after PR is merged: A Validation Error occurs because it missing required value for the field 'Timezone' (tz). Model: 'Resources' (resource.resource) task-5257749
This update resolves visual inconsistencies and display issues within the skill table across the employee, recruitment, and appraisal forms. Specifically, cropped elements and styling problems have been corrected, and outdated code for sample data display has been removed, streamlining the user experience.
Original PR description
This PR fixes various issues with how the skill table is displayed in hr, hr_recruitment, and hr_appraisal. Additionally, all code related to displaying sample data for the appraisal skills is removed in this PR, as the skills page has been hidden (rather than showing sample data) since at least v18. Issues: 1. The skills table on the employee form view is cropped on the sidees when viewing in Firefox. 2. The skills table header and the resume header on the employee form view is not aligned and styled the same way. 3. The skills table header on the employee form view is missing the separator below it when viewing in Chrome. 4. The skills table header on the applicant form view is missing the separator below it when viewing in Firefox. 5. The skills table on the appraisal form view is missing a separator when viewing on Firefox. Task-5033427
This update simplifies the HR payroll process by removing a redundant action from list views. Previously, the 'Working Schedule Change' action was unnecessary and caused validation errors when attempting to modify schedules for multiple employees. This change streamlines the workflow and improves user experience.
Original PR description
The 'Working Schedule Change' server action can only be used on a single employee, so having it in the list view does not make sense. This also avoids having a validation error when the user tries to use the action on multiple selected employees. Task: 5358499
This update resolves an issue where website generation requests could fail silently, preventing results from being fetched. Additionally, a redundant cron trigger was eliminated, reducing potential frontend errors. This ensures website generation processes run reliably and efficiently.
Original PR description
It is possible to get a serialization error when creating the website generator request. This caused the request call to go off without the record being saved. The server would start the process but the result would never be fetched. In order to avoid this scenario, we send the request in a post commit hook. Also fixed issue where we triggered the cron even when not necessary (error_still_proccessing). This was an issue because the frontend js calls this method every 10 seconds so it was easy to get a concurrent access a few times and then receiving a traceback in the frontend. (Altough the process still succeeded in the end).
This update fixes an issue where a header on the spreadsheet dashboard action pushed content downwards, obscuring the bottom of the spreadsheet. The change ensures the full spreadsheet view is consistently displayed, improving usability and data visibility. This resolves a minor visual inconsistency.
Original PR description
The current rule applied on the spreadsheet action assumes that the action takes the full page but if we add a header , the full action is pushed downwards, which hides the bottom of the spreadsheet. Task: 5212448 Forward-Port-Of: odoo/enterprise#99654
This update resolves an access error that prevented managers from marking appraisals as complete. The issue occurred when users lacked the necessary HR permissions. This fix ensures that managers can correctly finalize appraisals, improving workflow efficiency.
Original PR description
STEP TO REPRODUCE: 1- Set Marc demo as a manager on an employee 2- Be sure he doesn't have the group group_hr_user 3- Log as Marc Demo 4- Create an appraisal for this employee 5- Confirm this appraisal 6- Click on "mark as done" You will have an access error; you shouldn't have it task-5349554 Forward-Port-Of: odoo/enterprise#100145
This update addresses a visual issue within the Account Online Synchronization module. The entire column displaying company information was previously partially visible; this fix now completely hides the column, improving the user interface's clarity and professionalism. This change ensures a cleaner and more consistent user experience.
Original PR description
The whole column needs to be invisible, not just the content of it Forward-Port-Of: odoo/enterprise#100446
This update resolves an error that occurred when generating the payment report from a pay run. The issue stemmed from an empty data set being returned for certain pay run configurations, leading to a key error. This fix ensures the payment report function now works correctly for all pay run scenarios.
Original PR description
When user clicks the payment report button in pay run, a traceback will appear. Steps to reproduce the error: - Install ``hr_payroll`` module - Open ``Administrator`` Employee > In Payroll tab, Set…
When user clicks the payment report button in pay run, a traceback will appear.
Steps to reproduce the error:
- Install ``hr_payroll`` module
- Open ``Administrator`` Employee > In Payroll tab, Set ``Contract, Wage`` > In Personal tab, ``Set Bank account`` > Save
- Go to Payroll > Configuration > Structures > Regular Pay > Open Net Salary rule > ``Amount Type: Fixed Amount`` and
``Fixed Amount: 0.0`` > Save
- Now, Go to Payroll > Payslips > Pay runs > Create a new Pay run > Select record > (One payslip will be created with the regular pay structure)
- Open that pay run > Click new > ``employee: Administrator`` >
``structure: worker pay`` > save
- Now, Open that pay run again > Compute > Confirm > Payment Report
Traceback:
```py
KeyError: '2'
```
https://github.com/odoo/enterprise/blob/7d90ece2756c1d8434f90a29ee6b34015a349acb/hr_payroll/models/hr_payslip.py#L2192-L2199
Here, the method ``compute_salary_allocations`` returns an ``empty dict {}`` for payslips with ``net_wage = 0.0``
https://github.com/odoo/enterprise/blob/7d90ece2756c1d8434f90a29ee6b34015a349acb/hr_payroll/wizard/hr_payroll_payment_report_wizard.py#L39-L41
So, ``allocations`` becomes an ``empty dict``, so accessing a key in it causes the above traceback.
sentry-6931674861
Forward-Port-Of: odoo/enterprise#96805This update corrects a technical issue where duplicate methods were introduced in several Odoo modules. The problem stemmed from a missed custom build step, and this fix ensures the integrity of the codebase by removing these redundant methods. This improves stability and prevents potential conflicts.
Original PR description
Followup of #100053 because I forgot to run the custom build, and thus missed newly introduced duplicate methods. Forward-Port-Of: odoo/enterprise#100655 Forward-Port-Of: odoo/enterprise#100599
A bug in the rental order system was causing incorrect quantity calculations when returns were processed within linked pickings. This update fixes a calculation error, ensuring rental order quantities accurately reflect product movement, particularly after returns. This resolves an issue impacting rental order accuracy.
Original PR description
Steps to reproduce: - Enable multi-step & Rental transfers - Set warehouse to 2 steps reception/delivery - Create a rental order for a product with a qty of 5 - Process the PICK - Change the quantity in the rental order to 3 and save - Change the quantity back to 5 and save again Issue: The Rental IN picking has now a `product_uom_qty` of 1. This is due to a wrong computation of incoming/outgoing moves when there are returns (e.g. here a return PICK) in the linked pickings. opw-5028794 Forward-Port-Of: odoo/enterprise#100645 Forward-Port-Of: odoo/enterprise#98473
The Original Bills report was producing empty results in Odoo Studio. This was due to the report's complex process of combining multiple streams to create the PDF. To resolve this, the Studio module has been configured to simply blacklist this specific report, preventing errors and ensuring correct functionality.
Original PR description
Steps to reproduce ================== - Install account_accountant,web_studio - Go to Invoices - Open studio - Click on "Reports" - Select the "Original Bills" report => The report is empty Cause of the issue ================== The Original Bills is a very specific report. Multiple streams are created and then combined to make the final PDF See: odoo/odoo#85150 Solution ======== Since studio cannot handle this usecase, we blacklist this report opw-5108198 Forward-Port-Of: odoo/enterprise#100769 Forward-Port-Of: odoo/enterprise#100729
This update corrects a reporting issue where payment reports incorrectly included bank accounts with zero allocations. The change now ensures that reports only display accounts with positive allocations, providing more accurate and reliable payment information. This improves the clarity and trustworthiness of financial reports.
Original PR description
-In case of creating payment report for an employee with multiple bank accounts, if one of the accounts has an allocation of 0%, it still appears in the report. -This approach has been changed to include only accounts with positive allocations.
This update resolves visual inconsistencies and display issues within the skill tables used in the employee, recruitment, and appraisal modules. Specifically, the tables are now correctly aligned and styled across different browsers, addressing prior cropping and formatting problems. The removal of outdated sample data code further streamlines the skill table presentation.
Original PR description
This PR fixes various issues with how the skill table is displayed in hr, hr_recruitment, and hr_appraisal. Additionally, all code related to displaying sample data for the appraisal skills is removed in this PR, as the skills page has been hidden (rather than showing sample data) since at least v18. Issues: 1. The skills table on the employee form view is cropped on the sidees when viewing in Firefox. 2. The skills table header and the resume header on the employee form view is not aligned and styled the same way. 3. The skills table header on the employee form view is missing the separator below it when viewing in Chrome. 4. The skills table header on the applicant form view is missing the separator below it when viewing in Firefox. 5. The skills table on the appraisal form view is missing a separator when viewing on Firefox. Task-5033427 Forward-Port-Of: odoo/enterprise#100738
This update resolves a usability issue in the annual corporate tax return reports by adding 'reviewed bubble' and 'Mark as completed' buttons. These additions streamline the reporting process for users, making it easier to track and finalize tax returns.
Original PR description
Missing: - reviewed bubble - Mark as completed button Forward-Port-Of: odoo/enterprise#100721 Forward-Port-Of: odoo/enterprise#100039
This update adjusts automated test data for Mexican electronic invoicing so tests no longer depend on hard-coded past or future dates. It helps keep quality checks stable over time, reducing false failures without changing customer-facing behavior.
This update resolves an issue where the search function on the recent/contacts tab of the Odoo Enterprise VoIP module wasn't correctly filtering results. The fix ensures that search terms are now accurately reflected in the displayed contacts, improving user efficiency and data accuracy. This enhancement provides a more reliable search experience.
Original PR description
On recent/contacts tab, search rpc didn't take search term into account. Fix it. Task-5262162 Forward-Port-Of: odoo/enterprise#100745 Forward-Port-Of: odoo/enterprise#100478
This update fixes a bug that previously caused crashes when creating related binary fields within the Web Studio module. The issue stemmed from parallel creation processes. This change ensures stable operation of Web Studio's core functionality.
Original PR description
Before this commit and subsequently to commit odoo/enterprise@75db3379655dc889b31ad34c66332f5a21f8cff4 creating a related binary field crashed because of the parallel creation of the filename related field. After this commit, this is fixed. opw-5237866 Forward-Port-Of: odoo/enterprise#99760
Previously, incoming call durations weren't updating in the user interface after calls were started. This update fixes a technical issue where a timer wasn't properly connected to the Odoo reactivity system, preventing the UI from reflecting call duration changes. Now, call durations are accurately displayed.
Original PR description
Since https://github.com/odoo/enterprise/pull/100466, calls are started through the start method of the Call model. After this change, incoming calls correctly update their duration, but the UI does not re-render accordingly. This happens because this.timer in start is not reactive: this refers to a Discuss proxy rather than an OWL proxy managed by the reactivity system. As a result, this.timer is just a plain object and components that depend on the call timer are not re-rendered. To fix this, we use a wrapped timer in computeDuration, ensuring that subscribed components are updated on each write.
This update resolves an issue where the system incorrectly linked projects due to a change in the underlying data structure. Specifically, the method for determining the project ID in the 'rating.rating' model has been updated to align with the latest version of Odoo. This ensures accurate project associations moving forward.
Original PR description
In this commit, we remove the use of 'rating_active' field check in the compute method of the 'project_id' field in the 'rating.rating' model. As this field was removed in 19.0 from 'project.project'. task-5172594 Forward-Port-Of: odoo/enterprise#97659
This update clarifies the labels associated with document access rights within the Enterprise module. Previously, the labels were unclear, now they provide helpful guidance on which user groups have access. This enhancement improves usability and ensures users understand document permissions.
Original PR description
This commit fix the label of documents access rights which now shows a helper for each documents res.groups. Task-5186096 Forward-Port-Of: odoo/enterprise#100792 Forward-Port-Of: odoo/enterprise#98890
A bug preventing test orders was resolved. The issue occurred when a product's tax was set to a 'Group of Taxes' without associated definitions, causing an error. This update corrects the process to handle this scenario, ensuring test orders can be successfully placed.
Original PR description
When creating a test order for a product whose tax is configured as a Group of Taxes without any definitions, a traceback occurs. Steps to reproduce the error: - Install ``pos_urban_piper`` module -…
When creating a test order for a product whose tax is configured as a Group of Taxes without any definitions, a traceback occurs. Steps to reproduce the error: - Install ``pos_urban_piper`` module - Configure Urban Piper integration for the PoS - Create a new tax without Definition > ``Tax Computation: Group of Taxes`` > Save - Create a new product > Set the above tax in sales taxes > Save - Open the session for PoS - Go to Settings > Urban Piper Location > Set Food Delivery Platforms > Save - Click Test Order > Select the product and Delivery Provider > Place Order Traceback: ```py IndexError: list index out of range ``` https://github.com/odoo/enterprise/blob/92bb923ffe185b7744adeadcc8f2972f9a64effb/pos_urban_piper/controllers/main.py#L319-L322 The issue happens because ``flatten_taxes_hierarchy()`` calls ``_flatten_taxes_and_sort_them()`` method at [1], which returns an empty record when the group tax has no children at [2]. As a result, ``tax_types`` becomes an empty list ([]), leading to an IndexError when trying to access ``tax_types[0]``. [1]: https://github.com/odoo/odoo/blob/57850b32332a71933a4f6b52d7428684de831f4b/addons/account/models/account_tax.py#L2786 [2]: https://github.com/odoo/odoo/blob/57850b32332a71933a4f6b52d7428684de831f4b/addons/account/models/account_tax.py#L795 sentry-6984648461 Forward-Port-Of: odoo/enterprise#98542
This update resolves a regression issue in the Egyptian payroll tests. The tests were previously configured to use a specific date range (2025) and failed when the system's date moved beyond that. This change ensures the tests remain reliable and accurately reflect future payroll calculations.
Original PR description
The Egyptian payroll regression tests built allocations for 2025 and relied on the runtime date, so they start failing once the global fake date advances beyond that year (e.g., 2026). task-5215779 Forward-Port-Of: odoo/enterprise#98223
This update fixes an issue where previously archived accounts (marked inactive) were not appearing in the General Ledger report. The change ensures that historical transactions are accurately reflected in the report, providing a more complete and reliable financial overview. This resolves a potential discrepancy in reporting.
Original PR description
**Description:** Deprecated accounts (active=False) with historical transactions were not appearing in the General Ledger report. **Steps to Reproduce**: - Go to Accounting > Reporting > General…
**Description:** Deprecated accounts (active=False) with historical transactions were not appearing in the General Ledger report. **Steps to Reproduce**: - Go to Accounting > Reporting > General Ledger - Choose an account code from the report (e.g 121000) - Go to Configuration > Chart of Accounts - Click on the account code 121000 and set the active field to False - Go back to the General Ledger report and notice the account cod no longer exist in the report even though it historical transactions **Root Cause:** In Odoo 18.3, the `deprecated` field was replaced with the `active` field. - `deprecated` field: Manual filtering only (where explicitly coded) - `active` field: Automatic ORM filtering (implicit in ALL searches) When the account search in `_query_values()` executes, Odoo's ORM automatically adds `AND active = TRUE` to filter out inactive records. This means deprecated accounts are silently excluded from reports. **Fix:** Added `with_context(active_test=False)` to the account search which disables automatic filtering for this specific query, restoring the original behavior where deprecated accounts appear in historical reports while remaining hidden in form dropdowns. opw-5092275 Forward-Port-Of: odoo/enterprise#100534 Forward-Port-Of: odoo/enterprise#98387
This update resolves a problem where image resizing within Odoo's Studio reports didn't correctly translate to the generated PDF. The fix disables the percentage-based resizing option, preventing incorrect rendering in PDFs due to limitations of the underlying PDF generation tool. This ensures consistent image display across reports.
Original PR description
Problem: When resizing an image in Studio within any report, the change is not reflected in the generated PDF. This happens because `wkhtmltopdf` does not support percentage-based `width` / `height` values, which are used by the resize tool (e.g., `width: 25%`). Solution: Disable the image resize option in Studio when editing reports, since the resulting `%` sizing cannot be rendered correctly in PDFs. Steps to reproduce: 1. Open Studio → Reports → open any report. 2. Add an image. 3. Resize it to 25%. 4. Save and print the PDF. 5. The image appears at its original size in the PDF. opw-5233052 Forward-Port-Of: odoo/enterprise#100447 Forward-Port-Of: odoo/enterprise#100301
This update removes unnecessary filters from the Follow-up Report, making it easier to understand and use. This change simplifies the report's output and provides clearer financial insights for users. It's a straightforward fix to enhance the user experience.
Original PR description
Removed default journal filters from the Follow-up Report to improve clarity. task-5149502 Forward-Port-Of: odoo/enterprise#100685
This update resolves a visual bug in the spreadsheet edition where the toolbar would shift down unexpectedly when another user was active in the same spreadsheet. This ensures a consistent and professional user experience for all spreadsheet users. The fix improves stability and usability.
Original PR description
Steps to reproduce: - open a spreadsheet - on a another tab, open the same spreadsheet => in the first tab, when the other user indicator appears, everything shifts down Task: 5265404 Forward-Port-Of: odoo/enterprise#99520
This update removes the use of the pytz library from Odoo Enterprise. The change addresses inconsistencies in timezone handling, improving the stability and reliability of date and time operations within the system. This resolves a potential issue related to timezone conversions.
This pull request removes outdated files related to FedEx, UPS, and USPS delivery configurations within the Odoo Enterprise system. These files were identified as no longer needed and were removed to streamline the codebase and improve performance. This change ensures the system remains efficient and focused on current delivery functionalities.
Original PR description
Oversight of 83d5bc4b0df37e0786348238b7379cb9f62fd5e4 and fw ports Forward-Port-Of: odoo/enterprise#100482
This update removes an outdated and confusing reference to a previous module name ('finkok') within the l10n_mx_edi module. The change simplifies the codebase and avoids potential confusion for developers. This is a routine maintenance fix.
Original PR description
It has been some time since finkok changed its name to quadrum, and now no one remembers quadrum as finkok. Having it in the name only causes more confusion, so we decided to simply remove it. I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/enterprise#100663
This update removes outdated styles specifically designed for dark mode within the global filters component. These overrides were no longer needed after a recent change, streamlining the codebase and improving performance. This ensures a consistent user experience across all Odoo Enterprise versions.
Original PR description
Remove dark mode override styles for the global filters component, as they are no longer required. Task: 5322179
This change reorganizes how Odoo determines whether calls are allowed in mail and live chat conversations. It keeps the call option tied directly to each channel, making the behavior easier to maintain without changing the overall user experience.
The Point of Sale app no longer includes the proxy status indicator directly. This status is being moved to the IoT-related POS area for clearer ownership and consistency, with minimal expected impact for users.
Original PR description
For consistency reasons, we removed the proxy status from `point_of_sale`, to move it to `pos_iot`. odoo/enterprise#100934
This update reorganizes how chat channel description settings are handled in Mail and Live Chat. It keeps the same user-facing behavior while making the underlying setup cleaner and easier to maintain.
This update streamlines the management of proxy status within Odoo's Point of Sale system. Previously, proxy status information was duplicated, now it's consolidated within the dedicated `pos_iot` module for better organization and consistency. This change ensures a cleaner and more reliable system.
Original PR description
For consistency reasons, we removed the proxy status from `point_of_sale`, to move it to `pos_iot`. odoo/odoo#238085
The field `payment_method_type` got its selection values from a function that did not translate the labels. In order to make them translatable, we wrap them in a `env._()` call, so they are properly exported in the POT file and translated at runtime. Forward-Port-Of: odoo/odoo#237768
Original PR description
The field `payment_method_type` got its selection values from a function that did not translate the labels. In order to make them translatable, we wrap them in a `env._()` call, so they are properly exported in the POT file and translated at runtime. Forward-Port-Of: odoo/odoo#237768