Wednesday, January 14, 2026
37 changes · 19.0
Resolved issues and error corrections
This update fixes a technical issue that prevented Odoo from properly exporting code translations for the new odoo.orm package. By specifying the package name in the framework's export process, Odoo can now accurately capture and manage code translations, ensuring consistent localization across the platform. This improves the quality and accuracy of our translated software.
Original PR description
New package odoo.orm was added in PR https://github.com/odoo/odoo/pull/182727 The new package's name must be specified in ``TranslationModuleReader._export_translatable_resources`` to allow the framework to export its code translations. 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#243584
This update fixes an issue where a distracting helper element remained visible in the bank reconciliation journal when there were no entries. By hiding this element when there's no data, the view is now cleaner and more user-friendly, particularly on mobile devices. This improves the overall user experience.
Original PR description
Before this PR, in the bank reconciliation journal, the no-content helper remained visible when the quick-create view was opened and there were 0 entries. This was unexpected behavior and caused overlapping issues, especially on mobile views. With this PR, the no-content helper is hidden whenever the quick-create view is open and there are 0 entries either isGrouped or not. task-5470591 Forward-Port-Of: odoo/enterprise#103776
This update addresses a rare issue where emails with incorrectly identified attachment types (specifically '*/*') caused errors in Odoo. To ensure emails are processed smoothly, the system now defaults to treating these attachments as 'application/octet-stream'. This prevents processing failures while acknowledging the sender's responsibility for correct email formatting.
Original PR description
In some rare cases it would seem that some systems construct emails with attachments reporting `*/*` as the Content-Type. While trying to parse such content in Odoo, it causes issues with the…
In some rare cases it would seem that some systems construct emails with attachments reporting `*/*` as the Content-Type. While trying to parse such content in Odoo, it causes issues with the standard CPython email library, as no standard handler exists for '*/*' content-types: Example error: ``` File "/usr/lib/python3.13/email/contentmanager.py", line 25, in get_content raise KeyError(content_type) KeyError: '*/*' ``` This is not compliant with valid MIME types defined in RFC2046/section-3, but in real life scenarios, blocking the processing of an incoming email in Odoo because of this might be excessive. While not a perfect solution, we will assume that attachments falsly reported as `*/*` are to be processed as 'application/octet-stream' content types. This should cover most use-cases, and if it still fails, we will consider that it's up to the original email sender to be RFC compliant. OPW-5425093 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#242193
This update enhances the reliability of the barcode tour process by ensuring all related actions have completed before the tour ends. Removing a synchronous check for DOM elements prevents potential errors and allows for a smoother user experience. This improves the overall stability of the barcode functionality.
Original PR description
After validate an operation, it's still beter to wait for trigger .o_stock_barcode_main_menu to be sure the calls are finished before closing the tour... especially when assertions are made after the tour in python. runbot-error-id~234470
This update fixes an issue where clicking links in the portal triggered a false 'page view' event for customers. A simple adjustment was made to the system's tracking to ensure accurate recording of customer activity within the portal. This improves the reliability of our portal analytics.
Original PR description
When a link to the portal is sent from the chatter via message or log note, the preview of the link triggers that the page was viewed by customer. As a solution a variable was added to the request headers coming from the previewer. opw-5237785 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#243061
This update resolves an issue where FrontDesk hosts with limited access were unable to check out visitors via email. The fix allows the checkout process to run with elevated permissions, ensuring all hosts can successfully complete the visitor checkout. This improves the user experience for FrontDesk staff.
Original PR description
Steps to reproduce: * Create a visitor record with a host who has only FrontDesk user access. * Ensure Notify with Email is enabled on the station. * Click Check Out Visitor from the received email → access error appears. Issue: * Hosts with only FrontDesk user access received an access error when clicking the “Check Out Visitor” button from the email notification. * They were unable to complete the visitor checkout process. Fix: * Run the checkout action with sudo() so the host can successfully check out the visitor from the email link. Impact: * Hosts can now check out visitors without encountering permission errors. task-5373026 Forward-Port-Of: odoo/enterprise#101179
This update resolves a bug that occurred when switching between accounting configurations (COAs) within the Hair Salon Point of Sale industry. The fix ensures that payment methods are correctly deleted during the CoA switch, preventing database errors and ensuring smooth operation.
Original PR description
Steps to reproduce: - Install industry Hair Salon - Settings > Invoicing > Fiscal Localization - Switch to Jordan fiscal localization Issue: Action will fail with error ``` ERROR: update or delete on table "account_journal" violates foreign key constraint "pos_payment_method_journal_id_fkey" on table "pos_payment_method" DETAIL: Key (id)=(6) is still referenced from table "pos_payment_method". ``` Analysis: It occurs because, when switching CoA, the system attempt to delete and re-create journals. However, the hair salon industry initialize a PoS configuration that will create a default payment method based on one of those journal, thus the system will raise a constraint error on delete. A solution is to manually enforce cascade delete when we are switching CoA. opw-5145235 Forward-Port-Of: odoo/odoo#243381 Forward-Port-Of: odoo/odoo#239433
This change fixes an issue where the Eas field automatically gained focus during Peppol registration, causing confusion for users. The fix removes the ability to focus this field, ensuring the system correctly pre-selects it and streamlines the registration process. This improves the user experience for Peppol registration.
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves an issue where carousel slide heights were inconsistent, potentially impacting the visual presentation of product listings on the website. The change adjusts the slide height within the 's_carousel_cards' component, improving the overall user experience and ensuring consistent display of content. This is a minor visual fix.
Original PR description
[WIP]
A bug was causing a traceback when opening contacts due to an ambiguous column reference in the account_followup module. This fix resolves the issue by clarifying which table the 'commercial_partner_id' column belongs to within a database query, ensuring proper data retrieval and preventing errors.
Original PR description
### Issue: When creating a record rule on moves using partners, a traceback is raised when opening a contact. ### Steps to reproduce: - Install 'account_followup' and 'contacts' - In Settings >…
### Issue:
When creating a record rule on moves using partners, a traceback is raised when opening a contact.
### Steps to reproduce:
- Install 'account_followup' and 'contacts'
- In Settings > Technical > Security > Record Rules create a new rule
- name: Test Rule
- model: Journal Entry
- definition: `[('partner_id.is_company', '!=', True)]`
- Open the Contact app and try to open a contact
- Traceback
### Cause:
The newly created rule is used in the query computed by `_compute_has_moves()`. To do this the tables 'account_move' and 'res_partner' are joined. Then `subselect()` simply adds the select element with the string it is given, resulting in:
```sql
SELECT commercial_partner_id
FROM "account_move"
LEFT JOIN "res_partner"
...
```
But both `account_move` and `res_partner` have a column named "commercial_partner_id" resulting in an ambiguous column reference traceback.
### Solution:
We need to add precision on which table should be used. `subselect()` cannot guess which one should be used. We cannot add the precision in the definition of `field_names` because it is not compatible with the domain used by `_search()`.
So we add `'account_move.'` to the field name before giving it to `subselect()`.
opw-5467608This update resolves an issue where the system was incorrectly granting elevated permissions (sudo) to bank statement data. This change improves security and efficiency by streamlining access to bank information, ensuring only authorized processes can interact with it. The fix was implemented as a straightforward correction.
Original PR description
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#242899 Forward-Port-Of: odoo/odoo#242771
This update corrects a minor issue with how prices were calculated in the Point of Sale (POS) system. The change ensures accurate price signs are displayed, preventing potential display errors. This improves the overall user experience for POS transactions.
Original PR description
We were using `currencyDisplayPriceUnit` inside `Math.sign()`. However, `currencyDisplayPriceUnit` returns a string. Now we use `displayPriceUnit`. opw-5405572
This update resolves a minor issue in a performance test related to menu loading within the Odoo web application. The change optimizes a query number used in the test, resulting in faster and more reliable test execution. This improves the overall stability and efficiency of the web module.
Original PR description
Forward-Port-Of: odoo/odoo#243298
This update resolves an issue where users without specific group permissions would encounter errors when pinning or unpinning embedded actions, particularly within superuser mode. The change ensures superuser operations, such as automated tasks or installations, can correctly manage these actions without restriction. This improves stability and reliability of the Documents module.
Original PR description
Prior to this commit, an AccessError would be raised when pinning or unpinning embedded actions if the current user did not belong to the 'documents.group_documents_user' group. This could cause issues during operations running in superuser mode (e.g., automated actions, installation scripts, or sudo() calls) because the check strictly validated the user's groups without considering the environment's superuser flag. This commit adds a check for `self.env.su` to ensure the AccessError is not raised when the environment is in superuser mode. Task-5380727 Forward-Port-Of: odoo/enterprise#104043 Forward-Port-Of: odoo/enterprise#101106
This update corrects a flaw in a VoIP test that was incorrectly matching results based on unrelated data. The fix ensures the test only evaluates data created within the test environment, preventing inaccurate results and improving the reliability of VoIP contact searches. This enhances the overall stability of the enterprise module.
Original PR description
In the test, we suppose to find no phone number matched result when search term length is shorter than `_phone_search_min_length`. However, it can still match `name` or `email` if possible. In this fix, we change the test to only consider the data created in the test, to avoid the wrong result from demo data. backport odoo/enterprise#101200 Forward-Port-Of: odoo/enterprise#104120
This update addresses a change in Shopee's API, which previously used outdated testing paths. The team has corrected these paths to ensure the Odoo Enterprise system continues to function correctly with Shopee. This fix maintains seamless integration with Shopee for sales operations.
Original PR description
Shopee has changed the API path and the original testing API paths are no longer valid. Forward-Port-Of: odoo/enterprise#103939
This update resolves a recurring problem with the website tour feature, which previously failed intermittently. The fix addresses a timing issue related to the tour loading and the builder's 'Block' tab interaction, ensuring the tour consistently works as expected. This improves the user experience for visitors.
Original PR description
Tour added in this [commit] was previously failing, and the earlier [fix] only reduced the frequency of failures. However, it still occasionally fails due to race conditions of the iframe becoming ready and the moment the builder opens the 'Block' tab after the iframe has been reloaded. This commit aims to fix it. [commit]: https://github.com/odoo/odoo/commit/a5455bf [fix]: https://github.com/odoo/odoo/commit/0a9522792cc0e18a895c0589f34977123d091d1a runbot-234504 Forward-Port-Of: odoo/odoo#239062
This update resolves a minor visual issue with the Point of Sale interface. Specifically, a button class was corrected, ensuring a consistent and professional look for the customer display functionality. This change improves the overall user experience within the Point of Sale module.
Original PR description
task : 5493872 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update enhances the Sign Request module's user interface and functionality. Specifically, it simplifies the viewing of sign requests, streamlines the process of managing signers, and improves the overall user experience by addressing minor UI/UX issues.
Original PR description
- Hide 'Sent By' column by default in list view - Use many2one widget for signers in list view - Update template name logic: * Keep custom name if set * Automatically update based on first uploaded document otherwise - Localize signing date in kanban view - Show 'Download' as dropdown only if more than one document - Add 'Details' item to gear icon menu to open form view
This update fixes an issue preventing internal users from accessing canned responses within the Odoo Portal. The change corrects a previous misconfiguration and backports a solution from another PR, preparing for future Portal enhancements. This ensures consistent functionality for all users.
Original PR description
*: im_livechat, portal, project, test_mail_full PR #192953 introduces a composer action for canned responses. The feature is available in portal for internal users but since `suggestion` is disabled in portal, this feature doesn't work properly. In preparation for supporting `::` delimiter in portal, the incorrect fix in PR #231360 has been reverted. `inFrontendPortalChatter` is specific to portal frontend and should not be set to `true` in the project sharing environment. Instead of the mentioned fix, a similar fix from PR #231441 has been backported. task-5262349 Forward-Port-Of: odoo/odoo#235551
This update corrects a small issue in the demo data for the recruitment module. Previously, the demo data incorrectly referenced user records instead of partner records, which caused problems when running the demo. This change ensures the demo data accurately reflects the expected data structure, improving its usability.
Original PR description
author_id expects a res.partner record. In this commit: Replace the user record with the corresponding partner record to avoid passing an incorrect recordset in demo data. Forward-Port-Of: odoo/odoo#241260
This update corrects a bug that occurred when a leave request was linked to a refused allocation and the 'Time Off: Cancel invalid leaves' cron job ran. The issue stemmed from an empty data structure being used, which caused an error. This fix ensures the system handles refused allocations correctly during the cron process.
Original PR description
When a leave is linked to a refused allocation and the cron ``Time Off: Cancel invalid leaves`` runs, a traceback occurs. Steps to reproduce the error: - Install ``hr_holidays`` without demo data -…
When a leave is linked to a refused allocation and
the cron ``Time Off: Cancel invalid leaves`` runs, a traceback occurs.
Steps to reproduce the error:
- Install ``hr_holidays`` without demo data
- Create a new Time Off Type > Time Off Requests, Approval: No Validation >
Allow Negative Cap: True > Maximum Excess Amount: 2
- Create an Accrual Plan using default values
- Create a New Allocation
- Allocation Type: Accrual Allocation
- Set the Time Off Type and Accrual Plan created above
- Allocation: 1 day > Approve
- Create a new Time Off in the near future (in the current month) and select the Time Off Type created above
- Go back to the Allocation > Refuse
- Run the cron ``Time Off: Cancel invalid leaves``
Traceback:
``IndexError: list index out of range``
https://github.com/odoo/odoo/blob/bc5f24195a486112574900015ecbcf0e3ba32145/addons/hr_holidays/models/hr_leave.py#L1535-L1536
Here, ``leave_type_data`` becomes ``defaultdict(<class 'list'>, {})``
because when the allocation is refused and the cron runs,
the ``get_allocation_data`` method returns an empty defaultdict.
As a result, accessing the index leads to the above traceback.
sentry-6874651972
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#243505
Forward-Port-Of: odoo/odoo#227201This update ensures that leave dates are automatically recalculated when an employee's working schedule changes. Previously, leave entitlements weren't dynamically updated, leading to potential inaccuracies. This fix corrects this issue, guaranteeing accurate leave calculations based on the latest working calendar.
Original PR description
purpose: Accepted leaves should be recomputed upon working schedule change. - made the `resource_calendar_id` change on the leave when it's changed on the corresponding employee/contract, then forced recomputation of its dates from the new resource calendar task-id: 5424312 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#243287 Forward-Port-Of: odoo/odoo#241284
This update brings the latest version of the Odoo spreadsheet component to version 19.0.17. It includes several bug fixes and minor improvements to enhance the spreadsheet functionality and address performance issues, ensuring a smoother user experience.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/2165bade2 [REL] 19.0.17 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0)…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/2165bade2 [REL] 19.0.17 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/5bd5ed31c [FIX] Pivots: Recompute measure on indirect dependency update [Task: 5349782](https://www.odoo.com/odoo/2328/tasks/5349782) https://github.com/odoo/o-spreadsheet/commit/7473925f8 [FIX] demo: add import osheet [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/f3be8c001 [FIX] f&r: the searched range should follow the active sheet [Task: 5423885](https://www.odoo.com/odoo/2328/tasks/5423885) https://github.com/odoo/o-spreadsheet/commit/f9256eee3 [FIX] Composer: Capture the correct selection on `F2` [Task: 5462713](https://www.odoo.com/odoo/2328/tasks/5462713) https://github.com/odoo/o-spreadsheet/commit/a6aaeeffe [IMP] figure: add data-type attribute to figure carousel tabs [Task: 5447027](https://www.odoo.com/odoo/2328/tasks/5447027) 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 fixes a restriction that prevented non-administrator users from updating GI CFDI sequences. Previously, sequence updates required elevated privileges, limiting functionality. Now, users can independently manage GI CFDI sequences, streamlining the process and improving efficiency.
Original PR description
In odoo/enterprise#102500, support was added for custom GI CFDI sequences at branch level. However, the sequence consumption fails for non-admin users due to missing write access on ir.sequence, so sudo() is required when updating number_next.
This update fixes an issue with how Odoo exports negative discounts when generating Peppol BIS 3 invoices. Previously, the system incorrectly treated negative discounts as allowances, leading to compliance errors. Now, the system dynamically adjusts the export to correctly represent negative discounts as surcharges, ensuring adherence to PEPPOL standards and accurate invoice calculations.
Original PR description
In Peppol BIS 3 (UBL 2.1), negative discounts are logically treated as Surcharges (Charges) rather than Allowances. Previously, Odoo exported negative discounts as an Allowance with a negative amount and a numeric reason code (95). This violated: BR-CL-20 / PEPPOL-EN16931-CL003: Coded charge reasons must belong to the UNCL 7161 (alphabetic) list when ChargeIndicator is 'true'. PEPPOL-EN16931-R120: The line net amount calculation failed due to the negative sign in the calculation. Solution: Dynamically toggles ChargeIndicator based on the discount sign. Swaps AllowanceChargeReasonCode to 'ADK' (Surcharge) for negative discounts. task-5432024 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
A previously random failure in a key stock management tour has been resolved. The fix ensures the system correctly verifies the first pallet line is unpacked before proceeding to the second, preventing a race condition that caused incomplete actions. This improves the reliability of the tour and the overall stock management process.
Original PR description
Before this commit, the tour `test_internal_picking_reserved_move_packages_into_new_palet` was randomly failing. In this tour, we have two palets we unpack. The issue is, after unpacked the first one, we complete the second one line and then we unpack it. But it can happen the click on the button to complete the second line was done too quickly (in the meantime the first palet line is unpacked) and thus, because of this race condition, the second palet line was not complete (either it's just a visual bug due to a refresh in the wrong time, either the complete action is dropped due to the first line unpacking action.) To fix that, this commit adds a step to verify the first line is correctly unpacked before going further. runbot-build-error: [237801](https://runbot.odoo.com/odoo/runbot.build.error/237801)
This update resolves an issue related to the DmfA declaration within the Belgian payroll module. The change ensures compatibility with recent refactoring efforts, maintaining accurate payroll calculations for employees in Belgium. This update focuses on a technical fix to improve payroll processing reliability.
This update corrects a technical issue where subcontracting purchase orders were sometimes incorrectly identified as having multiple destinations. Previously, older orders could cause errors. This change ensures accurate processing of subcontracting orders by handling destination receipt counts correctly, improving order fulfillment accuracy.
Original PR description
Since commit fc66e2d4eb638f1486e69cd5920f02c787055da1 , a subcontracting MO only has one destination receipt. However, Subcontracting MOs created in previous versions can still have multiple move_dest_ids, hence `is_subcontract` must be accessed in a filter or after an `ensure_one()` OPW-5493343 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes a bug where email templates with images would sometimes duplicate content when saved. The change ensures all images load completely before processing, preventing errors and maintaining template integrity. This improves the reliability of email templates.
Original PR description
Problem: In Email templates, having an email with an image using `t-att-src` (Qweb) on save will duplicate the template. Cause: Images without a `src` attribute (or empty src) make `waitUntilImagesLoaded` fail immediately if the image loading promise rejects. Because the errors were not caught, the inline conversion process was interrupted and duplicating content. Solution: Use `Promise.allSettled` instead of `Promise.all` to ensure the system waits for all images to finish loading regardless of success or failure. Additionally, filter the query selector to strictly select images with a non-empty `src` attribute (`img[src]:not([src=""])`) to avoid processing invalid or dynamic Qweb images. Steps to reproduce: - Open An email template with Qweb image. - Do a change and save. - Observe the content is duplicated. opw-5489040 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes an issue where translated text within views was being incorrectly escaped as HTML. By marking translated attributes as safe elements, the system now correctly renders translated strings, ensuring accurate display of localized content. This improves the user experience by preventing unexpected characters from appearing in translated text.
Original PR description
Following the semantic change in QWeb `t-call`, node attributes are now treated as function arguments. Previously, these were defined via `t-set`, which produced QwebContent capable of holding…
Following the semantic change in QWeb `t-call`, node attributes are now treated as function arguments. Previously, these were defined via `t-set`, which produced QwebContent capable of holding XML/HTML.
When `edit_translations` is active, translated strings are wrapped in `<span>` tags containing translation metadata. To maintain backward compatibility and allow in-place translation, values from `.translate` attributes are now explicitly marked as Markup safe elements. This ensures that the translation wrappers are correctly rendered as HTML rather than escaped text.
Exemple:
```xml
<t t-call="payment.submit_button">
<button><t t-out="submit_button_label"/></button>
</t>
<t t-name="payment.mytemplate">
<div class="modal-body">
<div class="float-end mt-2" t-att-data-provider-id="provider_sudo.id">
<t t-call="payment.submit_button" submit_button_label.translate="Pay"/>
</div>
</div>
</t>
```
When reading the views, `submit_button_label` value must be translated. We We want the button to be rendered with the translated value and not to display the escaped char like "<".
see: https://github.com/odoo-dev/odoo/commit/eb6e88a25050fff2bd09317739dd51ba451450df
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-prThis update addresses a compatibility problem with older browsers. A recent change in how Promises were handled caused errors for users running older versions of Odoo. This fix backports a necessary polyfill to ensure consistent functionality across all supported browsers.
Original PR description
This commit adds a polyfill for Promise.withResolvers. Such a polyfill had been introduced in [1], which deprecated Deferred in favour of withResolvers, but withResolvers was already used in v19, thus leading to tracebacks for people running (very) old versions of their browsers. This commit backports the polyfill. [1] https://github.com/odoo/odoo/pull/235237 task~[special request from our cto] --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes an issue where menu entries were incorrectly linked to the latest page when multiple pages with the same name were created. Now, menu updates only occur when a new page is created, ensuring accurate page associations and preventing confusion for users. This improves the consistency of website navigation.
Original PR description
With commit 19302cd40347065fcd937bd54e6dce27fe4940cc, when a page is created, menu entries with a url corresponding to the created page are updated to set their `page_id` to the new page. The update may also be triggered when creating several pages with the same name in a row. This commit updates a menu entry on page creation only if no page were already associated to the menu. Steps to reproduce: - Create a new page, call it "test" (will be available on `/test`) - Create a new page, call it "test" (will be available on `/test-1`) - Go to editor menu - Bug: both entries point to `/test-1` - Create a new page, call it "test" (will be available on `/test-2`) - Go to editor menu - Bug: the first one (and the new one) is pointing now to `/test-2` task-5186653 Forward-Port-Of: odoo/odoo#243312
This update corrects a bug where matching a partner by bank account could be overwritten by a subsequent match found through the partner's name. Previously, the system didn't check if a partner was already identified, leading to incorrect partner assignments. This ensures accurate partner retrieval, particularly when using bank statements.
Original PR description
Ensure the retrive partner from partner name doesn't override the retrieve partner from bank account. When retrieving a partner on an st_line, we first check for a match based on the bank account, and then on the partner name. However, we fail to check if a match was already found before searching by name. This means that if a partner is matched via bank account, and subsequently another match is found via name, the first match gets overridden by the second one. This commit adds a check for st_line.partner_id before attempting further matching, preventing the previous result from being overridden. no-task Forward-Port-Of: odoo/enterprise#103648
This update resolves a bug preventing the correct saving of order details related to Swedish point-of-sale transactions. The fix ensures that all necessary data is recorded in the database, improving the accuracy of sales reporting. It also includes updates for compatibility with the latest IoT box image.
Original PR description
In commit 807420a, the `pos.order` fields in `pos_l10n_se` were renamed to add `sweden_` at the start. However, these fields were not renamed in the JS code. The result is that the fields were not being saved to the DB. This commit fixes the issue by renaming the fields in the frontend. It also adds some fixes to ensure compatibility with the newest IoT box image. opw-5253585 Forward-Port-Of: odoo/enterprise#104218 Forward-Port-Of: odoo/enterprise#104180
This update resolves an issue where the wizard didn't automatically close after downloading reports when using custom report handlers (like those for IoT). Previously, IoT integrations caused the wizard to remain open, leading to unexpected behavior. This fix ensures the wizard closes correctly regardless of the report handler used, improving the user experience.
Original PR description
Problem: When an alternate ir.action.report handler is used (such as for IoT), the logic to close the wizard after the report is downloaded (printed) is skipped, so the wizard stays open. Steps to Reproduce: - Go to "Acoustic Bloc Screens" product and click "Print Labels" - Select "ZPL labels" and confirm - The report downloads and the wizard closes as expected - Go to Settings > Technical > Reports and select "Product Label (ZPL)" - Set an IoT device on the report - "Print Labels" again, selecting a printer and the IoT toasts in the top right appear after the wizard closes - Refresh the page, and try printing again - The wizard stays open (wrong) and the IoT toasts appear Solution: When returning from the custom handler, check if close_on_report_download and close the wizard. opw-5153139 Forward-Port-Of: odoo/odoo#242045 Forward-Port-Of: odoo/odoo#238247
This update resolves an issue where incorrect credentials caused misleading error messages when sending invoices. The fix ensures a clearer and more informative error display, preventing confusion and streamlining the invoice processing workflow. This improves the user experience and reduces potential delays.
Original PR description
Fixing incorrect error display that occurred while trying to send an invoice to MER with incorrect credentials set up. (no task/error ID) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#243489