Daily updates from Odoo
Thursday, November 21, 2024
42 changes · 18.0
Enhancements to existing features
The sales portal now keeps better track of the order or quotation list a customer was viewing, so previous and next navigation works more consistently. This makes it easier for customers to move between sales documents without losing their place.
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
The subscription portal now keeps track of the history used for previous and next navigation. This makes it easier for customers to move between subscription records consistently when browsing in the portal.
The Documents app rename folder dialog now uses clearer wording, with the title and action button both saying "Rename". This reduces ambiguity for users and makes the action easier to understand.
Original PR description
This commit applies the following changes to the rename folder dialog: - change dialog title: "Odoo" -> "Rename" - remove the label of the "name" field - change the save btn title: "Save" -> "Rename" task-4305976
Resolved issues and error corrections
This fixes a problem where a test retry check could fail after an earlier test failure, creating misleading logs. The change helps keep automated test results clearer and more reliable for teams monitoring product quality.
Original PR description
Since auto retry was disabled after the first failure (see #162990), the test_retry test suite will systematically fail if another test fails before, adding confusing logs. Fix the way the retry count is detected to solve the issue.
New products created while importing sales documents now keep the unit of measure from the sales line, such as dozens instead of defaulting to units. This helps avoid pricing and quantity mistakes when products are created automatically during sales import workflows.
Original PR description
Steps: - Go to sales. - Enable UOM from settings. - Export Purchase EDI file with Dozens UOM on product in another DB. - Import that file here in sales. - Since that product is not created here in our db create product on fly from SOL. Issue: - Newly created product does not have Dozens UOM instead it set to Unit and update it in SOL so price on SOL and product is according to Dozens UOM and UOM set on product and SOL is Unit which can lead to issues. Cause: - Missing context to set default UOM from SOL to product. Fix: - Added `default_uom_id` context on product field on SOL view. - Ensure that an uom is always provided to the creation values even if `default_uom_id` is set to `None` in the context, since `uom_id` is a required field on products. - Updated sale_timesheet code to avoid overwriting default values when product is not a timesheet product opw-4316426
This fix lets website grid sections grow vertically when content needs more space, such as on smaller screens or when translated text is longer. It helps prevent cramped or cut-off content, improving the browsing experience for visitors.
Original PR description
Website CSS grid bug fix affecting responsiveness to smaller screen resolutions. **Description of the issue/feature this PR addresses:** Having `grid-auto-rows` fixed at 50px stops the grid cells from growing in a responsive manner. **Current behavior before PR:** Grid cells don't respond to changes in screen resolution or changes caused by the content being translated to a different language. **Desired behavior after PR is merged:** Using the `minmax()` CSS function allows the grid cells to expand vertically to accommodate content that exceeds the minimum height of 50px, improving responsiveness on smaller screens. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update prevents receipt validation failures when a product is changed from lot-based tracking to quantity-based tracking. It automatically clears the lot valuation setting when it no longer applies, helping purchasing and inventory flows continue without manual correction.
Original PR description
Issue: Cannot validate receipts for products whose tracking changed from lot to quantity. Steps to reproduce: - Install both Inventory & Purchase apps - Create a new product - Track the product's inventory by Lot and set it's valuation by Lot - Set the product's tracking in inventory by quantity - Create a Purchase Order for the product - Confirm the PO - Validate the linked Receipt Cause: Lot valuation is not set to False when changing the tracking of a product from lot to quantity. Solution: Add an onchange on the "[tracking](https://github.com/odoo/odoo/blob/78b8a1670b5272c820f64ef904f4bdf00760031e/addons/stock/models/product.py#L694-L700)" field to update "lot_valuated" to False when **lot_valuated is still True** despite **no tracking being specified**. Ticket: [4345571](https://www.odoo.com/odoo/project/49/tasks/4345571) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
A website test step related to hiding the header while scrolling was corrected after it broke in no-demo builds. This helps keep automated quality checks reliable without changing the customer-facing website experience.
Original PR description
in commit https://github.com/odoo/odoo/pull/182289/commits/b18e284da99ff3ae10ef03f12fdcb13efc3acbd1 one of the steps of dropdowns_and_header_hide_on_scroll tour got broken. This commit aims to fix that error. [runbot errors](https://runbot.odoo.com/web#id=105122&menu_id=424&cids=1&action=573&model=runbot.build.error&view_type=form) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix ensures company-specific numeric and yes/no fields handle empty default values correctly when saving updates. It prevents incorrect stored values and keeps company-dependent settings consistent across records.
Original PR description
The problem is caused by https://github.com/odoo/odoo/pull/184275 For company dependent Boolean/Integer/Float fields, if fallback is unset or falsy, the value filled to cache can be `None` after fetch. When `_flush` `None` in cache for these fields should be converted to the logical equivalent `False`/`0`/`0.0` to allow SQL to compare with the fallback value and drop them when UPDATE opw-4313425 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
Payment transactions can now be completed even when they are linked to more than one invoice due to changes made while the customer is redirected or while webhooks are delayed. The process now selects one eligible posted invoice instead of crashing, reducing failed payment follow-up and manual intervention.
Original PR description
When post-processing a payment transaction, if could happen that the transaction is linked to multiple invoices. Several things can happen while a customer is redirect to a payment provider up to when we post-process the payment (we may long delay for some webhooks), like salesman create multiple downpayment invoices, accountant cancel a pre-existing invoice, etc... In such case we were crashing with a singleton error because `_get_invoice_next_payment_values()` only accept a single recordset. This commit ensure we only match a single posted invoice. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue where selecting text across chatter messages in Firefox could trigger an error. The editor now ignores selections outside its own area, improving reliability when users interact with messages around editable fields.
Original PR description
**Problem**: When selecting nodes outside the editor in chatter, attempting to set the selection results in a traceback. This issue occurs because the `setSelection` logic does not properly handle cases where the selected node falls outside the editor's context. **Solution**: Add a check to ensure that the `setSelection` logic does not execute if the selection is outside the editor. same as what we have in 17.0: https://github.com/odoo/odoo/blob/288f815382f6d4f857c233c4627774f1992af5ba/addons/web_editor/static/src/js/editor/odoo-editor/src/OdooEditor.js#L2608-L2610 **Steps to reproduce**: 1. Open any form with chatter in Firefox. 2. Select text across multiple messages in the chatter. 3. A traceback occurs due to improper handling of selections outside the editor. opw-4345728 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix restores the ability for shoppers to select pickup point locations during checkout when using website sale collection with Sendcloud. It prevents the selection button from being incorrectly disabled when optional location details are missing.
Original PR description
Steps to reproduce: - install website_sale_collect - setup a sendcloud delivery method with pickup points - try to select a location Bug: The `Choose this location` button is disabled This is a tiny partial revert of https://github.com/odoo/odoo/pull/180754. The replacement of the chain of `and` cannot be replaced by the ?. operator, as they will return !False and thus disable the button even if `additionalData` (and the other following items of the ?. chain) is not present on the selected location. opw-4283739 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix prevents the HTML editor from showing an error when users press Tab while working with nested lists. It makes list editing more reliable and avoids interruptions while formatting content.
Original PR description
Description of the issue/feature this PR addresses: The issue occurs when `mergeSimilarLists` is triggered, leading to a call to `compareListTypes`. If `a.firstElementChild` or `b.firstElementChild` is null, attempting to access their `tagName` causes an error. Desired behavior after PR is merged: The traceback no longer occurs.
This fixes an issue where serial numbers added or changed on Point of Sale order lines were not always shown correctly in the cart. Staff can now see the correct serial numbers when adding the same tracked product multiple times or updating its serial numbers, reducing order errors for tracked items.
Original PR description
When adding/modifying SN on an orderline in the PoS the changes where not always correctly reflected and sometimes it was just not displayed. Steps to reproduce: ------------------- * Create a product tracked by SN * Open PoS * Add this product to the cart and put SN 1 * Add the same product by clicking on it, and put SN 2 > Observation: The item in the cart won't be updated correctly, only one SN will be shown * Click on the lot icon * Add a new SN 3 > Observation: Again the new SN won't be shown opw-4323167
This fix makes Odoo's code upgrade command clearer and more reliable when run directly or through odoo-bin. It now requires the needed add-ons path information, uses sensible defaults where appropriate, and avoids a crash when no files match the requested pattern.
Original PR description
* Requires --addons-path and prints the correct usage when used standalone. * Ensure --addons-path is populated with the default paths when used with odoo-bin. * Fixed 0/0 division by zero error when no file match the glob. 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 fixes a typo that caused an incorrect value to appear in Spanish TicketBAI XML documents. The change helps ensure submitted electronic tax documents contain the expected information and reduces the risk of reporting errors.
Original PR description
Fix a typo in that led to wrong value in tbai xml document. opw-4331383
Salespeople can once again view invoices linked to their sales orders without needing Accounting or Billing permissions. This fixes an access error related to Indonesian e-Faktur data, helping sales teams follow up on customer invoices smoothly.
Original PR description
Salesman have access to see invoices (from orders) but when opening one, an access error it raised: `You are not allowed to access 'Available E-faktur range' (l10n_id_efaktur.efaktur.range) records.` This commit allow salesman without `Accounting / Billing` to see their invoices again. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The mobile messaging menu and Discuss app now use less spacing between conversation items. This lets users see more conversations on screen while keeping each item easy to tap with a thumb.
Original PR description
There was too much spacing in the mobile messaging menu and mobile discuss app. This PR reduces is so more item are visible while still being easily clickable with a thumb tap. <img width="1236" alt="Screenshot 2024-11-20 at 17 09 06" src="https://github.com/user-attachments/assets/bccaef0e-150f-4365-a224-e405435afa26">
The partner form now shows the customer's follow-up status, making it easier for staff to see collection status at a glance. It also adds a direct link to the partner's overdue invoices, helping teams act faster on outstanding payments.
Original PR description
The followup status of the partner is added to the partner form view with an additional link to see the list of overdue invoices for the partner. task-4320967
Rental and subscription sales now carry over the unit of measure chosen on the sales line when creating products. This keeps these workflows aligned with standard sales behavior and helps avoid incorrect product setup or ordering details.
Original PR description
To ensure that products created from sale order lines correctly use the uom set on the line, a new `default_uom_id` has been added to the field `context`. This commit makes sure the same change is applied in rental & subscriptions, as both modules inherit from the base `sale` view and overwrite the `context` attribute to add their own keys. opw-4316426
Opening or refreshing a direct link to a document now shows the intended item even when default document filters are configured. This prevents users from landing on an empty or filtered-out view when sharing or revisiting document URLs, including items without previews such as requests or links.
Original PR description
Reproduce: 1. Add the context key `search_default_my_documents_filter` in Documents action context 2. Go in a folder where a document exist that does not match this filter 3. Copy the url of this document (copy url when it is selected) 4. Paste in navigation bar (or refresh page) 5. You do not end up on the document because the default filter still applied This commit prevents loading default filters when we come from such URLs. While we're here, we remove the check on open_preview which was incorrect (e.g., requests and urls have no preview but should be accessible this way too). Follow-up of https://github.com/odoo/enterprise/commit/3418e7318ed993abc2a601ae601e7214e28293a3 (https://github.com/odoo/enterprise/pull/74028) Task-4342960
Portal users can now cancel creating a new folder in Documents without seeing an error screen. This prevents an interruption in the Documents workflow and provides a smoother experience for external users.
Original PR description
**How to reproduce:** Login with portal. Click on New button. Click on Folder button. Click on Discard button. Traceback will be displayed. **After this PR:** Prevent traceback when portal users click the discard button. Task-4330910
Code cleanup and technical improvements
This update refreshes how Odoo's automated web tours detect visible screen elements, making test behavior more consistent and reducing false results. It also improves error messages so issues in guided flows can be diagnosed faster, with no expected direct change for everyday users.
Original PR description
In this commit, we replace the use of _legacyIsVisible by the visible option of hoot which refers to isVisible function of hoot-dom.js. This change implies changes in a few tours. For information, _legacyIsVisible accepts elements with a width of 0 or a length of 0 (which is a bit absurd) while isVisible does not, which implies the changes where we just add :not(:visible) to the trigger. The other main modifications implies tours where you have to hover the trigger to then see the element you want to click on. In this commit, we also improve error logs. task~3974087 https://github.com/odoo/enterprise/pull/74171
This change updates internal automated tours to use a newer and stricter visibility check. It helps keep business workflows such as accounting, knowledge, helpdesk knowledge, website, and studio testing reliable without changing normal user-facing behavior.
Original PR description
In this commit, we replace the use of _legacyIsVisible by the visible option of hoot which refers to isVisible function of hoot-dom.js. This change implies changes in a few tours. For information, _legacyIsVisible accepts elements with a width of 0 or a length of 0 (which is a bit absurd) while isVisible does not, which implies the changes where we just add :not(:visible) to the trigger. The other main modifications implies tours where you have to hover the trigger to then see the element you want to click on. task~3974087 https://github.com/odoo/odoo/pull/187894
Documentation and clarification updates
This pull request records that the contributor dianedelallee has signed Odoo's Contributor License Agreement. This is an administrative/legal update that enables future contributions from this person and does not change product functionality.
Original PR description
Description of the issue/feature this PR addresses: PR to sign the CLA in order to contribute later Current behavior before PR: CLA not signed for dianedelallee -> can not contribute Desired behavior after PR is merged: CLA signed for dianedelallee -> can contribute thanks --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update records that contributor dianedelallee has signed the required contributor agreement. It supports legal compliance for accepting contributions to the project and has no direct effect on product functionality.
Original PR description
Description of the issue/feature this PR addresses: Add signed CLA for dianedelallee 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
Miscellaneous changes
Before this commit, encountering an access error while loading loyalty products would prevent all Point of Sale products from loading. This commit addresses the issue by ensuring that PoS products are still loaded even if there's an issue with accessing loyalty products. opw-4209609 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#182910
Original PR description
Before this commit, encountering an access error while loading loyalty products would prevent all Point of Sale products from loading. This commit addresses the issue by ensuring that PoS products are still loaded even if there's an issue with accessing loyalty products. opw-4209609 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#182910
This commit enhances the tax group template in `account.tax.group.pe.csv` and he tax template in `account.tax.pe.csv` to support the free billin functionality by adding a dummy tax group. The related logic is implemented in the enterprise module. Related Enterprise PR: https://github.com/odoo/enterprise/pull/56767 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#187609 Forward-Port-Of: odoo/odoo#174131
Original PR description
This commit enhances the tax group template in `account.tax.group.pe.csv` and he tax template in `account.tax.pe.csv` to support the free billin functionality by adding a dummy tax group. The related logic is implemented in the enterprise module. Related Enterprise PR: https://github.com/odoo/enterprise/pull/56767 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#187609 Forward-Port-Of: odoo/odoo#174131
The existing FedEx implementation used the old FedEx SOAP API which is no longer in development. This new version makes use of the current REST APIs available at developer.fedex.com task-3759206 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#187909 Forward-Port-Of: odoo/odoo#186787
Original PR description
The existing FedEx implementation used the old FedEx SOAP API which is no longer in development. This new version makes use of the current REST APIs available at developer.fedex.com task-3759206 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#187909 Forward-Port-Of: odoo/odoo#186787
### Steps to reproduce: - Create 2 storable products: Final product (FP) and Component (COMP) - Put 10 units of COMP in stock - Create a Bill of Material for FP: - raw move: 10 x COMP - 1 operation: "Register COMP" - Add an instruction on your operation: - type: "Register consumed component" - Product To Register: COMP - Create and confirm an MO for 1 Unit of FP - Go to the shopfloor > "Register COMP" - Change the quantity to 3 > Validate #### > Go back to the MO the
Original PR description
### Steps to reproduce: - Create 2 storable products: Final product (FP) and Component (COMP) - Put 10 units of COMP in stock - Create a Bill of Material for FP: - raw move: 10 x COMP - 1 operation:…
### Steps to reproduce:
- Create 2 storable products: Final product (FP) and Component (COMP)
- Put 10 units of COMP in stock
- Create a Bill of Material for FP:
- raw move: 10 x COMP
- 1 operation: "Register COMP"
- Add an instruction on your operation:
- type: "Register consumed component"
- Product To Register: COMP
- Create and confirm an MO for 1 Unit of FP
- Go to the shopfloor > "Register COMP"
- Change the quantity to 3 > Validate
#### > Go back to the MO the quantity of the raw move is still 10
### Cause of the issue:
Clicking on "Validate" as well as on "Continue consumption" will trigger a call of the `_next` method with `continue_production=False` and `True` respectively:
https://github.com/odoo/enterprise/blob/e86b97f57e2388b3b65326cecedd3c14ca02ddb1/mrp_workorder/models/quality.py#L346-L352 However, if you underconsume, a new move line will be created for the remaining quantity in both cases and it should only when you `Continue consumption`.
### Note:
If you underconsume, and change the quantity of the raw move without changing its original demand. As such, its state will itself change. Hence, if you come back to the MO, the reservation sate of the MO will be recomputed and be updated from assigned to confirmed. However, as the raw move is picked it should not alter the reservation state of the MO anymore:
https://github.com/odoo/odoo/blob/9918e8f3d627f3c52238d6b04bcd15c05d34e40c/addons/mrp/models/mrp_production.py#L613 This is the purpose of the community PR.
opw-4216910
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#186782
Forward-Port-Of: odoo/odoo#186475The website module overrides `ir.http:_get_default_lang`, which is called by `http_routing`'s override of `ir.http:_match`. In this override, it calls `website:_get_cached('default_lang_id')` which calls `website:_get_cached_values`. However, `ir.http:_match` is called at a time when the environment hasn't been completely initialized (it will be properly initialized when `ir.http:_authenticate` is called), and its context language hasn't been checked against activated languages yet. This
Original PR description
The website module overrides `ir.http:_get_default_lang`, which is called by `http_routing`'s override of `ir.http:_match`. In this override, it calls `website:_get_cached('default_lang_id')` which…
The website module overrides `ir.http:_get_default_lang`, which is called by `http_routing`'s override of `ir.http:_match`.
In this override, it calls `website:_get_cached('default_lang_id')` which calls `website:_get_cached_values`.
However, `ir.http:_match` is called at a time when the environment hasn't been completely initialized (it will be properly initialized when `ir.http:_authenticate` is called), and its context language hasn't been checked against activated languages yet.
This means that `website:_get_cached_values` cannot rely on this language. The first of the two bugs fixed by this commit happens when website has translatable fields. When reading data from the website, the ORM does a prefetch and tries to load this other field, but fails because the language of the context is invalid. The fix is to prefetch manually the four fields that are not translatable and that we want to cache.
The second bug happens specifically on the logout page, which is set as `auth='none'` by the web module. The website module already overrides the `/web/login` route to set it as `auth='public'` in order to be able to read the website. We need to do the same with the /web/session/logout route, so that the page renders properly.
This commit targets saas-17.2 as the first branch because it is fixing two bugs that were introduced as follows, as determined by a git bisect.
- in a3a3650 from #112000 (saas-17.1), the call to /web/session/logout fails with a 500 status (IndexError) because rule.endpoint.routing has no 'no_db' key, in '_serve_ir_http'.
- in 584a172 from #112000 too (saas-17.1), that code is removed, and the error is now a 403 status because it is not possible to read website records without a user. This error is fixed by adding user='public' to the logout route.
- since d01302b from #151502 (saas-17.2), the test added in this commit could reproduce the error in _get_cached_values by accessing the logout route.
As the saas-17.1 is already EOL, we target saas-17.2 and forward-port it to master.
[OPW-3721341](https://www.odoo.com/odoo/project.task/3721341)
[OPW-3911437](https://www.odoo.com/odoo/project.task/3911437)
Forward-Port-Of: odoo/odoo#187313Since odoo/odoo@4d2aa271 we cannot add any manual field to `res.users`. We are always faced with the error: ``` ... fields used for ordering must be present on the model and stored. ``` The reason is that the `res.users.name` field is a related stored field, via inherits. Similarly if we install base_automation we cannot add any field to `base.automation` model, because they are ordered by `sequence`, another stored related field. In this patch we propose to extend the check for field
Original PR description
Since odoo/odoo@4d2aa271 we cannot add any manual field to `res.users`. We are always faced with the error: ``` ... fields used for ordering must be present on the model and stored. ``` The reason is that the `res.users.name` field is a related stored field, via inherits. Similarly if we install base_automation we cannot add any field to `base.automation` model, because they are ordered by `sequence`, another stored related field. In this patch we propose to extend the check for field used in `_order` to related fields. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#187629
Steps to reproduce: 1.Add an any image block ( here Text - Image ) 2.Add the URL on the image 3.Now edit the image and add the video to it; you will notice that the URL remains as it is in the toolbar 4.Click on Save Issue: For versions 15.0-16.0, the link and URL both remain. For version 17.0-Master, the video element gets removed unexpectedly. Expected Behavior: When a video is inserted, the URL should be automatically removed to avoid element removal or loss of responsiveness.
Original PR description
Steps to reproduce: 1.Add an any image block ( here Text - Image ) 2.Add the URL on the image 3.Now edit the image and add the video to it; you will notice that the URL remains as it is in the toolbar 4.Click on Save Issue: For versions 15.0-16.0, the link and URL both remain. For version 17.0-Master, the video element gets removed unexpectedly. Expected Behavior: When a video is inserted, the URL should be automatically removed to avoid element removal or loss of responsiveness. Issue: The issue of element getting removed or loss of responsiveness is because we did not remove the url link when we inserted the video. Solution: This PR resolves the issue by removing the URL link when a video is inserted in place of an image, ensuring the video element is retained and options are hidden appropriately. task-4023555 Forward-Port-Of: odoo/odoo#187610 Forward-Port-Of: odoo/odoo#172390
**Steps to reproduce:** - Create a PDF report for the stock.picking model - Use the template stock.label_transfer_template_view_pdf. - When saving the report, the mentioned error occurred. ```py odoo.addons.base.models.ir_qweb.QWebException: Error while render the template AttributeError: 'stock.picking' object has no attribute 'move_lines' Template: stock.label_transfer_template_view_pdf Path: /t/t/div/t[2]/t[2] Node: <t t-foreach="picking.move_ids" t-as="move"/> ``` - [Ref](https:
Original PR description
**Steps to reproduce:** - Create a PDF report for the stock.picking model - Use the template stock.label_transfer_template_view_pdf. - When saving the report, the mentioned error occurred. ```py…
**Steps to reproduce:** - Create a PDF report for the stock.picking model - Use the template stock.label_transfer_template_view_pdf. - When saving the report, the mentioned error occurred. ```py odoo.addons.base.models.ir_qweb.QWebException: Error while render the template AttributeError: 'stock.picking' object has no attribute 'move_lines' Template: stock.label_transfer_template_view_pdf Path: /t/t/div/t[2]/t[2] Node: <t t-foreach="picking.move_ids" t-as="move"/> ``` - [Ref](https://github.com/odoo/odoo/pull/78732) were move_lines has been renamed to move_ids. - [Ref](https://github.com/odoo/odoo/pull/80434) were product_uom_qty has been renamed to reserved_uom_qty. **Desired behavior after PR is merged:** - Can create a report for stock.picking model  OPW - [4239654](https://www.odoo.com/odoo/project/70/tasks/4239654) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#187427 Forward-Port-Of: odoo/odoo#184046
We need to be able to invoice free items. How it works in Peru is that the item is "sold" with the original price. Still, we should be able to mark the transaction as a free transaction (this is done with the field l10n_pe_edi_legend that is in the Peru EDI tab). This tag should change the XML to the correct format for a free transaction. An enhancement is introduced to exclude the 'l10n_pe.tax_group_dummy' tax group from tax details processing. This improvement is aimed at facilitating free
Original PR description
We need to be able to invoice free items. How it works in Peru is that the item is "sold" with the original price. Still, we should be able to mark the transaction as a free transaction (this is done…
We need to be able to invoice free items. How it works in Peru is that the item is "sold" with the original price. Still, we should be able to mark the transaction as a free transaction (this is done with the field l10n_pe_edi_legend that is in the Peru EDI tab). This tag should change the XML to the correct format for a free transaction. An enhancement is introduced to exclude the 'l10n_pe.tax_group_dummy' tax group from tax details processing. This improvement is aimed at facilitating free billing in Peru by ensuring dummy tax groups are not included in tax calculations. task latam: https://latam-localizations.odoo.com/web#id=974&menu_id=88&cids=1&action=188&model=project.task&view_type=form Legal Reference: https://cpe.sunat.gob.pe/sites/default/files/inline-files/guia%2Bxml%2Bfactura%2Bversion%202-1%2B1%2B0%20%282%29_0.pdf (page 97) https://booksdigital.jimdofree.com/2014/10/15/tratamiento-contable-de-la-entrega-de-obsequios-vales-y-celebraciones-a-favor-de-los-trabajadores/ Related: https://github.com/odoo/odoo/pull/174131 Forward-Port-Of: odoo/enterprise#74017 Forward-Port-Of: odoo/enterprise#56767
The existing FedEx implementation used the old FedEx SOAP API which is no longer in development. This new version makes use of the current REST APIs available at developer.fedex.com task-3759206 Forward-Port-Of: odoo/enterprise#74180 Forward-Port-Of: odoo/enterprise#73579
Original PR description
The existing FedEx implementation used the old FedEx SOAP API which is no longer in development. This new version makes use of the current REST APIs available at developer.fedex.com task-3759206 Forward-Port-Of: odoo/enterprise#74180 Forward-Port-Of: odoo/enterprise#73579
Add the picking name as a reference number on ups shipment. [opw-3930816](https://www.odoo.com/odoo/project/49/tasks/3930816) Forward-Port-Of: odoo/enterprise#67303
Original PR description
Add the picking name as a reference number on ups shipment. [opw-3930816](https://www.odoo.com/odoo/project/49/tasks/3930816) Forward-Port-Of: odoo/enterprise#67303
After the sign's app OWL upgrade, the guidance dialog's ('Click to start', 'Fill in', etc...) font got unformatted from Helvetica to Times New Roman. Additionally, the sign elements were tooking too long to render, making the user experience also slow. This commits restores the original font for the guidance dialogs and also decrease the rendering refresh from 2s to 500ms for providing a smoother user experience. task-4147887 Forward-Port-Of: odoo/enterprise#73563 Forward-Port-Of: odoo/en
Original PR description
After the sign's app OWL upgrade, the guidance dialog's ('Click to start', 'Fill in', etc...) font got unformatted from Helvetica to Times New Roman. Additionally, the sign elements were tooking too long to render, making the user experience also slow.
This commits restores the original font for the guidance dialogs and also decrease the rendering refresh from 2s to 500ms for providing a smoother user experience.
task-4147887
Forward-Port-Of: odoo/enterprise#73563
Forward-Port-Of: odoo/enterprise#69146### Steps to reproduce: - Create 2 storable products: Final product (FP) and Component (COMP) - Put 10 units of COMP in stock - Create a Bill of Material for FP: - raw move: 10 x COMP - 1 operation: "Register COMP" - Add an instruction on your operation: - type: "Register consumed component" - Product To Register: COMP - Create and confirm an MO for 1 Unit of FP - Go to the shopfloor > "Register COMP" - Change the quantity to 3 > Validate #### > Go back to the MO the
Original PR description
### Steps to reproduce: - Create 2 storable products: Final product (FP) and Component (COMP) - Put 10 units of COMP in stock - Create a Bill of Material for FP: - raw move: 10 x COMP - 1 operation:…
### Steps to reproduce:
- Create 2 storable products: Final product (FP) and Component (COMP)
- Put 10 units of COMP in stock
- Create a Bill of Material for FP:
- raw move: 10 x COMP
- 1 operation: "Register COMP"
- Add an instruction on your operation:
- type: "Register consumed component"
- Product To Register: COMP
- Create and confirm an MO for 1 Unit of FP
- Go to the shopfloor > "Register COMP"
- Change the quantity to 3 > Validate
#### > Go back to the MO the quantity of the raw move is still 10
### Cause of the issue:
Clicking on "Validate" as well as on "Continue consumption" will trigger a call of the `_next` method with `continue_production=False` and `True` respectively:
https://github.com/odoo/enterprise/blob/e86b97f57e2388b3b65326cecedd3c14ca02ddb1/mrp_workorder/models/quality.py#L346-L352 However, if you underconsume, a new move ine will be created for the remaining quantity in both cases and it should only when you `Continue consumption`.
### Note:
If you underconsume, and change the quantity of the raw move without changing its original demand. As such, its state will itself change. Hence, if you come back to the MO, the reservation sate of the MO will be recomputed and be updated from assigned to confirmed. However, as the raw move is picked it should not alter the reservation state of the MO anymore:
https://github.com/odoo/odoo/blob/9918e8f3d627f3c52238d6b04bcd15c05d34e40c/addons/mrp/models/mrp_production.py#L613 This is the purpose of the community PR.
opw-4216910
Forward-Port-Of: odoo/enterprise#73933
Forward-Port-Of: odoo/enterprise#73396**Issue:** Two different actions have the same shortcut making one action impossible to reach. **Expected:** Different actions should have different keyboard shortcuts. **Steps to reproduce:** - Activate Subscription app; - Open an existing subscription; - Press `ALT` (`CTRL` on MacOS) to display all shortcuts and look at the `UPSELL` and `CLOSE` buttons. **Cause:** The same `data-hotkey` has been used for both buttons. **Fix:** Change the `UPSELL` button shortcut to `ALT+E` (
Original PR description
**Issue:** Two different actions have the same shortcut making one action impossible to reach. **Expected:** Different actions should have different keyboard shortcuts. **Steps to reproduce:** - Activate Subscription app; - Open an existing subscription; - Press `ALT` (`CTRL` on MacOS) to display all shortcuts and look at the `UPSELL` and `CLOSE` buttons. **Cause:** The same `data-hotkey` has been used for both buttons. **Fix:** Change the `UPSELL` button shortcut to `ALT+E` (`CTRL+E` on MacOS) as for Odoo 17. opw-4306179 Forward-Port-Of: odoo/enterprise#74136 Forward-Port-Of: odoo/enterprise#73548
``_try_to_check_ocr_status`` method attempts to check the OCR status for a record, If an exception occurs during this process, It will log an error. Error: ``` Couldn't check OCR status of hr.expense with id 1: 'currency_id' ``` This commit changes the log level from an error to a warning. This helps reduce noise in the logs by preventing excessive error messages. sentry-4597345306 Forward-Port-Of: odoo/enterprise#73817
Original PR description
``_try_to_check_ocr_status`` method attempts to check the OCR status for a record, If an exception occurs during this process, It will log an error. Error: ``` Couldn't check OCR status of hr.expense with id 1: 'currency_id' ``` This commit changes the log level from an error to a warning. This helps reduce noise in the logs by preventing excessive error messages. sentry-4597345306 Forward-Port-Of: odoo/enterprise#73817
Steps: add a rental product in cart in ecommerce go to cart and update the rental dates on datepicker Issue: The new dates are not applied to cart lines Cause: rental dates on cart line come from order_line name order_line name is not updated on change of rental dates Fix: Updated _cart_update_renting_period to update order_line name for rental lines opw-4137981 opw-4124061 opw-4191403 Forward-Port-Of: odoo/enterprise#73979 Forward-Port-Of: odoo/enter
Original PR description
Steps:
add a rental product in cart in ecommerce
go to cart and update the rental dates on datepicker
Issue:
The new dates are not applied to cart lines
Cause:
rental dates on cart line come from order_line name
order_line name is not updated on change of rental dates
Fix:
Updated _cart_update_renting_period to update order_line name for rental lines
opw-4137981
opw-4124061
opw-4191403
Forward-Port-Of: odoo/enterprise#73979
Forward-Port-Of: odoo/enterprise#70397