Daily updates from Odoo
Navigate
Branch
Saturday, January 31, 2026
18 changes
8 changes
Resolved issues and error corrections
This update resolves a visual glitch where the 'Cover Image' option was incorrectly displayed in the website builder for blog and event snippets, even when no cover image was actually present. This ensures a cleaner and more accurate user experience when configuring these dynamic content sections.
Original PR description
*: blog, event This PR fixes an issue about the `Cover Image` option being displayed even if the snippet doesn't come with any cover image. task-5104447 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#240055
This update resolves an issue where custom role names added to sign templates weren't being saved correctly. The fix addresses a problem with how the system updated role names, ensuring that changes made through the interface are now properly reflected in the template. This improves the usability of the sign template feature.
Original PR description
Currently, On renaming or updating roles in the sign template doesn't get saved due to which drag-drop 'Signature Item' is reseted back to 'Signer 1'. **Steps to reproduce:** 1) Install sign app. 2)…
Currently, On renaming or updating roles in the sign template doesn't get saved due to which drag-drop 'Signature Item' is reseted back to 'Signer 1'. **Steps to reproduce:** 1) Install sign app. 2) Open the Sign app and select a template. 3) Case A (Direct Rename): In the sidebar, rename a role from 'Signer 1' to 'Signer 1-Test'. 4) Case B (Edit Button): Click the '3-dots' button on the role and click `edit`, change the name to 'Signer 1-Test', and save. 5) Drag and drop 'Signature Item' to template. **Observed Behaviour:** - The Role is not updated as `Signer 1-Test` and reset back to `Signer 1` **Expected Behaviour:** - The Role should be updated as `Signer 1-Test`. ## **Root Cause:** ### **Case A:** The `updateSignerNames` method(see[1]) checks `if (signer.name.includes(str))` where `str` is `Signer` This condition evaluates to true for any custom name containing that substring, causing the code to overwrite the user's custom input with the default generated name string. ### **Case B:** 1) The method `updateRoleNameAndAvatar` see([2]) updated the local state `this.state.roleName` but failed to trigger the `onChangeRoleName` prop. As a result, the parent component (`SignTemplateSidebar`) remained unaware of the change and overwrote the name with its stale value during the next update cycle (triggered by the drag-and-drop action). 2) **when `sign_emsigner` module is installed:** The module patches `openSignRoleRecord` to manually set `this.state.roleName = data.name` before the role update process completes. However, `onChangeRoleName` relies on the condition `name !== this.state.roleName` to decide whether to notify the parent component (via `this.props.updateRoleName`). Since the state is already updated manually, this check fails (returns false), the parent is never notified, and the database is not updated. When `sign_emsigner` subsequently triggers a re-render (via `displayAddDocumentButton`), the parent passes down the old, state name, reverting the user's changes. ### **Fix:** 1) Remove all `updateSignerNames` logic since it is difficult to distinguish between a default-generated name and a user-customized name. 2) Update `updateRoleNameAndAvatar` to call `this.onChangeRoleName` with the new name, ensuring the parent component's state is synchronized. [1]- https://github.com/odoo/enterprise/blob/382dd07b8ef93e9315963825e69066155a534ba0/sign/static/src/backend_components/sign_template/sign_template_sidebar.js#L92-L102 [2]- https://github.com/odoo/enterprise/blob/afc32de0a2757d8f241886ce27736fb7c07ab8c7/sign/static/src/backend_components/sign_template/sign_template_sidebar_role_items.js#L121-L122 **opw-5389063** Forward-Port-Of: odoo/enterprise#102534
This update resolves an issue where unused coupon IDs were incorrectly displayed in loyalty coupon history, creating confusion for users. The fix ensures that coupon IDs are properly removed when rewards are applied or the reward dialog is closed, improving data clarity and user experience. While a full solution requires a view update, the current fix remains stable and addresses the core problem.
Original PR description
### Issue: Due to this issue, `coupon_ids` which are never used are still shown in loyalty coupons history which is confusing for users. #### Steps to reproduce: 1- Create two promotions: - Promo A:…
### Issue: Due to this issue, `coupon_ids` which are never used are still shown in loyalty coupons history which is confusing for users. #### Steps to reproduce: 1- Create two promotions: - Promo A: 10% discount - Promo B: 20% discount 2- Create a SO and add a line. Then confirm the SO. 3- Click on `Reward` button. 4- A dialog should show both promos. Discard the dialog. 5- Navigate to `Discount and Loyalty`. 6- Open Promo A and B and you can see both have lines with `coupon_id.order_id` = `created SO` which is confusing. `Issue 1` 7- Navigate back to SO. Click on `Reward` and select Promo A, apply. 8- Navigate to Promo B. As you see the the `coupon_id` related to the SO is still there. `Issue 2` ### Cause and Fix: This is due to unlinking `coupon_ids` only in SO confirm action, causing this issue on already confirmed SOs: https://github.com/odoo/odoo/blob/604d07ab324caa5f3aa6f3baa9902c2137ea24db/addons/sale_loyalty/models/sale_order.py#L132-L136 We can fix this issue by `unlinking` the `coupons_ids` when a reward is applied or the dialog is discarded. However there are 2 limitations: 1- The view needs to be updated. Otherwise, `coupon_ids` will not be deleted upon clicking on `discard` button. However the fix is still stable. 2- What if the dialog is closed with the cross button or the tab is closed without selecting a reward? In that case the issue will still persist. To fix these issues, we can show only used `coupon_ids` in `loyalty_coupon_id` list view. However that cannot be done in stable as it requires `use_count` to be stored. NB: With some complex filters this also could be fixed on stable but not worth it. opw-5424753 Forward-Port-Of: odoo/odoo#245534
This update corrects a discrepancy in pricing for combo products within the Self Order mode. Previously, prices displayed in the backend and frontend could differ when syncing orders. This change guarantees that combo product prices are consistently aligned across both systems, improving order accuracy and customer experience.
Original PR description
Before this commit, prices were not always aligned between the backend and the frontend, when syncing an order in Self Order mode the price of combo products could differ between backend and frontend. This commit ensures that combo products prices are always aligned between backend and frontend in Self Order mode. Forward-Port-Of: odoo/odoo#245934
This update allows portal users to modify the stage of opportunities they've been assigned to. Previously, this action was blocked due to security restrictions. The fix ensures a smoother experience for users managing leads through the website portal.
Original PR description
Steps to reproduce: 1. As a portal user, access an assigned opportunity. 2. Try to change the stage of the opportunity using the stage dropdown. Current behavior: - The stage change is not allowed, and an error is raised because we don't have rights to directl modify a crm.lead as a portal user. Solution: - Following the behaviour on the how we handle the other details of the opportunity from the portal, we add a dedicated method that allows portal users to update the stage of their assigned leads, if they have the rights to. opw-5346055 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#243279
This update fixes an issue where video call links in calendar invitations were not working correctly, displaying as plain text instead of clickable URLs. The change ensures that links are properly formatted, allowing users to easily join video calls sent via email. This improves the user experience for scheduling and attending meetings.
Original PR description
Video call links in calendar invitations were displayed as literal strings due to using `t-attf-href` instead of `t-att-href` in the email templates. ### Steps to reproduce 1. Schedule a meeting with a video call URL. 2. Send the invitation email. 3. Click the link; it incorrectly points to `http://object.videocall_location/`. opw-5436011 Forward-Port-Of: odoo/odoo#243055
This pull request updates the core spreadsheet component to the latest version (19.1.5). It addresses several minor bugs and inconsistencies related to spreadsheet functionality, specifically improving the mobile experience and ensuring consistent selection behavior. These updates enhance the overall stability and usability of the spreadsheet feature.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/f26a13054c [REL] 19.1.5 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0)…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/f26a13054c [REL] 19.1.5 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/3b9899bc1e [FIX] gauge: transform section rule formulas [Task: 5867508](https://www.odoo.com/odoo/2328/tasks/5867508) https://github.com/odoo/o-spreadsheet/commit/05e34b7026 [FIX] topbar: fix readonly banner on mobile [Task: 5342571](https://www.odoo.com/odoo/2328/tasks/5342571) https://github.com/odoo/o-spreadsheet/commit/2ba35d52d7 [FIX] selection: keep anchor consistent on mouse up [Task: 5431585](https://www.odoo.com/odoo/2328/tasks/5431585) Co-authored-by: Florian Damhaut (flda) <flda@odoo.com> Co-authored-by: Anthony Hendrickx (anhe) <anhe@odoo.com> Co-authored-by: Alexis Lacroix (laa) <laa@odoo.com> Co-authored-by: Lucas Lefèvre (lul) <lul@odoo.com> Co-authored-by: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Ronak Mukeshbhai Bharadiya (rmbh) <rmbh@odoo.com> Co-authored-by: Dhrutik Patel (dhrp) <dhrp@odoo.com> Co-authored-by: Rémi Rahir (rar) <rar@odoo.com> Co-authored-by: Pierre Rousseau (pro) <pro@odoo.com> Co-authored-by: Vincent Schippefilt (vsc) <vsc@odoo.com> Co-authored-by: Marceline Thomas (matho) <matho@odoo.com>
This update resolves a crash that occurred when printing dashboards within the spreadsheet view. The fix eliminates unnecessary checks and ensures the correct print size is applied after cell animations complete, now allowing for full page printing. This improves the reliability of the spreadsheet printing functionality.
Original PR description
1) Printing a sahboard crashes, because `env.getStore` isn't defined since we're not in a spreadsheet context. The `env.getStore` was needed to wait for cell animations that triggered when changing…
1) Printing a sahboard crashes, because `env.getStore` isn't defined since we're not in a spreadsheet context. The `env.getStore` was needed to wait for cell animations that triggered when changing the mode to `dashboard` to print, but since here we already are in dashboard mode, no aimations are triggered and we don't need this check. 2) Only the first page is now printned in spreadsheet mode This was because while waiting for the cells animations to end, the resize observer changed the sheetview size back to the correct size, instead of the print sheet size. We now change the size to the print size after waiting for the animations to end. Task: [5502436](https://www.odoo.com/web#id=5502436&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) 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#245195
1 change
Resolved issues and error corrections
This update prevents documents from automatically opening in a form view when accessed through various channels like direct links or systray notifications. Previously, users were unexpectedly directed to the document's form view, which has now been corrected to provide a smoother and more intuitive experience. This change improves usability and aligns with user expectations.
Original PR description
Users do not want to access the form view of the document by default. This PR solves three cases for accessing documents.document records that were not covered before: * From the basic path pattern `odoo/x/documents.document/<id>` * From a systray notification "Open Form View" * when we are not yet in Documents * when we already are in Documents * From the Discuss app, on the record's thread Tests for most of these are included. Additionally, make sure the document is selected on accessing from `_get_access_action`. Task-5386466 Forward-Port-Of: odoo/enterprise#105934 Forward-Port-Of: odoo/enterprise#104622
3 changes
Resolved issues and error corrections
This update resolves several issues related to the l10n_hr_edi module, specifically improving the generation of invoices and payment reports. The changes include correcting XML formatting and enhancing error handling, ensuring accurate financial reporting and a smoother user experience.
Original PR description
- Adjusting the hrextac xmlns to the updated one - Adjusting MER payment report button to not show incorrectly - Improving error handling for MER payment reporting task-none --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#246083
This update corrects a display issue in the loyalty coupon history, preventing confusion for users by ensuring unused coupon IDs are no longer shown. The fix addresses a technical detail related to how coupons are linked to sales orders, maintaining stability while addressing the core problem.
Original PR description
### Issue: Due to this issue, `coupon_ids` which are never used are still shown in loyalty coupons history which is confusing for users. #### Steps to reproduce: 1- Create two promotions: - Promo A:…
### Issue: Due to this issue, `coupon_ids` which are never used are still shown in loyalty coupons history which is confusing for users. #### Steps to reproduce: 1- Create two promotions: - Promo A: 10% discount - Promo B: 20% discount 2- Create a SO and add a line. Then confirm the SO. 3- Click on `Reward` button. 4- A dialog should show both promos. Discard the dialog. 5- Navigate to `Discount and Loyalty`. 6- Open Promo A and B and you can see both have lines with `coupon_id.order_id` = `created SO` which is confusing. `Issue 1` 7- Navigate back to SO. Click on `Reward` and select Promo A, apply. 8- Navigate to Promo B. As you see the the `coupon_id` related to the SO is still there. `Issue 2` ### Cause and Fix: This is due to unlinking `coupon_ids` only in SO confirm action, causing this issue on already confirmed SOs: https://github.com/odoo/odoo/blob/604d07ab324caa5f3aa6f3baa9902c2137ea24db/addons/sale_loyalty/models/sale_order.py#L132-L136 We can fix this issue by `unlinking` the `coupons_ids` when a reward is applied or the dialog is discarded. However there are 2 limitations: 1- The view needs to be updated. Otherwise, `coupon_ids` will not be deleted upon clicking on `discard` button. However the fix is still stable. 2- What if the dialog is closed with the cross button or the tab is closed without selecting a reward? In that case the issue will still persist. To fix these issues, we can show only used `coupon_ids` in `loyalty_coupon_id` list view. However that cannot be done in stable as it requires `use_count` to be stored. NB: With some complex filters this also could be fixed on stable but not worth it. opw-5424753 Forward-Port-Of: odoo/odoo#245534
This update ensures the spreadsheet component within Odoo is running the latest version. This fixes a potential issue with formulas and improves the overall stability and performance of the spreadsheet functionality. Multiple developers collaborated on this change.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/a2473c2979 [REL] 18.3.34 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/70eafc3287 [FIX] gauge: transform section rule formulas [Task: 5867508](https://www.odoo.com/odoo/2328/tasks/5867508) Co-authored-by: Florian Damhaut (flda) <flda@odoo.com> Co-authored-by: Anthony Hendrickx (anhe) <anhe@odoo.com> Co-authored-by: Alexis Lacroix (laa) <laa@odoo.com> Co-authored-by: Lucas Lefèvre (lul) <lul@odoo.com> Co-authored-by: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Ronak Mukeshbhai Bharadiya (rmbh) <rmbh@odoo.com> Co-authored-by: Dhrutik Patel (dhrp) <dhrp@odoo.com> Co-authored-by: Rémi Rahir (rar) <rar@odoo.com> Co-authored-by: Pierre Rousseau (pro) <pro@odoo.com> Co-authored-by: Vincent Schippefilt (vsc) <vsc@odoo.com> Co-authored-by: Marceline Thomas (matho) <matho@odoo.com>
5 changes
Enhancements to existing features
This update allows users to log calls to related documents, creating a new activity record for each call. Previously, calls were only logged within specific activities. This enhancement provides better documentation and tracking of customer conversations.
Original PR description
Previously, calls were only logged in the chatter if they originated from a specific activity. This change makes users can now log calls to corresponding documents either during or after the conversation. An activity will also be created for that. Task-5368166
Resolved issues and error corrections
This update resolves an error occurring when invoices are validated with DIAN, Colombia's tax authority. The issue stemmed from incorrect tag formatting in invoices, which DIAN was rejecting. The fix ensures invoices use the correct 'schemeName' format, allowing successful validation.
Original PR description
Problem: When validating invoices with DIAN, an error is received. Cause: Incorrect tags are being used in the invoices. These tags are checked when invoices are validated with DIAN. Solution: Use the correct tags in the invoices. schemeName should be used instead of scheme_name. Steps to reproduce: - Install l10n_co_dian module - Choose a Colombian company - Activate DIAN service in Settings - Create an invoice and send it while making sure the DIAN checkbox is ticked - Download the generated zip file and uncompress - Open the XML file and check for scheme_name. It should be replaced by schemeName. opw-5829958 Forward-Port-Of: odoo/enterprise#105841 Forward-Port-Of: odoo/enterprise#105659
This update resolves a minor technical issue within the l10n_jo_hr_payroll module. A typographical error in the module's manifest file has been corrected, ensuring proper functionality and stability. This change doesn't impact users but maintains the integrity of the module.
Original PR description
Fix some typos in the manifest of the module. Task: 5462506 Forward-Port-Of: odoo/enterprise#103241
This update resolves an issue where the rental line description was being recalculated twice, leading to inaccurate displays. This commit streamlines the process by removing the redundant calculation, ensuring the rental line descriptions are correctly updated when the period changes. This improves the accuracy of rental information for users.
Original PR description
Two commits fixed the same issue nearly the same way, leading to a double recomputation of the rental lines description on period change. This commit removes the second recomputation as it's un-necessary. See #72201 and #70397
A bug was causing the input field in the campaign test dialog to disappear, requiring users to close and reopen the dialog to use it. This fix addresses a technical issue related to how the system resolves model selections, ensuring the input field remains functional. The scope was limited to the marketing automation module due to prioritization.
Original PR description
Steps to reproduce: 1. Install `marketing_automation` 2. Create a campaign with activity and click on `Launch a test` button 3. Clear the input field and then click outside the input area Issue: -…
Steps to reproduce: 1. Install `marketing_automation` 2. Create a campaign with activity and click on `Launch a test` button 3. Clear the input field and then click outside the input area Issue: - The input area has disappeared. Now, the only way to get it back is by closing the dialog and reopening it Cause: - Field `resource_ref` uses `hide_model: True`, and when cleared, the widget has no value and no model selector to determine the target model because of the function `getRelation` that now returns `undefined`, by this XML fails to render the `<Many2OneField/>` https://github.com/odoo/odoo/blob/7680b83501cef18362be38f90715d824f2bf9cd6/addons/web/static/src/views/fields/reference/reference_field.js#L107-L119 Solution: - Add `model_field: model_id` option to the view so the widget can resolve the model from the `model_id` field even when input is empty Note: - This behavior also occurs in other places. After discussion with the framework team, we agreed to keep the scope of this PR limited to marketing_automation, as this is not a priority issue. A broader fix can be addressed in the master if needed. opw-5473320 Forward-Port-Of: odoo/enterprise#104547
1 change
Resolved issues and error corrections
This update fixes an issue where prices were not always rounded correctly during calculations in the sales and accounting modules. The change ensures that prices are consistently rounded to the nearest currency unit, improving accuracy in financial reporting and order totals. This impacts how sales orders and financial records are generated.