Daily updates from Odoo
Tuesday, December 24, 2024
9 changes
1 change
Resolved issues and error corrections
Splitting a restaurant order now preserves ordered and unordered quantity details on each line. This prevents kitchen preparation displays from showing incorrect quantities, helping staff prepare the right items after an order is split.
Original PR description
pos*: pos_restaurant, pos_preparation_display Before this commit: ============== - Splitting an order caused the loss of ordered and unordered quantity information for the order lines. After this commit: ============== - Ordered and unordered quantity information is preserved for all order lines. - Preparation display quantities remain unaffected. Task - 4114041 Related - odoo/odoo#179481
7 changes
Resolved issues and error corrections
Fixes a website editor issue where deleting text inside a quotes carousel could remove the whole slide and leave the carousel in a broken state. This helps website editors safely modify quote carousel blocks without causing page errors, and adds test coverage to prevent the problem from returning.
Original PR description
Steps to reproduce: - Enter website edit mode. - In the right panel, click on the "Intro" category. - Enter "quotes" in the "Search" input of the modal. - Click on one of the two "quotes carousel"…
Steps to reproduce: - Enter website edit mode. - In the right panel, click on the "Intro" category. - Enter "quotes" in the "Search" input of the modal. - Click on one of the two "quotes carousel" blocks. - After the "quotes carousel" block is inserted on the page, click on its "Blockquote". - Click the red "delete" button that appears above the "Blockquote". - Bug: The carousel item is removed, and only the arrows to move the slide are shown on the screen. If you click on one of the arrows, a traceback will occur. The exact same bug was previously fixed in commit [1], but since the modification of the "carousel quotes" snippet in commit [2], the fix no longer works. There is a system that removes the parent of a snippet that gets deleted if this parent is empty after the deletion. This allows, for example, to remove a column if its content is emptied to avoid leaving an empty column on the page. An exception to this rule was introduced by commit [1] for carousel items. Indeed, we don't want to remove a carousel item when it is empty. This exception checks if the grandparent of the deleted element is a carousel item. It worked initially because when the content of a slide was deleted, the container still remained within the carousel item. But this is no longer the case for the "quotes" carousel since commit [2], where the intermediate "container" element is no longer present. This commit also adds steps to the "carousel_content_removal" tour to prevent the issue from reappearing. [1]: https://github.com/odoo/odoo/commit/3c194faa930b0d3a537ca8b893b2c0442b5464e7 [2]: https://github.com/odoo/odoo/commit/4357ce81ed89bd389eafe3756733758736bad6cb opw-4417366 opw-4395645
This fixes a website issue where buttons linking to a section could fail to scroll to the right place when on-scroll animations were used. Visitors can now reliably navigate to linked page sections, while animated content still avoids unwanted horizontal scrolling across browsers.
Original PR description
Steps to reproduce the bug: - Go to the website edit mode. - Drag and drop a "Text - Image" block onto the page. - Drag and drop a "Media List" block at the bottom of the page. - Drag and drop a…
Steps to reproduce the bug: - Go to the website edit mode. - Drag and drop a "Text - Image" block onto the page. - Drag and drop a "Media List" block at the bottom of the page. - Drag and drop a "Text" block at the bottom of the page. - Click on the "Text" block. - In the "Text" block options, click the "Create a link to target this section" button. - Click on the "Button" inside the "Text - Image" block. - In the options, paste the "link" to the anchor copied to the clipboard into the URL input of the button. - In the "Column" options, add an "On Scroll" animation to the column. - Save the page. - Click the "Text - Image" button. - Bug: the page doesn't scroll to the "Text" block. This bug was introduced by commit [1], where the "overflow-x: hidden" CSS rule, used to prevent a horizontal scrollbar during animations caused by overflowing content on the right side of the page, was moved from the HTML element to the body element. The bug appeared because when the code triggering the scroll animation to the anchor runs after clicking the button, it checks which element is scrollable. At that moment, the body has "overflow-x: hidden," which causes its "overflow-y" to become "auto" instead of "visible" (browser behavior, see https://developer.mozilla.org/en-US/docs/Web/CSS/overflow). The body element is then considered scrollable, even though it isn't. This is why the scroll animation doesn't work. To fix this, we replace "overflow-x: hidden" with "overflow-x: clip". This is more appropriate in this context and prevents "overflow-y" from becoming "auto". We also add "display: flow-root;" in combination with "overflow: clip" because without it, "overflow: clip" alone may not be sufficient to prevent elements inside "body" from overflowing, particularly animated elements in Firefox. This creates a new formatting context, preventing unexpected overflow behavior across different browsers. [1]: https://github.com/odoo/odoo/commit/fece9cb85761e6cb3fe3642f947661464402363b opw-4393527
This fix prevents email templates from being altered incorrectly when they contain self-closing template tags. It helps ensure standard templates, such as sales order confirmations, display and behave as intended when edited.
Original PR description
**Problem**: Previously, self-closing tags were converted after parsing with `DOMParser`. However, when parsing with the content type `"text/html"`, all self-closing tags are converted to open tags without corresponding closing tags. **Solution**: Convert self-closing tags before parsing to ensure proper handling. **Steps to reproduce**: 1. Open email templates. 2. Open a template containing self-closing tags like `t` (e.g., Sales: Order Confirmation). 3. Observe that the template is incorrect, with all self-closing tags converted to open but not closed tags. opw-4394833 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Delivery-related analytic costs are now grouped under materials in the project profitability view instead of being shown as other costs. This gives businesses a clearer and more accurate breakdown of project costs without extra manual review.
Original PR description
This commit's purpose is to put the aal generated from deliveries into the 'materials' section under the costs section in the project profitability panel. Currently, those aal are considered as random aal and put under the 'other costs' section. This does not sees very appropirate. In order to be able to differentiate aal created on the fly and the aal generated from picking, a new option is added on the already existing selection field 'category' in order to avoid a heavy search and computation on the move.line model. version 18.0 - master task - 4180276
This fix prevents restaurant point-of-sale orders from failing when a customer starts an online payment at one table, leaves it unfinished, and then starts another online payment at a different table. It keeps the payment flow stable and avoids forcing the POS into offline mode during normal restaurant operations.
Original PR description
This error occurs when a product is added to one table, and the payment screen is accessed where an online payment method is selected but the payment is not completed. Subsequently, switching to…
This error occurs when a product is added to one table, and the payment screen is accessed where an online payment method is selected but the payment is not completed. Subsequently, switching to another table and attempting to make an online payment results in the issue.
Steps to reproduce:
---
- Install ``pos_online_payment`` and ``pos_restaurant`` module
- Create a new online payment in ``Payment Method(eg: Test)``
- In Configuration/Settings, add it for a restaurant in ``Payment Method``
- Now open a session in a restaurant > Select one table > Add products > Order > Payment > Click on Test
- Click on ``+`` > Add product > Payment
- Click on Test and Validate
Traceback:
---
``Expected singleton: pos.order('p', 'o', 's', '.', 'o', 'r', 'd', 'e', 'r', '_', '2')``
Previous Behaviour:
---
When an online payment is selected for the first table but exited without completing the transaction, an RPC error occurs, causing the system to switch to offline mode. Consequently, the order encounters an error when attempting to place an order and process an online payment at the second table. At that time, it creates a new order as ID ``pos.order_2`` and updates the previous order. Due to what we get ID like ``pos.order_2``, leading to the issue.
After Commit:
---
When creating a new order for another table at [1], the ``online_account_payment_id`` is set to false. If this value is false, we will assign an empty set to ``online_account_payments_by_pm[pm_id]``.
sentry-5703437687
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis fix prevents scheduled email fetching from getting stuck when a Gmail OAuth session expires while closing an IMAP connection. Instead of stopping future mail retrieval, Odoo now handles the connection error gracefully and logs a warning so email fetching can continue normally.
Original PR description
### Description of the issue/feature this PR addresses: This error could be raised if oAuth session has expired before Odoo gets a chance to close the IMAP connection: ``` <class…
### Description of the issue/feature this PR addresses: This error could be raised if oAuth session has expired before Odoo gets a chance to close the IMAP connection: ``` <class 'imaplib.IMAP4.abort'>: \"socket error: [Errno 32] Broken pipe\" while evaluating\n'model._fetch_mails() ``` We get this error from time to time when fetching emails from a Gmail account configured with Google oAuth. ### Current behavior before PR: Fetchmail scheduled action hangs when this happens, and no email are fetched anymore (dangling connection still in worker process, until this worker is recycled? Is it possible?). ### Desired behavior after PR is merged: Catch properly the exception and have a scheduled action terminating nicely. We did this patch on v14, but we are not entirely sure it is fixing the encountered issue as this happened randomly, and very rarely. But I guess it is anyway a good thing to catch such errors to get a WARNING log, like it has been done by catching `OSError` for timeout issues. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Shop floor production for serial-numbered products now records completed quantities only on the relevant manufacturing order. This prevents unrelated backorders from incorrectly appearing as completed, improving production accuracy and traceability.
Original PR description
With this Commit : ---------------------------------- - Previously, when processing MOs on the shopfloor for SN products, registered production appeared to be done for all backorders created for SN products. - This fix ensures that registered production is only done for the relevant MO and not incorrectly for all backorders. Task-id: 4373005
1 change
Resolved issues and error corrections
This update corrects a broken process where website menus linked to helpdesk teams were incorrectly visible to public users. The fix resolves multiple coding errors that caused unintended behavior and potential visibility issues. The team is now preventing users from adding helpdesk URLs to website menus, streamlining the process.
Original PR description
Since [1], this flow is broken: 1. Install website_helpdesk => You have a "Help" menu with an helpdesk team as url (/helpdesk/customer-care-1) which is created 2. Check: if you publish or unpublish…
Since [1], this flow is broken: 1. Install website_helpdesk => You have a "Help" menu with an helpdesk team as url (/helpdesk/customer-care-1) which is created 2. Check: if you publish or unpublish your team, that menu is visible or invisible as a public user. 3. Create a new menu for your website, with that same URL (/helpdesk/customer-care-1) 4. Check: that menu is always invisible as a public user. Even if you remove the first menu. Multiple mistakes were made with [1]: - The website menu visibility override code was added twice in two different files. - The override advertises that this is for "always showing the helpdesk team menus even if they are unpublished" but it is actually meant to be the exact opposite of that. - The implementation is based on the menu that are linked to the helpdesk teams, not on their URL **. - The implementation actually bypass the normal visibility computation for all menu URL that start with "/helpdesk", meaning a custom page "/helpdesk-hello" from the user is just broken, so as existing controllers not linked to an helpdesk team (such as /helpdesk/rating). **: actually this could mean that this feature is just not meant to be given the current state of the codebase: creating a menu with a team URL should just make it so it is forcefully linked to that team or should be prevented if it cannot (?). [1]: https://github.com/odoo/enterprise/commit/a888fb57ebd2458bc8479e187088cb2e96b811fa opw-3931376