Daily updates from Odoo
Monday, January 5, 2026
149 changes
8 changes
Resolved issues and error corrections
This update enhances the usability of the 'Picture-in-picture' and 'Fullscreen' buttons within Odoo's discuss calls. By adding a subtle hover effect, users can now easily identify and click these buttons, improving the overall user experience. This simple change makes the application more intuitive and efficient.
Original PR description
Before this commit, when in a discuss call, the buttons "Picture-in-picture" and "Fullscreen" in the bottom right had no mouse hover effect. As these buttons are visually just icons, the lack of hover effect makes it hard to tell which button is hovered thus making the click harder than it should. This commit reduces slightly the opacity of items, so that on mouse hover the opacity is removed. This acts as a small hover effect that makes it easier to click on these buttons reliably.  Forward-Port-Of: odoo/odoo#241873
This update corrects a minor issue where the placement of the grade ID field in the partnership module was unintentionally altered. The change restores the field to its original location, ensuring data is displayed and organized correctly. This fix improves the user experience and data integrity.
Original PR description
The following commit [1] modified the position of the VAT field, which caused the grade_id field to be shifted. So this commit updates the xpath to restore grade_id to its original location. [1]: https://github.com/odoo/odoo/commit/3a56f59d466e72b3bf99f241c479cd3130173b41 task-5461569
This update corrects a technical issue that prevented the Quality IoT module from functioning correctly when installed alongside the MRP Workorder module. The fix involves relocating a component to ensure proper dependency management, resolving a JavaScript error related to missing module definitions.
Original PR description
### Issue: The QualityCheck component is defined in the `mrp_workorder` module:…
### Issue: The QualityCheck component is defined in the `mrp_workorder` module: https://github.com/odoo/enterprise/blob/7c64908258d5a0fb9adecd6dd2760e255e46314b/mrp_workorder/static/src/mrp_display/mrp_record_line/quality_check.js#L7 which is not a dependency (even indirectly) of the `quality_iot` module. Hence, if you install the `quality_iot` and enable debug mode, you will raise a JS [error](https://github.com/odoo/odoo/blob/a1583d0564552007a3d5f12d967c2c0036e05e44/addons/web/static/src/module_loader.js#L164-L169) because of missing dependencies: > The following modules are needed by other modules but have not been defined, they may not be present in the correct asset bundle. This happens because commit a13e38006d3cba6cab4565de2b014d294d2c0af3 added a patch of the QualityCheck component in the `quality_iot` https://github.com/odoo/enterprise/blob/eda93203ec8da207768357ae91132a49881a2978/quality_iot/static/src/mrp_display/quality_check.js#L4 https://github.com/odoo/enterprise/blob/eda93203ec8da207768357ae91132a49881a2978/quality_iot/static/src/mrp_display/quality_check.js#L17 opw-5353986 Forward-Port-Of: odoo/enterprise#100899
This update corrects a minor bug in the live chat feature, ensuring that conversation descriptions now function correctly. The issue stemmed from a subtle code difference that was missed during testing. Adding new tests resolves this problem and improves the reliability of the live chat experience.
Original PR description
*: im_livechat Accidental regression from https://github.com/odoo/odoo/pull/237749 The code had getter named `allowDescriptionsTypes` and the patch was `allowDescriptionTypes`. While this looks the same at a glance, there's is a "s" in "description(s)" that differs. This subtle change was not caught due to lack of test coverage, which this commit adds.
This update resolves an issue where Studio was incorrectly loading POS views as default, even when they weren't fully supported in the backend. A new mechanism allows modules to control which views are considered as defaults, ensuring Studio consistently loads the correct views for Studio users. This improves Studio's reliability and user experience.
Original PR description
Task: [#5191154](https://www.odoo.com/odoo/project/1737/tasks/5191154) --- When activating some views with Studio, we could end up loading a POS view because it has a lower sequence. As a result, Studio selects this view. However, these POS views may not be loaded in the backend bundle (`web.assets_backend`), and thus are missing at runtime. Example: "Cannot find key 'pos_kanban' in the 'views' registry". This commit creates a hook to get the domain used to fetch default views (`_get_default_view_domain()`). This way, modules can override the domain of `_get_default_view_domain()` method in order to exclude some views from being selected as default ones no matter the sequence. Forward-Port-Of: odoo/odoo#237122
This update resolves a problem where Studio was incorrectly loading POS views as default, leading to errors. The change prevents these POS views from being selected by default, ensuring the backend operates with the intended views and improving stability.
Original PR description
..., appointment, l10n_ke_edi_oscu_pos Task: [#5191154](https://www.odoo.com/odoo/project/1737/tasks/5191154) --- When activating some views with Studio, we could end up loading a POS view because it has a lower sequence. As a result, Studio selects this view. However, these POS views may not be loaded in the backend bundle (`web.assets_backend`), and thus are missing at runtime. Example: "Cannot find key 'pos_kanban' in the 'views' registry". This commit edit the domain of `_get_default_view_domain()` method in order to exclude these POS views from being selected as default ones. Forward-Port-Of: odoo/enterprise#98764
This change corrects a display inconsistency in loyalty promotions. Previously, users could inadvertently link promotion descriptions to discount products, leading to inaccurate discount information. This fix removes the ability to modify this technical field, ensuring consistent discount descriptions are shown to customers.
Original PR description
### Issue: Due to this issue, users can change the technical field `discount product` which cause inconsistency in discount description. #### To reproduce: 1- Create a promotion called `AAA`: -…
### Issue: Due to this issue, users can change the technical field `discount product` which cause inconsistency in discount description. #### To reproduce: 1- Create a promotion called `AAA`: - Rules: If minimum 50.0 spent grant 1 point per order - Rewards: 10% discount per order in exchange of 1 point 2- Using debug mode, in promotion's reward view, change the `Description on order` to `AAA 10%`. Save the promotion and you can see the `Discount product`'s name is set to the same description. 3- Create another promotion called `BBB`: - Rules: If minimum 50.0 spent grant 1 point per order - Rewards: 10% discount per order in exchange of 1000 points. 4- In promotion reward's view change the `Discount product` to `AAA 10%` which is promotion `AAA`'s discount product. 5- Change the `Description on order` to `BBB 10%` and save. 6- You can see the name of `Discount product` is changed as well. 7- In promotion `AAA` and you can see the description and the name of `Discount product` mismatch. 8- Navigate to shop, and add a product to cart with a price of more than 50. 9. You can see after applying promotion `AAA` the description from promotion `BBB` is shown. ### Cause: The technical field `Discount product` is never meant to be changed, and this field is introduced for reporting purposes and showing the discount applied in cart. However, this field is added to view in #132857. This is done as a hack to find the `Discount product` created for the promotion, as a workaround for an accounting issue due to adding account to `Discount product`, and originally `discount_line_product_id` was not supposed to be shown or changed through form. After discussion with PO, we decided this field should be removed from the view. Also removing this field will not undo the main fix of #132857, and that workaround was introduced only to find the `Discount product` for that specific client's use case. However, in stable, it is kept for customization compatibility. It's set invisible in order to prevent the issue. opw-5229633 Forward-Port-Of: odoo/odoo#240684
This update corrects a technical issue where the Swedish blackbox feature in Odoo experienced tracebacks when receiving non-UTF-8 characters from serial devices. The fix involves gracefully handling these errors during decoding, ensuring stable operation and preventing disruptions to data collection.
Original PR description
If a non utf-8 chracter is returned by a serial-connected device, the supported method of the swedish bb raises a traceback.
4 changes
Resolved issues and error corrections
This update resolves a warning related to employee compensation calculations within the US payroll module. A recent refactor required adding a 'not' operator to accurately identify employees without worker compensation, ensuring correct reporting and compliance. This change was implemented as a fix before the broader update in the master branch.
Original PR description
> note: to be fw'd till 19.0 (will be fixed in master by https://github.com/odoo/enterprise/pull/99256) description: following the refactor (https://github.com/odoo/enterprise/pull/83136), the warning (`hr_payroll_dashboard_warning_employee_wa_without_worker_compensation`) has been altered. fix: this commit adds back `not` to compute the `employees_without_worker_compensation` accurately. :) task-5407490
This update fixes a visual issue in Odoo's Chatter where attachments and emoji reactions appeared too close together, creating a cluttered look. The change adds spacing to improve readability and maintain a consistent layout for all message types, ensuring a cleaner user experience.
Original PR description
**Description of the issue/feature this PR addresses:** ---------------------------------------------- In version 19, when a message in the Chatter includes an attachment and an emoji reaction is…
**Description of the issue/feature this PR addresses:** ---------------------------------------------- In version 19, when a message in the Chatter includes an attachment and an emoji reaction is added, both elements appear visually too close to each other. This overlap creates a cluttered look and reduces readability in the message view. **Current behavior before PR:** ---------------------------------------------- - Emoji reactions and attachment previews are rendered too close together. - Negative or insufficient top margin on the reactions container causes overlap. - Visual inconsistency between text-only messages and messages with attachments. **Desired behavior after PR is merged:** ---------------------------------------------- - Proper spacing between attachments and emoji reactions in the Chatter. - Consistent, clean layout across all message types. - Improved readability without affecting compactness for text-only messages. Task-5259482 ---------------------------------------------- I confirm I have signed the CLA and read the PR guidelines at https://www.odoo.com/submit-pr
This update corrects a display inconsistency in loyalty rewards, preventing users from incorrectly associating discount products with promotions. The technical field used for this display was removed to simplify the system and address a previous workaround for an accounting issue. This change ensures accurate discount descriptions are shown to customers.
Original PR description
### Issue: Due to this issue, users can change the technical field `discount product` which cause inconsistency in discount description. #### To reproduce: 1- Create a promotion called `AAA`: -…
### Issue: Due to this issue, users can change the technical field `discount product` which cause inconsistency in discount description. #### To reproduce: 1- Create a promotion called `AAA`: - Rules: If minimum 50.0 spent grant 1 point per order - Rewards: 10% discount per order in exchange of 1 point 2- Using debug mode, in promotion's reward view, change the `Description on order` to `AAA 10%`. Save the promotion and you can see the `Discount product`'s name is set to the same description. 3- Create another promotion called `BBB`: - Rules: If minimum 50.0 spent grant 1 point per order - Rewards: 10% discount per order in exchange of 1000 points. 4- In promotion reward's view change the `Discount product` to `AAA 10%` which is promotion `AAA`'s discount product. 5- Change the `Description on order` to `BBB 10%` and save. 6- You can see the name of `Discount product` is changed as well. 7- In promotion `AAA` and you can see the description and the name of `Discount product` mismatch. 8- Navigate to shop, and add a product to cart with a price of more than 50. 9. You can see after applying promotion `AAA` the description from promotion `BBB` is shown. ### Cause: The technical field `Discount product` is never meant to be changed, and this field is introduced for reporting purposes and showing the discount applied in cart. However, this field is added to view in #132857. This is done as a hack to find the `Discount product` created for the promotion, as a workaround for an accounting issue due to adding account to `Discount product`, and originally `discount_line_product_id` was not supposed to be shown or changed through form. After discussion with PO, we decided this field should be removed from the view. Also removing this field will not undo the main fix of #132857, and that workaround was introduced only to find the `Discount product` for that specific client's use case. However, in stable, it is kept for customization compatibility. It's set invisible in order to prevent the issue. opw-5229633 Forward-Port-Of: odoo/odoo#240684
This update addresses errors identified during automated testing (flow tests) and a specific SQL query issue within the l10n_hr_edi module. These fixes ensure the module functions correctly and consistently with newer versions of Odoo, preventing potential disruptions to HR processes.
Original PR description
- Fixing runbot errors raised by the flow tests, consistent with 19.0+ version - Fixing neutralize.sql runbot-237635 runbot-237637 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#242007
2 changes
Resolved issues and error corrections
This update corrects a display inconsistency in loyalty rewards, preventing users from incorrectly associating discount products with promotions. The technical field used for this display was removed to simplify the system and address a previous workaround for an accounting issue. This ensures consistent discount descriptions are shown to customers.
Original PR description
### Issue: Due to this issue, users can change the technical field `discount product` which cause inconsistency in discount description. #### To reproduce: 1- Create a promotion called `AAA`: -…
### Issue: Due to this issue, users can change the technical field `discount product` which cause inconsistency in discount description. #### To reproduce: 1- Create a promotion called `AAA`: - Rules: If minimum 50.0 spent grant 1 point per order - Rewards: 10% discount per order in exchange of 1 point 2- Using debug mode, in promotion's reward view, change the `Description on order` to `AAA 10%`. Save the promotion and you can see the `Discount product`'s name is set to the same description. 3- Create another promotion called `BBB`: - Rules: If minimum 50.0 spent grant 1 point per order - Rewards: 10% discount per order in exchange of 1000 points. 4- In promotion reward's view change the `Discount product` to `AAA 10%` which is promotion `AAA`'s discount product. 5- Change the `Description on order` to `BBB 10%` and save. 6- You can see the name of `Discount product` is changed as well. 7- In promotion `AAA` and you can see the description and the name of `Discount product` mismatch. 8- Navigate to shop, and add a product to cart with a price of more than 50. 9. You can see after applying promotion `AAA` the description from promotion `BBB` is shown. ### Cause: The technical field `Discount product` is never meant to be changed, and this field is introduced for reporting purposes and showing the discount applied in cart. However, this field is added to view in #132857. This is done as a hack to find the `Discount product` created for the promotion, as a workaround for an accounting issue due to adding account to `Discount product`, and originally `discount_line_product_id` was not supposed to be shown or changed through form. After discussion with PO, we decided this field should be removed from the view. Also removing this field will not undo the main fix of #132857, and that workaround was introduced only to find the `Discount product` for that specific client's use case. However, in stable, it is kept for customization compatibility. It's set invisible in order to prevent the issue. opw-5229633 Forward-Port-Of: odoo/odoo#240684
This update resolves issues identified during testing that were present in the latest Odoo version. Specifically, it corrects errors in the HR EDI flow tests and addresses a problematic SQL query, ensuring smoother operation of the HR EDI module. These fixes improve the stability and reliability of the HR processes.
Original PR description
- Fixing runbot errors raised by the flow tests, consistent with 19.0+ version - Fixing neutralize.sql runbot-237635 runbot-237637 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#242007
1 change
Resolved issues and error corrections
This update clarifies delivery slip reports by explicitly labeling the delivery address and simplifying customer information labels. These changes reduce potential errors and confusion during order fulfillment, leading to greater operational efficiency.
Original PR description
To resolve ambiguities and improve operational efficiency: 1. The delivery address is explicitly labeled 'Delivery Address'. Ensuring no doubt about the final destination. 2. The label for the customer's primary information has been updated from 'Customer Address' to simply Customer, which prevents operators from mistaking it for the delivery point. Backport of https://github.com/odoo/odoo/pull/220019 Task: 3379926 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
17 changes
Enhancements to existing features
This update streamlines the way Odoo templates generate data, making the code simpler and more efficient. By using 'range' instead of array keys, the system avoids unnecessary complexity and improves performance, particularly when generating static data. This change impacts multiple modules, enhancing overall system responsiveness.
Original PR description
\* = account, base_import, hr_attendance, hr_holidays, html_editor, l10n_dk, point_of_sale, portal, pos_loyalty, pos_self_order_event, spreadsheet, spreadsheet_dashboard, website, website_sale The code is simpler when using range. Note 1: in templates Owl already provides the keys as `_index` so explicitly using `keys()` or `range()` is not necessary. Note 2: when filling the result with a static value (no following `map()`), using `Array(n).fill(x)` is more efficient. task-4822140 https://github.com/odoo/enterprise/pull/86408 Note: `range` also appears to be more efficient firefox <img width="306" height="98" alt="image" src="https://github.com/user-attachments/assets/e8441c89-8863-4e75-990c-2d30869301df" /> chrome <img width="315" height="96" alt="image" src="https://github.com/user-attachments/assets/ab0c5be8-deee-4a45-892f-009b6de84dc7" />
This update enhances the partner search interface within Point of Sale. Specifically, the 'no customer' placeholder is now centered for better visibility, and a top margin has been added to the dialog to prevent the 'Create' button from overlapping the header. These changes improve the user experience and make it easier to find customers.
Original PR description
In this commit: --- - Center the “no customer” placeholder for better visibility. - Add top margin to the dialog to avoid the Create button sticking to the header line. task-5428846 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Resolved issues and error corrections
This update removes a redundant link in the TDS/TCS warning that allowed users to manually check invoice journal items. This simplification was driven by changes in tax regulations – the wizard now correctly suggests the appropriate tax section, and a key tax code (206C(1H)) has been removed. This streamlines the user experience and reduces potential errors.
Original PR description
The "View Journal Item(s)" link was originally added to help users Manually check invoice journal items before choosing a TDS/TCS section. For TDS, the wizard already suggests the correct tax section, so this extra review step is no longer useful. For TCS, the most commonly used section (206C(1H)) has been removed by law from 01-Apr-2025, making the button unnecessary. Before: A link appeared in the TDS/TCS warning allowing users to open the invoice’s journal items for manual verification. After: The link and its supporting logic have been removed to keep the flow simple and avoid unnecessary actions. Task - 5315061 Upgrade PR - https://github.com/odoo/upgrade/pull/9015
This update enhances the Odoo HTML editor's ability to correctly identify and process HTML tags. Specifically, it clarifies how XML-only tags are treated, preventing misinterpretation as void elements. This ensures more accurate and reliable HTML editing within Odoo.
Original PR description
Description of the issue this PR addresses: This PR refines the `selfClosingElements` list by introducing `selfClosingHtmlTags` and `selfClosingXmlTags`, which together form `selfClosingElements`. `selfClosingHtmlTags` is used in contexts where XML-only tags must not be treated as HTML void elements. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update removes a misleading and unnecessary warning that appeared when setting up pricelists for event products. The warning was disruptive to the user experience and didn't provide any useful information. This change improves the overall usability of the event product pricing feature.
Original PR description
* Remove the warning shown when creating pricelist rules for event products. * The warning is noisy, not well localized, and appears for every rule, resulting in a poor user experience with little practical value for most users opw-5441138 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#241287
This update clarifies warnings displayed on employee profiles when an employee is missing from a pay run. Previously, the system flagged off-cycle payslips, but now it only shows a warning if the employee has no payslip at all for the period. The message is also more user-friendly, guiding users to add payslips.
Original PR description
A warning appears on the Employee profile if an active employee is missing from an open Pay Run. **Before:** - The system checks if the employee payslip is explicitly linked to the open Pay Run. - If…
A warning appears on the Employee profile if an active employee is missing from an open Pay Run.
**Before:**
- The system checks if the employee payslip is explicitly linked to the open Pay Run.
- If they are not linked, it raises a warning ("The pay run is missing this employee"), even if the employee already has an off-cycle payslip for that specific period.
- The system treats this as an issue and prompts the user to add the off-cycle payslip to the run.
**After:**
- The logic now also considers Off-Cycle payslips. If the employee has any
off-cycle payslip covering the pay-period dates, no warning is shown.
- An issue is shown only when the employee has no payslip at all for the period.
- When showing the issue:
If multiple pay runs exist for the period:
Display a single message: "The employee is not currently in any pay run." with an action to view available pay runs.
- If only one pay run exists for the period:
Display a contextual message: "The pay run [payrun name] is missing this employee." with an action "Add payslip to Pay Run".
- If the employee is present in any pay run or has an off-cycle payslip for the
period: No message is displayed.
Task-5387310This update resolves a visual issue that occasionally appeared when using the cookies bar with a Bootstrap modal open. The fix prevents a glitch caused by Bootstrap's automatic class removal, ensuring a smooth and consistent user experience. This improves the overall appearance and functionality of the cookies consent banner.
Original PR description
When pressing `Escape` with a Bootstrap modal open, even if the config key `keyboard` is set to `false` (preventing escape from closing the modal), Bootstrap sets a class `modal-static` on the modal element and removes it shortly after. This causes a UI glitch in the case of the cookies bar. Stopping the event propagation prevents it from happening. task-5421993 Forward-Port-Of: odoo/odoo#241215 Forward-Port-Of: odoo/odoo#240269
This update corrects a technical issue where installing the 'quality_iot' module caused a JavaScript error due to a missing dependency. The fix moves a component to ensure proper module loading and functionality, preventing the error from occurring.
Original PR description
### Issue: The QualityCheck component is defined in the `mrp_workorder` module:…
### Issue: The QualityCheck component is defined in the `mrp_workorder` module: https://github.com/odoo/enterprise/blob/7c64908258d5a0fb9adecd6dd2760e255e46314b/mrp_workorder/static/src/mrp_display/mrp_record_line/quality_check.js#L7 which is not a dependency (even indirectly) of the `quality_iot` module. Hence, if you install the `quality_iot` and enable debug mode, you will raise a JS [error](https://github.com/odoo/odoo/blob/a1583d0564552007a3d5f12d967c2c0036e05e44/addons/web/static/src/module_loader.js#L164-L169) because of missing dependencies: > The following modules are needed by other modules but have not been defined, they may not be present in the correct asset bundle. This happens because commit a13e38006d3cba6cab4565de2b014d294d2c0af3 added a patch of the QualityCheck component in the `quality_iot` https://github.com/odoo/enterprise/blob/eda93203ec8da207768357ae91132a49881a2978/quality_iot/static/src/mrp_display/quality_check.js#L4 https://github.com/odoo/enterprise/blob/eda93203ec8da207768357ae91132a49881a2978/quality_iot/static/src/mrp_display/quality_check.js#L17 opw-5353986 Forward-Port-Of: odoo/enterprise#100899
This update corrects an issue with the padding within Gantt chart popovers, ensuring a more visually consistent and professional appearance. The change was necessary to address a design flaw identified in a previous development cycle, improving the overall user experience.
Original PR description
This commit fixes wrong padding inside gantt popovers body introduced in #101482. task-5166940 Forward-Port-Of: odoo/enterprise#103210
This update ensures the 'Reset to Draft' button is consistently displayed for customer invoices, regardless of whether the sales journal is hashed. Previously, invoices with a lock date were hidden from this button. This change improves usability by allowing users to easily revert invoices that don't meet hashing requirements.
Original PR description
Previously, the `Reset to Draft` button was hidden for all invoices in hashed journals, even if the invoice itself was not hashed. Now, the button is visible for invoices that are not hashed. Steps to reproduce: - Create and post a customer invoice dated Feb 2, 2023. - Set the Sales Lock Date to Feb 28, 2023. - Enable the hash setting on the Sales journal. - The 2023 invoice is not hashed due to the lock date. - Create and post a second invoice in 2025 (this one is hashed). - Remove the Sales Lock Date. - Open the 2023 invoice. Before: `Reset to Draft` button was not visible for the 2023 invoice. After: `Reset to Draft` button is now visible for the 2023 invoice. task-4911601 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves an issue where Studio could incorrectly load POS views due to sequence priority. Now, modules can override the view selection process, ensuring the correct default views are loaded regardless of sequence. This improves Studio's reliability and prevents unexpected view behavior.
Original PR description
Task: [#5191154](https://www.odoo.com/odoo/project/1737/tasks/5191154) --- When activating some views with Studio, we could end up loading a POS view because it has a lower sequence. As a result, Studio selects this view. However, these POS views may not be loaded in the backend bundle (`web.assets_backend`), and thus are missing at runtime. Example: "Cannot find key 'pos_kanban' in the 'views' registry". This commit creates a hook to get the domain used to fetch default views (`_get_default_view_domain()`). This way, modules can override the domain of `_get_default_view_domain()` method in order to exclude some views from being selected as default ones no matter the sequence. Forward-Port-Of: odoo/odoo#237122
This update resolves a problem where Studio was incorrectly loading POS views as default, leading to errors. The change prevents POS views from being selected as default, ensuring the backend operates with the intended views and improving stability. This ensures consistent view behavior across the Odoo Enterprise platform.
Original PR description
..., appointment, l10n_ke_edi_oscu_pos Task: [#5191154](https://www.odoo.com/odoo/project/1737/tasks/5191154) --- When activating some views with Studio, we could end up loading a POS view because it has a lower sequence. As a result, Studio selects this view. However, these POS views may not be loaded in the backend bundle (`web.assets_backend`), and thus are missing at runtime. Example: "Cannot find key 'pos_kanban' in the 'views' registry". This commit edit the domain of `_get_default_view_domain()` method in order to exclude these POS views from being selected as default ones. Forward-Port-Of: odoo/enterprise#98764
This update adds a subtle hover effect to the 'Picture-in-picture' and 'Fullscreen' buttons within Odoo's discuss calls. Previously, these buttons lacked visual feedback on mouse hover, making them difficult to click reliably. This change improves user experience by making the buttons easier to identify and interact with.
Original PR description
Before this commit, when in a discuss call, the buttons "Picture-in-picture" and "Fullscreen" in the bottom right had no mouse hover effect. As these buttons are visually just icons, the lack of hover effect makes it hard to tell which button is hovered thus making the click harder than it should. This commit reduces slightly the opacity of items, so that on mouse hover the opacity is removed. This acts as a small hover effect that makes it easier to click on these buttons reliably.  Forward-Port-Of: odoo/odoo#241920 Forward-Port-Of: odoo/odoo#241873
Features or functions removed from Odoo
This update removes the 'joint category' functionality from the Odoo Enterprise l10n_be_hr_payroll module. This change aligns with updated Belgian tax regulations, simplifying payroll processing for businesses using this module. The removal ensures compliance and reduces complexity for users.
Original PR description
Task-5443297
Code cleanup and technical improvements
This update refactors the way channel membership is handled within Odoo's messaging system. Specifically, it moves a key piece of data related to channel names, improving the system's efficiency and stability. This change ensures smoother channel operations and reduces potential issues.
This update ensures that the 'Correspondent Country' field is correctly associated with discussion channels. The change follows a previous update to improve channel configuration and data consistency. This ensures accurate reporting and management of channel participants.
Original PR description
Ovverride have already moved, this field should follow.
This update refactors how unread message banners are displayed within channels in Odoo. The change moves the logic for showing unread banners to the channel model itself, streamlining the system and improving its efficiency. This ensures that unread message information is consistently and accurately presented to users within channel discussions.
6 changes
Resolved issues and error corrections
This update adds a new test case to the l10n_be_hr_payroll module, ensuring accurate work entry generation. This test validates the fix implemented in a previous pull request, strengthening the reliability of the payroll calculations. It's a routine quality assurance step to maintain the integrity of the HR and payroll processes.
Original PR description
This commit adds a test for this fix PR: https://github.com/odoo/odoo/pull/239658 task-5413594
This update adds a test to verify the correct generation of work entries within the HR module. This ensures the system functions as expected and reduces the risk of errors in generating work entries. The test confirms the fix implemented in a previous pull request.
Original PR description
This commit adds a test for this fix PR: https://github.com/odoo/odoo/pull/239855 task-5413594 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 update resolves an issue where Japanese translations were sometimes being incorrectly formatted (line wrapping) within the Equity module. This fix prevents corrupted translation files and ensures accurate Japanese text display in the Odoo Enterprise system.
Original PR description
The current version of Weblate still has issues sometimes with line wrapping in CJK scripts, causing corrupt PO files. This commit fixes the wrapping in the Japanese translation file for the equity module.
This update resolves a reporting issue that appeared when selecting certain cost measures in the Planning / Attendance Analysis report. The fix removes a misconfigured widget, addressing a conflict between the data type and the widget used, ensuring accurate reporting calculations. This change improves report reliability.
Original PR description
### Steps to reproduce: - Navigate to Planning > Reporting > Planning / Attendance Analysis - From measure select Attendance Cost or Cost Difference or Planned Cost - A traceback will pop up ### Cause: We are using widget monetary for the three fields in the view while their field type is float and there is no currency field defined in the model ### Fix: Remove the monetary widget from the view In master we will do something like this commit https://github.com/odoo/enterprise/pull/99059/commits/17f05bef0dad3e9645b6e0ed8df14d3308440812 opw-5438221
This change corrects a display inconsistency in loyalty rewards by removing a technical field that was being incorrectly populated. This field was initially added as a workaround for a previous accounting issue and has now been removed to simplify the system and prevent future errors. The fix ensures consistent discount descriptions across promotions.
Original PR description
### Issue: Due to this issue, users can change the technical field `discount product` which cause inconsistency in discount description. #### To reproduce: 1- Create a promotion called `AAA`: -…
### Issue: Due to this issue, users can change the technical field `discount product` which cause inconsistency in discount description. #### To reproduce: 1- Create a promotion called `AAA`: - Rules: If minimum 50.0 spent grant 1 point per order - Rewards: 10% discount per order in exchange of 1 point 2- Using debug mode, in promotion's reward view, change the `Description on order` to `AAA 10%`. Save the promotion and you can see the `Discount product`'s name is set to the same description. 3- Create another promotion called `BBB`: - Rules: If minimum 50.0 spent grant 1 point per order - Rewards: 10% discount per order in exchange of 1000 points. 4- In promotion reward's view change the `Discount product` to `AAA 10%` which is promotion `AAA`'s discount product. 5- Change the `Description on order` to `BBB 10%` and save. 6- You can see the name of `Discount product` is changed as well. 7- In promotion `AAA` and you can see the description and the name of `Discount product` mismatch. 8- Navigate to shop, and add a product to cart with a price of more than 50. 9. You can see after applying promotion `AAA` the description from promotion `BBB` is shown. ### Cause: The technical field `Discount product` is never meant to be changed, and this field is introduced for reporting purposes and showing the discount applied in cart. However, this field is added to view in #132857. This is done as a hack to find the `Discount product` created for the promotion, as a workaround for an accounting issue due to adding account to `Discount product`, and originally `discount_line_product_id` was not supposed to be shown or changed through form. After discussion with PO, we decided this field should be removed from the view. Also removing this field will not undo the main fix of #132857, and that workaround was introduced only to find the `Discount product` for that specific client's use case. However, in stable, it is kept for customization compatibility. It's set invisible in order to prevent the issue. opw-5229633 Forward-Port-Of: odoo/odoo#240684
This update fixes an issue where the chat hub and its message previews appeared too light in dark theme, impacting readability. The change reverts to a darker background style, enhancing accessibility and the visibility of key elements like the close button.
Original PR description
In dark theme, the chat bubble message previews have dark background for improved readability of text. The chat hub hidden menu was intended to use same color scheme, but this was mistakenly removed from style improvements to discuss. The default style of popover is too light in dark theme. This commit reverts to style before 19.0, using darker background. This improves accessibility of item selection and the "x" button. Before / After <img width="278" height="405" alt="Screenshot 2026-01-05 at 18 05 18" src="https://github.com/user-attachments/assets/d764adbf-5378-4d59-870d-baf159920898" /> <img width="288" height="410" alt="Screenshot 2026-01-05 at 18 31 03" src="https://github.com/user-attachments/assets/142605cf-fab6-499d-95fa-71fcbb7ec36a" />
10 changes
Resolved issues and error corrections
This update fixes a visual inconsistency in the Helpdesk dashboard by extending the conditional formatting range for the Top Customers pivot and aligning border styles with other Odoo dashboards. This ensures a more uniform and professional appearance for users.
Original PR description
## Description - The Top Customers pivot shows 10 rows, but the conditional format covered only 9. Extend the CF range so the last row is formatted. - Adjust border ranges so the helpdesk dashboard matches the styling used in other dashboards. Task: [5448434](https://www.odoo.com/odoo/project/2328/tasks/5448434)
This update resolves issues identified during testing that were impacting the HR EDI module's functionality. Specifically, the team addressed errors in the flow tests and corrected a problematic SQL query, aligning the module with recent Odoo versions. This ensures smoother and more reliable HR data processing.
Original PR description
- Fixing runbot errors raised by the flow tests, consistent with 19.0+ version - Fixing neutralize.sql runbot-237635 runbot-237637 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update addresses a critical issue in the l10n_tw_edi_ecpay module by implementing a standard neutralization process. This ensures that database copies created for support investigations won't inadvertently impact the live production system or customer data. It's a necessary step for safe troubleshooting and maintenance.
Original PR description
This commit adds the missing neutralization necessary for the l10n_tw_edi_ecpay module introduced in [1] The purpose of the standard neutralization framework is to allow us to create database copies that will not interact with external systems in ways that could impact the production database (or if it is not possible to prevent the interactions, make sure that they are benign or won't result in actual changes), or impact the customers of the operator of the production database. This is mainly useful to allow safe support investigation on database duplicates. [1] https://github.com/odoo/odoo/pull/223132
This update clarifies the purpose of the 'force_create' function within the account module. Previously, it was unclear that this function didn't actually create new records but instead updated existing ones. This change ensures better understanding and consistent usage by the team.
Original PR description
I have adding a docs for force_create that I have added in a previous task as it was not clear for some colleagues that it do not create but still updates the available records 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 update fixes a reporting error in the French P&L reports. The 'owner remuneration' account (644) was incorrectly categorized as 'tax and duties'. It has now been moved to the correct 'wages and salaries' category, ensuring accurate financial reporting for French businesses.
Original PR description
Account '644 owner remuneration' was in the 'tax and duties' category in the french P&L but it belongs to the 'wages and salaries' category task-5446018 Forward-Port-Of: odoo/enterprise#103061
This update resolves an issue where color fields weren't correctly saved when editing records within a list view using the 'bottom' editing mode. Previously, changes to color fields were lost. This fix ensures that color selections are reliably saved when using this common list view editing method, improving data accuracy and user workflow.
Original PR description
This commit fixes the issue where editing a field with widget="color" does not save it when the list is in editable="bottom" mode. project.task~5262582 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 update fixes a crash that occurred when deleting an employee hierarchy element (like a department) while a default filter was applied. The change ensures the system correctly handles record existence during filter operations, preventing the 'Missing Record' error and improving stability. This resolves a potential disruption to employee data management.
Original PR description
Reproduce the crash: 1- Create departement in Employees. 2- Create a default filter with child_of or parent_of on the previously created departement. 3- Delete the departement. 4- Go back to Employees => Crash 'Missing Record' This commit adds a check for record exitence in `child_of_domain` and `parent_of_domain` in the case where `_parent_store` is True. This change prevents the `Missing Record` Error. task-5217722
This update addresses a critical issue in the l10n_gt_edi module by implementing a 'neutralization' process. This ensures that database copies created for support investigations won't inadvertently impact the live production system or customer data. It allows for safer database analysis and troubleshooting.
Original PR description
This commit adds the missing neutralization necessary for the l10n_gt_edi module The purpose of the standard neutralization framework is to allow us to create database copies that will not interact with external systems in ways that could impact the production database (or if it is not possible to prevent the interactions, make sure that they are benign or won't result in actual changes), or impact the customers of the operator of the production database. This is mainly useful to allow safe support investigation on database duplicates.
This update corrects an issue where product move lines on delivery slips were printed in the wrong order. The fix ensures that move lines are always printed in the correct sequence based on their move IDs, preventing misprints and improving delivery slip accuracy. This impacts the presentation of delivery information.
Original PR description
**Steps to reproduce:** - Add 2 products in a delivery - Add the second's product move lines before the first one. - Validate and print delivery slip **Issue:** We iterate the `move_line_ids` directly which means if we have a new move line for a move with a lower id, it will push the product to the end of the delivery slip. **Example:** If we have `stock.move(1,)` with `stock.move_line(52,)` and `stock.move(2,)` with `stock.move_line(51,)`. `stock.move_line(51,)` will be printed first, which introduces a change in the order of the delivery slip. **Fix:** Iterate on `move_ids` and access `move_line_ids` through it, to print `move_lines_ids` in the same order of the `move_id`. Task: 4570203 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes a visual inconsistency in the Point of Sale system. Previously, when searching for partners with wildcard characters, the system would display a 'x partners found' message but not show the results in the list. This change ensures that search results are always displayed, resolving user confusion and improving the overall search experience.
Original PR description
When the client typed `a%t%` into the search bar and pressed 'Enter', we load the partners from the backend using `getNewPartners` and showed a dialog "x partners found", however, we never show those results in the partner list since the search bar didn't support the wildcard ilike pattern. This commit adds support for searching wildcard patterns, to match the SQL behavior more or less. Clients now won't be confused by seeing "x partners loaded" and at the same time seeing an empty list. opw-5395340
1 change
Enhancements to existing features
This update enhances the tracking of driver activities and performance within the Odoo system. By adding logging and performance checks for the longpolling controller, we'll gain better insights into driver operations and identify potential bottlenecks. This change is related to a larger effort for the saas-18.3 release.
Original PR description
This PR adds logging and performance check for the longpolling controller Related PR for >= saas-18.3: https://github.com/odoo/odoo/pull/241467