Daily updates from Odoo
Saturday, March 21, 2026
52 changes
19 changes
New functionality added to Odoo
This update incorporates a new rule (SE-R-005) from the PEPPOL billing standards to ensure our invoices comply with European regulations. This change is necessary to facilitate seamless electronic invoice processing with PEPPOL partners, improving our international trade operations. The update was performed following legal guidelines and best practices.
Original PR description
Rule information: https://docs.peppol.eu/poacc/billing/3.0/2025-Q4/rules/ubl-peppol/SE-R-005/ OPW-5881918 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#255005 Forward-Port-Of: odoo/odoo#250657
Resolved issues and error corrections
This update resolves a technical issue in the Odoo Co Vietnam receipt generation process. A redundant attribute was identified in the template, which was corrected by moving the relevant content to a different HTML element. This ensures the receipt generation process runs smoothly and reliably.
Original PR description
`class` cannot be set on the `t` element. Moving to the `div`. runbot-242041 runbot-242042
This update fixes a technical error that prevented users from saving 'planning.slot' form views when adding resources. The issue stemmed from attempting to access deleted record references, causing a system error. This change ensures smoother operation when managing resources within the planning module.
Original PR description
This error occurs upon saving a `planning.slot` form view. Steps to reproduce: - Install `planning_field_service` module - Settings > Technical > Discuss > `Subtypes` - Delete `Field Service Resources Changed` & `Field Service Status Changed` - Planning > New(open form view) > Add `Resources` and Save Traceback: `ValueError: External ID not found in the system: planning_field_service.mt_intervention_resources_changed` The error occurs because, in the `_track_subtype` [method], we attempt to retrieve a reference to records that have already been deleted. [method]: https://github.com/odoo/enterprise/blob/7e1a72d75ca672ea3660cc236f93571a441bb734/planning_field_service/models/planning_slot.py#L145-L150 sentry-7338382431
This update fixes a previous issue where the tax returns journal wasn't automatically translated into all supported languages. The team has refactored the code to use a standard translation method, ensuring the journal is correctly translated for all users and languages within Odoo Enterprise.
Original PR description
Currently, the tax returns journal is created in the code and not via the standard `@template` function that makes sure it is always translated in the installed languages. So for now it was only translated in language of the current user. We refactored the code so the journal gets created via the standard `@template` function and thus automatically gets translated into all the installed languages. task-5921458 Forward-Port-Of: odoo/enterprise#111261 Forward-Port-Of: odoo/enterprise#107465
This update corrects a problem where the company logo was appearing too large in various Odoo reports. The fix targeted a generic CSS selector that was affecting multiple reports, ensuring a consistent and appropriate logo size across all generated documents. This improves the visual presentation of financial reports.
Original PR description
This selector is generic and is impacting all the reports in `report_templates.xml` which are making use of the same class name. task-5951770 Community PR: https://github.com/odoo/odoo/pull/249432 Forward-Port-Of: odoo/enterprise#110858
This update corrects a visual issue in the Helpdesk ticket templates where links were incorrectly styled as buttons. The change ensures buttons are properly recognized by the editor, preventing links from appearing as buttons and improving the user experience when editing ticket messages. This resolves a display inconsistency.
Original PR description
Without the `btn` class, buttons are identified as links by the editor. This commit adjusts the buttons inside the mail templates so that they are properly handled by the editor. Steps to reproduce: - Have demo data - Turn on developer mode - Go to Helpdesk > Customer Care - Open ticket "Where can I download a catalog?" - In the debug menu, go to Messages - Open the first template - Click on the "View Ticket" button - Edit the link => The link popover recognized it as a link instead of a button. As of saas-18.2, the style is replaced by a plain link style when changing the URL. task-5948539 Forward-Port-Of: odoo/enterprise#111215 Forward-Port-Of: odoo/enterprise#107888
This update corrects a technical issue where archived partner data was incorrectly being used when automatically detecting bank statements. Now, partner retrieval only considers currently active partners, ensuring accurate data assignment and preventing potential errors in financial reporting. This improves data reliability.
Original PR description
Description of the issue this commit addresses: Partner auto-detection on statement lines could match archived partners via SQL causing unexpected partner_id assignment. Desired behavior after this commit is merged: Partner retrieval from bank account, partner name, and previous statement lines only considers active partners, preventing archived matches. runbot-238918 Forward-Port-Of: odoo/enterprise#111259 Forward-Port-Of: odoo/enterprise#110446
This update cleans up the error messages displayed in the account reports, making them easier to understand for users. The VIES check hyperlink has been removed to simplify the interface and will be reintroduced in a future release. This change improves the user experience and reduces potential confusion.
Original PR description
The company data check message was on multiple line. image The VIES check hyperlink wasn't Markup, since we cant easily display it, we will remove it in stable. Forward-Port-Of: odoo/enterprise#106154
This update resolves a technical issue where the 'Roles' filter in the Planning module was incorrectly passing record IDs as strings. This prevented users from properly filtering resources by role. The fix ensures that record IDs are correctly interpreted as numbers, improving search functionality.
Original PR description
Steps to reproduce: ------------------------------------------ 1. Install Planning module 2. Click on any shift in Gantt view > Edit 3. In the Resource field, click on Search More to open the…
Steps to reproduce: ------------------------------------------ 1. Install Planning module 2. Click on any shift in Gantt view > Edit 3. In the Resource field, click on Search More to open the selection dialog 4. In the pop-up window, observe that a default filter is already applied 5. Click on the Roles filter in the search panel Observation: ------------------------------------------ The filter on the Roles field applies an 'Invalid Record ID' in the domain Issue: ------------------------------------------ the default filter on `role_ids` passes the role ID as a string (e.g., 4) instead of an integer (4). This happens because the `filter_domain` uses `[self]`, and `self` is substituted with `label.trim()` in `_getFieldDomain`, which is always a string even when the underlying value is a numeric ID https://github.com/odoo/odoo/blob/accaa246d5818572996660f967624978e906b5c3/addons/web/static/src/search/search_model.js#L1747-L1750 Solution: ------------------------------------------ Replace `[self]` with `[raw_value]` in the `filter_domain` of the `role_ids` search field, the `raw_value` variable holds the actual typed value (integer ID) instead of the string label. opw-6003611 Forward-Port-Of: odoo/enterprise#109781
This update resolves a small technical issue on the Odoo website that was preventing a specific design element from displaying correctly. The fix involved correcting a typo in a class name, ensuring the website's visual presentation is consistent and accurate. This change doesn't impact user functionality.
Original PR description
task-6047633 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#254817
This update adjusts the report bubble layout to accommodate more address lines without increasing the logo size. The change utilizes a smaller logo version to reduce vertical space, ensuring a cleaner and more readable report. This improves the presentation of address information in reports.
Original PR description
The bubble layout was changed in commit[1] but the logo size is too big to accomodate a sufficient amount of address lines. task-5951770 [1]: odoo/odoo@8eb61a245cd3b650e309fdb55d24654c34d785cd Enterprise PR: https://github.com/odoo/enterprise/pull/110858 | Before | After | |--------|--------| | <img width="566" height="182" alt="image" src="https://github.com/user-attachments/assets/bb2671c3-62c8-45df-8039-4a9455d21982" /> | <img width="566" height="182" alt="image" src="https://github.com/user-attachments/assets/d36ca5fe-24b3-4a74-8323-2c587d11495e" />| | <img width="566" height="182" alt="image" src="https://github.com/user-attachments/assets/2b1c7ce9-2d14-47ab-9fc0-b4bca33e412f" /> | <img width="566" height="182" alt="image" src="https://github.com/user-attachments/assets/df189280-b274-4dea-9ec1-9482c47b00e5" /> | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#249432
This update fixes an issue where refund orders were displaying inaccurate margin values. The change ensures margin calculations are now correctly derived from the order's line data, regardless of whether the order is a refund. This improves the accuracy of financial reporting for refund transactions.
Original PR description
Refund orders were reporting incorrect values because the sign was derived from `is_refund`, which is not reliable. Replace with `SIGN(qty) * SIGN(price_unit) * ABS(...)` so the sign is computed directly from the line data in both `pos_order_report` and `sale.report`. opw-6017438 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#253023
This update ensures that when importing tasks from Excel, the specified recurrence settings are correctly applied, rather than defaulting to standard recurrence values. Previously, importing tasks without a recurrence ID would overwrite custom recurrence settings with defaults. This change improves data accuracy and consistency within Field Service.
Original PR description
### Steps to reproduce: - Create a xlsx sheet with some fsm_tasks values with recurrence values - Import the sheet to Field Service > Tasks - Navigate to the created tasks - Notice the recurrence values is the default ones not the ones in the imported sheet ### Cause: If we are importing records without recurrence_id value we will set the recurrence fields' values to the default values while we might already have values for those fields ### Fix: Check if we have values for recurrence fields we don't set the defaults and let the create method create the project.task.recurrence record and set the recurrence_id opw-5925546 Forward-Port-Of: odoo/odoo#254742 Forward-Port-Of: odoo/odoo#249104
This update corrects a misunderstanding in the Odoo system regarding Quebec Sales Tax (QST) registration numbers. The tooltip has been adjusted to accurately reflect that both PST and QST numbers should be entered in this field, ensuring proper tax reporting for Quebec businesses. This change improves data accuracy and compliance.
Original PR description
Currently, the `l10n_ca_pst` field label and help message implies that it is only for the PST number; however, in Quebec the proper name for such a value is the Quebec Sales Tax or (QST) registration number. As such, by updating the help message we clarify to the users that both PST and QST should be placed here. task-5866356 Forward-Port-Of: odoo/odoo#254943
This update enhances the HTML Builder by gracefully handling errors when using outdated snippets. Instead of failing silently, the system now displays a warning notification to the user, guiding them to update the snippet. This improves the user experience and prevents builder actions from being blocked by version mismatches.
Original PR description
Since [1], the warning to inform the user that a snippet is outdated has been removed. After this commit, if a builder action fail on outdated snippets (mismatched vcss/vxml/vjs versions), we show a warning notification instead of propagating the error. The notification informs the user that an error occurred on an outdated snippet, and prompts them to drag a new version of the snippet. This is achieved by wrapping try-catch blocks around all builder action lifecycle methods (apply, clean, load, getValue, isApplied) and implementing an error handling method that detects if the snippet is outdated. task-4297808 [1]: https://github.com/odoo/odoo/pull/224382 Forward-Port-Of: odoo/odoo#254785 Forward-Port-Of: odoo/odoo#230816
This update corrects a bug where the messaging menu counter was incorrectly displaying an inflated count when the Discuss app wasn't in use. The fix ensures the counter accurately reflects active conversations, even for archived channels, improving the user experience. It also addresses a related issue with muted channels.
Original PR description
Before this commit, when page loading in the webclient while not using Discuss (Discuss app closed, no chat window and bubble), the messaging menu counter could be wrong. Steps to reproduce: - Open…
Before this commit, when page loading in the webclient while not using Discuss (Discuss app closed, no chat window and bubble), the messaging menu counter could be wrong. Steps to reproduce: - Open Discuss app - Make a new channel - Post a message in this channel - Mark conversation as unread - Open Advanced settings of this channel - Archive this channel - Go back to home menu - (make sure no chat windows and chat bubbles are open) - Reload the page => The counter of messaging menu should be over-estimated by 1. For example if all conversations are read, counter is 1 instead of 0. Opening the messaging menu refreshes the counter to correct value 0. This happens because when using Discuss, the counter is deduced from all channels that have been fetched and for which current user is a member of these channels. Implicitly, archived channels are filtered out. However when not using discuss, the channels as member have not been fetched, and instead an estimation of the counter is fetched from server. This counter was computed on channel members that have unread messages. When a channel is archived, that doesn't mean the members are archived too. In the steps listed above, the self member is still active. As a result, the self member of this archived channel had contribution to the counter estimation, hence the value of 1 instead of 0. This commit fixes the issue by keeping computation on channel members but it checks also that the channel is active, as the resulting counter is based on active channels. This commit also fixed a similar issue where the counter was wrongly taking muted channels into account on the global counter when not using Discuss. This lead to a similar problem on non-archived but muted channels were they contribute in the estimated counter but not in the actual in-use counter. Task-6014754 Forward-Port-Of: odoo/odoo#254231
This update resolves a visual issue where the FileUploader component was causing extra spacing within the user interface. The original fix inadvertently introduced this problem, and this PR corrects it by neutralizing the element's layout impact while maintaining its intended functionality. This ensures a consistent and clean user experience.
Original PR description
This PR completes the changes introduced in: https://github.com/odoo/odoo/commit/2cbb735f5eecb7c31db8245b8d598d7193992a05 ### Issue: A `<div>` was added to prevent click propagation in the FileUploader, but it introduced unintended extra spacing in several parts of the UI ### Cause: The added `<div>` affected the layout by taking up space where it should not ### Fix: A specific class is added to neutralize the layout impact of this element while preserving the click propagation behavior ### Steps to reproduce: - Install `hr' - Create a new Employee - Go in Private Information > Work Permit - Upload a file Before the fix, the edition's buttons are in another line opw-5918379 Forward-Port-Of: odoo/odoo#254982
This update adds a crucial test to ensure that changes to the database code don't unintentionally break the sequence feature. The test uses a 'savepoint rollback' to verify that data is correctly restored if a test operation fails, providing greater stability and reliability. This prevents potential disruptions to the system.
Original PR description
The aim of this commit is to ensure the feature doesn't get silently broken in case some underlying code gets reworked. task-id: None Forward-Port-Of: odoo/odoo#255053
This update removes unnecessary debugging code (console.log statements) from the spreadsheet tests. These logs were accidentally included in the final pull request and could potentially cause issues with test reporting. This ensures the tests run smoothly and accurately.
Original PR description
some debugging lines were left in the final PR. Task-0 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#255103
6 changes
New functionality added to Odoo
This update incorporates a new rule from PEPPOL (a global electronic invoicing standard) to ensure our invoices comply with international regulations. Specifically, it addresses rule SE-R-005, which is crucial for accurate and compliant electronic invoice processing, particularly for international transactions. This change supports our ongoing commitment to meeting industry standards and facilitating seamless business operations.
Original PR description
Rule information: https://docs.peppol.eu/poacc/billing/3.0/2025-Q4/rules/ubl-peppol/SE-R-005/ OPW-5881918 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#255005 Forward-Port-Of: odoo/odoo#250657
Resolved issues and error corrections
This update cleans up the formatting of messages related to return checks in the accounting reports module. The VIES check hyperlink has been removed to simplify the user experience and will be reintroduced in a future release. This change improves the clarity and usability of the reporting functionality.
Original PR description
The company data check message was on multiple line. image The VIES check hyperlink wasn't Markup, since we cant easily display it, we will remove it in stable. Forward-Port-Of: odoo/enterprise#106154
This update resolves a technical issue where the 'Roles' filter in the Planning module was incorrectly passing record IDs as strings, leading to search problems. The fix ensures that record IDs are correctly interpreted as numbers, improving the accuracy and reliability of the role-based search functionality.
Original PR description
Steps to reproduce: ------------------------------------------ 1. Install Planning module 2. Click on any shift in Gantt view > Edit 3. In the Resource field, click on Search More to open the…
Steps to reproduce: ------------------------------------------ 1. Install Planning module 2. Click on any shift in Gantt view > Edit 3. In the Resource field, click on Search More to open the selection dialog 4. In the pop-up window, observe that a default filter is already applied 5. Click on the Roles filter in the search panel Observation: ------------------------------------------ The filter on the Roles field applies an 'Invalid Record ID' in the domain Issue: ------------------------------------------ the default filter on `role_ids` passes the role ID as a string (e.g., 4) instead of an integer (4). This happens because the `filter_domain` uses `[self]`, and `self` is substituted with `label.trim()` in `_getFieldDomain`, which is always a string even when the underlying value is a numeric ID https://github.com/odoo/odoo/blob/accaa246d5818572996660f967624978e906b5c3/addons/web/static/src/search/search_model.js#L1747-L1750 Solution: ------------------------------------------ Replace `[self]` with `[raw_value]` in the `filter_domain` of the `role_ids` search field, the `raw_value` variable holds the actual typed value (integer ID) instead of the string label. opw-6003611 Forward-Port-Of: odoo/enterprise#109781
This update resolves a technical issue that could cause errors when importing bank statements with multiple journals using different currencies. The fix optimizes the process to avoid unnecessary calls, ensuring smoother and more reliable handling of multicurrency accounting data. This improves the stability of the system when dealing with complex financial configurations.
Original PR description
When having multiple journals with the same IBAN, but different currencies, we could have a singleton error if they are not all configured the same (besides the currency). This happens in the cron that fetches new CODAs as we first fetch all CODAs. Then, for each, we have to dispatch it in the right journal. To do so, we rely on `_parse_bank_statement_file` which is called on `self`, which itself calls `_get_coda_final_statements` that triggers the singleton error. However, at this point, we don't care about calling `_get_coda_final_statements` since we only want to retrieve the IBAN and the currency of the CODA, we don't care about the other details. Thus, the solution here is to ignore this call if we don't need it while just retrieveing the necessary info to match a journal before even creating the statements. opw-5723017 opw-6036909 Forward-Port-Of: odoo/enterprise#111361 Forward-Port-Of: odoo/enterprise#111101
This update resolves a layout issue caused by a recent change designed to prevent unwanted clicks in the FileUploader. The fix adds a class to correct the spacing, ensuring the UI remains properly aligned and functional. This improves the user experience when uploading files.
Original PR description
This PR completes the changes introduced in: https://github.com/odoo/odoo/commit/2cbb735f5eecb7c31db8245b8d598d7193992a05 ### Issue: A `<div>` was added to prevent click propagation in the FileUploader, but it introduced unintended extra spacing in several parts of the UI ### Cause: The added `<div>` affected the layout by taking up space where it should not ### Fix: A specific class is added to neutralize the layout impact of this element while preserving the click propagation behavior ### Steps to reproduce: - Install `hr' - Create a new Employee - Go in Private Information > Work Permit - Upload a file Before the fix, the edition's buttons are in another line opw-5918379 Forward-Port-Of: odoo/odoo#254982
This update adds a crucial test to ensure that changes to the database code don't unintentionally break the sequence feature. The test uses a 'savepoint rollback' to verify the system can recover from potential issues, enhancing stability and reliability. This prevents silent failures and ensures data integrity.
Original PR description
The aim of this commit is to ensure the feature doesn't get silently broken in case some underlying code gets reworked. task-id: None Forward-Port-Of: odoo/odoo#255053
1 change
Resolved issues and error corrections
This update corrects a minor bug in the SendCloud delivery service that was preventing proper processing of shipments. The issue stemmed from incorrect Python slicing, which caused an error when attempting to retrieve data. The fix ensures reliable delivery processing.
Original PR description
Slicing in Python returns a sub-list, even for a single element. Doing `res[:1]` does not return the first element so doing `.get` causes an error. This was not caught because the tests do not run in CI due to the tags on the class. Forward-Port-Of: odoo/enterprise#111254
1 change
Resolved issues and error corrections
This update corrects a bug in the Sendcloud delivery service that was preventing accurate data retrieval. The original code incorrectly sliced a list, leading to an error when attempting to access the first element. The fix ensures the correct data is retrieved, improving the reliability of delivery tracking.
Original PR description
Slicing in Python returns a sub-list, even for a single element. Doing `res[:1]` does not return the first element so doing `.get` causes an error. This was not caught because the tests do not run in CI due to the tags on the class. Forward-Port-Of: odoo/enterprise#111254
1 change
Resolved issues and error corrections
This update corrects a minor bug in the SendCloud delivery service that was preventing proper processing of delivery requests. The issue stemmed from incorrect slicing of data within the Odoo system, which caused an error. The fix ensures accurate delivery processing and avoids disruptions.
Original PR description
Slicing in Python returns a sub-list, even for a single element. Doing `res[:1]` does not return the first element so doing `.get` causes an error. This was not caught because the tests do not run in CI due to the tags on the class. Forward-Port-Of: odoo/enterprise#111254
12 changes
Resolved issues and error corrections
This update corrects a recent change that disabled a key feature – the display of seconds – in MRP modules. To ensure accurate time tracking within MRP processes, this setting has been re-enabled. This ensures MRP modules accurately reflect time-based activities.
Original PR description
Previously, showSeconds was True by default. It has now been set to False by default so we need to enable it for MRP modules. Forward-Port-Of: odoo/enterprise#111269
This update resolves a problem where the company logo was appearing too large on various financial reports. The fix targeted a generic CSS selector that was affecting multiple reports, ensuring consistent logo sizing across the enterprise platform. This improves the visual presentation of key financial documents.
Original PR description
This selector is generic and is impacting all the reports in `report_templates.xml` which are making use of the same class name. task-5951770 Community PR: https://github.com/odoo/odoo/pull/249432 Forward-Port-Of: odoo/enterprise#110858
This update fixes a previous issue where the tax returns journal wasn't automatically translated into all supported languages. The team has now implemented a standard translation process, ensuring the journal is correctly translated for all users and languages, improving accuracy and usability.
Original PR description
Currently, the tax returns journal is created in the code and not via the standard `@template` function that makes sure it is always translated in the installed languages. So for now it was only translated in language of the current user. We refactored the code so the journal gets created via the standard `@template` function and thus automatically gets translated into all the installed languages. task-5921458 Forward-Port-Of: odoo/enterprise#111261 Forward-Port-Of: odoo/enterprise#107465
This update fixes an issue in the GSTR report testing process. Previously, the tests were incorrectly deleting tax amounts. Now, the system removes taxes from the account move line, ensuring more accurate report calculations and compliance. This change improves the reliability of the GSTR reports.
Original PR description
Before this PR: - A test case was deleting taxes. After this PR: - Removed the taxes from the account move line instead of deleting the taxes. Related PR: https://github.com/odoo/odoo/pull/245243 task-5472834 Forward-Port-Of: odoo/enterprise#111384 Forward-Port-Of: odoo/enterprise#105174
This update streamlines the new user sign-up experience by removing unnecessary steps in the automated tour. This improves the onboarding process, making it faster and more intuitive for new customers to get started with Odoo Enterprise. The change is a simple fix to enhance user experience.
Original PR description
runbot-238363 Forward-Port-Of: odoo/enterprise#110843
This update corrects a minor issue where ticket buttons in the Helpdesk email templates were incorrectly identified as links. The change ensures buttons are properly recognized and function as intended within the editor, improving the user experience when editing ticket messages. This resolves a visual inconsistency and ensures buttons work as expected.
Original PR description
Without the `btn` class, buttons are identified as links by the editor. This commit adjusts the buttons inside the mail templates so that they are properly handled by the editor. Steps to reproduce: - Have demo data - Turn on developer mode - Go to Helpdesk > Customer Care - Open ticket "Where can I download a catalog?" - In the debug menu, go to Messages - Open the first template - Click on the "View Ticket" button - Edit the link => The link popover recognized it as a link instead of a button. As of saas-18.2, the style is replaced by a plain link style when changing the URL. task-5948539 Forward-Port-Of: odoo/enterprise#111215 Forward-Port-Of: odoo/enterprise#107888
This update corrects a technical issue where archived partners were incorrectly identified during bank statement retrieval, leading to inaccurate partner assignments. Now, the system only considers active partners when searching for bank statements, ensuring data accuracy and preventing potential errors in financial reporting. This improves the reliability of our accounting processes.
Original PR description
Description of the issue this commit addresses: Partner auto-detection on statement lines could match archived partners via SQL causing unexpected partner_id assignment. Desired behavior after this commit is merged: Partner retrieval from bank account, partner name, and previous statement lines only considers active partners, preventing archived matches. runbot-238918 Forward-Port-Of: odoo/enterprise#111259 Forward-Port-Of: odoo/enterprise#110446
This update removes outdated code related to a previous worksheet feature. The removal of a redundant context key ensures the system runs more efficiently and reliably. This change improves the overall performance of the web studio interface.
Original PR description
Since the worksheet rework, the context key `worksheet_no_generation` that used to skip the model generation has now become useless. This commit removes last lines of code using it. *https://github.com/odoo/enterprise/commit/49a84d3ffea49cf8f7fea904e7082b101158bbe9 Forward-Port-Of: odoo/enterprise#110339
This update addresses a technical issue that caused tracebacks in the timesheet assistant when a user didn't have an assigned employee within the company. The fix ensures the assistant functions correctly for all users, preventing errors and improving the user experience. This resolves a minor instability.
Original PR description
This PR fixes two tracebacks when the current user has no employee in the current company and tries to open either the timesheets assistant or systray Task-6041462 Forward-Port-Of: odoo/enterprise#110815
This update resolves a technical issue within the l10n_co_edi_pos module related to how a template was being constructed. The fix ensures proper formatting of POS receipts, preventing potential display problems. This change improves the reliability of the receipt generation process.
Original PR description
`class` cannot be set on the `t` element. Moving to the `div`. runbot-242041 runbot-242042 Forward-Port-Of: odoo/enterprise#111450
This update fixes a technical error that prevented users from saving planning slot forms when attempting to add resources. The issue stemmed from attempting to access records that had already been deleted. This change ensures smoother operation and prevents data saving failures in specific scenarios.
Original PR description
This error occurs upon saving a `planning.slot` form view. Steps to reproduce: - Install `planning_field_service` module - Settings > Technical > Discuss > `Subtypes` - Delete `Field Service Resources Changed` & `Field Service Status Changed` - Planning > New(open form view) > Add `Resources` and Save Traceback: `ValueError: External ID not found in the system: planning_field_service.mt_intervention_resources_changed` The error occurs because, in the `_track_subtype` [method], we attempt to retrieve a reference to records that have already been deleted. [method]: https://github.com/odoo/enterprise/blob/7e1a72d75ca672ea3660cc236f93571a441bb734/planning_field_service/models/planning_slot.py#L145-L150 sentry-7338382431 Forward-Port-Of: odoo/enterprise#110824
This update corrects a technical error in the Planning module's role search filter. Previously, the filter incorrectly used string IDs, causing issues with selecting roles. This fix ensures the filter uses correct integer IDs, improving the reliability of role selection within the Gantt view.
Original PR description
Steps to reproduce: ------------------------------------------ 1. Install Planning module 2. Click on any shift in Gantt view > Edit 3. In the Resource field, click on Search More to open the…
Steps to reproduce: ------------------------------------------ 1. Install Planning module 2. Click on any shift in Gantt view > Edit 3. In the Resource field, click on Search More to open the selection dialog 4. In the pop-up window, observe that a default filter is already applied 5. Click on the Roles filter in the search panel Observation: ------------------------------------------ The filter on the Roles field applies an 'Invalid Record ID' in the domain Issue: ------------------------------------------ the default filter on `role_ids` passes the role ID as a string (e.g., 4) instead of an integer (4). This happens because the `filter_domain` uses `[self]`, and `self` is substituted with `label.trim()` in `_getFieldDomain`, which is always a string even when the underlying value is a numeric ID https://github.com/odoo/odoo/blob/accaa246d5818572996660f967624978e906b5c3/addons/web/static/src/search/search_model.js#L1747-L1750 Solution: ------------------------------------------ Replace `[self]` with `[raw_value]` in the `filter_domain` of the `role_ids` search field, the `raw_value` variable holds the actual typed value (integer ID) instead of the string label. opw-6003611 Forward-Port-Of: odoo/enterprise#109781
12 changes
Enhancements to existing features
This update introduces a new system that allows other Odoo modules to adjust timesheet values directly within the timesheet wizard. This improves flexibility and accuracy by enabling automated updates based on related activities. It builds upon previous work to enhance the timesheet management process.
Original PR description
Add a hook in helpdesk_timesheet timer wizard for other modules to modify timesheet values. Forward-Port-Of: odoo/enterprise#107441 Forward-Port-Of: odoo/enterprise#107301
Resolved issues and error corrections
This update cleans up the error messages displayed in the account reports, making them easier to understand for users. The VIES check hyperlink has been removed from the stable version due to display limitations. This change focuses on improving the user experience and clarity of account reporting.
Original PR description
The company data check message was on multiple line. image The VIES check hyperlink wasn't Markup, since we cant easily display it, we will remove it in stable.
This update resolves a technical issue where the Planning module's role search filter was incorrectly passing record IDs as strings, causing errors. The fix ensures that record IDs are correctly interpreted as integers, improving the reliability of role selection within the Gantt view.
Original PR description
Steps to reproduce: ------------------------------------------ 1. Install Planning module 2. Click on any shift in Gantt view > Edit 3. In the Resource field, click on Search More to open the…
Steps to reproduce: ------------------------------------------ 1. Install Planning module 2. Click on any shift in Gantt view > Edit 3. In the Resource field, click on Search More to open the selection dialog 4. In the pop-up window, observe that a default filter is already applied 5. Click on the Roles filter in the search panel Observation: ------------------------------------------ The filter on the Roles field applies an 'Invalid Record ID' in the domain Issue: ------------------------------------------ the default filter on `role_ids` passes the role ID as a string (e.g., 4) instead of an integer (4). This happens because the `filter_domain` uses `[self]`, and `self` is substituted with `label.trim()` in `_getFieldDomain`, which is always a string even when the underlying value is a numeric ID https://github.com/odoo/odoo/blob/accaa246d5818572996660f967624978e906b5c3/addons/web/static/src/search/search_model.js#L1747-L1750 Solution: ------------------------------------------ Replace `[self]` with `[raw_value]` in the `filter_domain` of the `role_ids` search field, the `raw_value` variable holds the actual typed value (integer ID) instead of the string label. opw-6003611
This update fixes an issue where portal users weren't able to view timesheets linked to projects with 'Invited internal and portal users' visibility. The change expanded the domain to include both 'portal' and 'invited_users' visibility options, ensuring shared timesheets are correctly displayed to portal users.
Original PR description
Steps to reproduce: - Create Project A with visibility set to `Invited internal and portal users.` - Create a Helpdesk Team and assign Project A to it. - Create a helpdesk ticket. - Log a timesheet…
Steps to reproduce:
- Create Project A with visibility set to `Invited internal and portal users.`
- Create a Helpdesk Team and assign Project A to it.
- Create a helpdesk ticket.
- Log a timesheet on the ticket and share the ticket with the portal user.
- Log in as the portal user and check the timesheet.
- Observe that the timesheet is not visible to the portal user.
Cause:
- After introducing the `invited_users` option in `privacy_visibility`, the portal domain in `_timesheet_in_helpdesk_get_portal_domain` was not updated.
- The domain was still defined as: `('project_id.privacy_visibility', '=', 'portal')`
- As a result, timesheets linked to projects with visibility set to “Invited internal and portal users” were excluded from the portal user’s view.
Solution
Update the domain to include both visibility options: `('project_id.privacy_visibility', 'in', ['portal', 'invited_users'])`
- This ensures timesheets are visible to portal users when the project visibility is either portal or invited_users.
task-5924243This update resolves a visual issue where the map view in the "My Dashboard" sometimes collapsed. The fix removes conflicting height settings and adds a minimum height to the map, ensuring it always displays correctly regardless of the number of records shown.
Original PR description
This commit fixes rendering height issues when the map view is displayed inside "My Dashboard". * Removed `height: 100%` from the map and pin list containers. This conflicting rule interfered with the flexbox layout, often causing the map to collapse entirely since it couldn't compute its own height. * Added a `min-height` to the map renderer. This ensures the map always occupies a reasonable amount of space in the dashboard, even when there are few or no records to display. task-6022958 Forward-Port-Of: odoo/enterprise#110968 Forward-Port-Of: odoo/enterprise#110790
This update resolves an issue where the website's tour process was experiencing delays loading translations, particularly in recent Chrome versions. The fix introduces a temporary step to ensure translations load before the tour begins, preventing interruptions and ensuring a smoother user experience.
Original PR description
This commit adds an intermediary step ensuring the proper page has been reached before actually doing the checks and avoiding to let startup requests (like the loading of the translations) pending at the end of the tour (and the eventual stop of the runner browser). Note: this is most likely due to a timing (indeterministic by nature) change, emphasised by recent Chrome versions (like v145). runbot-239128 Forward-Port-Of: odoo/enterprise#111013 Forward-Port-Of: odoo/enterprise#110648
This update fixes an issue with the numbering of report lines within the Vietnamese balance sheet report. Specifically, the order of items under 'I. Short-term liabilities' was corrected. This ensures the report data is presented in a clear and accurate format for Vietnamese users.
Original PR description
- Fixed the numbering of report lines under the section "I. Short-term liabilities" in the balance sheet report 6035762 Forward-Port-Of: odoo/enterprise#111234
This update corrects a problem in the GSTR 2B report testing process. Previously, the tests were incorrectly deleting tax amounts. Now, the system properly removes taxes from the account move line, ensuring accurate report calculations and compliance. This resolves a potential discrepancy in tax reporting.
Original PR description
Before this PR: - A test case was deleting taxes. After this PR: - Removed the taxes from the account move line instead of deleting the taxes. Related PR: https://github.com/odoo/odoo/pull/245243 task-5472834 Forward-Port-Of: odoo/enterprise#111198 Forward-Port-Of: odoo/enterprise#105174
This update resolves a potential error in the automatic import of bank statements when multiple journals share the same IBAN but use different currencies. The fix prevents a 'singleton error' by streamlining the process of retrieving essential data, ensuring accurate journal matching and statement dispatching.
Original PR description
When having multiple journals with the same IBAN, but different currencies, we could have a singleton error if they are not all configured the same (besides the currency). This happens in the cron that fetches new CODAs as we first fetch all CODAs. Then, for each, we have to dispatch it in the right journal. To do so, we rely on `_parse_bank_statement_file` which is called on `self`, which itself calls `_get_coda_final_statements` that triggers the singleton error. However, at this point, we don't care about calling `_get_coda_final_statements` since we only want to retrieve the IBAN and the currency of the CODA, we don't care about the other details. Thus, the solution here is to ignore this call if we don't need it while just retrieveing the necessary info to match a journal before even creating the statements. opw-5723017 opw-6036909 Forward-Port-Of: odoo/enterprise#111250 Forward-Port-Of: odoo/enterprise#111101
This update corrects a sizing problem affecting the company logo on various Odoo reports. The previous CSS selector was too broad, causing it to incorrectly resize logos across multiple report templates. This change ensures consistent and accurate logo display in all financial reports.
Original PR description
This selector is generic and is impacting all the reports in `report_templates.xml` which are making use of the same class name. task-5951770 Community PR: https://github.com/odoo/odoo/pull/249432 Forward-Port-Of: odoo/enterprise#110858
This update corrects a bug in the SendCloud delivery service that was caused by incorrect Python slicing. The fix ensures that the correct element is retrieved, preventing an error and maintaining proper service functionality. The issue was not caught during testing due to a configuration oversight.
Original PR description
Slicing in Python returns a sub-list, even for a single element. Doing `res[:1]` does not return the first element so doing `.get` causes an error. This was not caught because the tests do not run in CI due to the tags on the class. Forward-Port-Of: odoo/enterprise#111254
Features or functions removed from Odoo
This update resolves an issue where a file remained after the l10n_it_xml_export module was removed in version 19.0. This commit ensures a cleaner and more streamlined codebase by removing the orphaned file. It's a minor technical adjustment.
Original PR description
The module was removed in 19.0 by this commit: https://github.com/odoo/enterprise/commit/761e08667a9c8172217afe8b709445d8e12b3872 However a file was accidentally left behind This commit cleans up the remaining file