Daily updates from Odoo
Wednesday, March 19, 2025
38 changes · 18.0
New functionality added to Odoo
Adds a test covering barcode scans that include many serial numbers at once. This helps ensure slow mobile connections do not cause excessive delays when warehouse teams scan large batches in the Barcode app.
Original PR description
### To test the flow: Run the test with debug = True and in the network tab of the browser set throtlling to 3G while the debugger of the first step of the tour is on. ### Steps to reproduce: 1.…
### To test the flow: Run the test with debug = True and in the network tab of the browser set throtlling to 3G while the debugger of the first step of the tour is on. ### Steps to reproduce: 1. Create a storable product tracked by SN. 2. Create a delivery order of 1000 units. 3. In Inventory > Operations Types, for the Delivery Orders type, check "Create New" under Lot/Serial Number. 4. Open the barcode app 5. Scan a QR code containing 100 serial numbers. > makes far too many rpc calls taking ages to resolve in 3G or slow 4G ### Cause of the perf issue: You will observe that the barcode scanned is treated by the `processBarcode`, generates a list of 100 valid barcodes and that each of these is then processed individually here: https://github.com/odoo/enterprise/blob/b429e4da99edc73b5cf451c05dba120dde5b3895/stock_barcode/static/src/models/barcode_model.js#L650-L674 However, each individual `this._processBarcode` will lead to two rpc calls, one during the `_getMissingRecord` of the `prefilled_owner_package_stock_barcode`. GL Steve <3 opw-4410797
Enhancements to existing features
This change lets accounting chart updates skip creating new accounts, taxes, or fiscal positions when they are not wanted. It mainly helps Netherlands localization migrations update existing chart data more safely and with less manual precision.
Original PR description
The goal is that we do not need to be more accurate on what we need to update when updating the CoA so I have added force_create to be false if wo do not want to create new accounts, new taxes, new fiscal positions in the Netherlands task-4556250 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
Point of Sale users can now use the existing product color setting more directly when managing products and viewing them in the terminal. This makes product tiles easier to distinguish during sales and gives staff a simpler way to adjust product presentation from the interface.
Original PR description
Following this commit : - Used color field in product form view that already existed. - Added color field in Edit product view from UI. task-4423837
This update adds support for Estonia's new 13% tax rate, valid from January 1, 2025. It helps businesses using the Estonia localization keep tax setup and reporting aligned with the upcoming legal requirements.
Original PR description
Description of the issue/feature this PR addresses: This adds 13% tax logic to Estonia Localization. 13% is valid from 01.01.2025 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
Estonian reporting now supports the 13% tax logic that applies from 1 January 2025. This helps businesses keep their tax reports aligned with upcoming Estonian compliance requirements.
Original PR description
Made new pull request as old one https://github.com/odoo/enterprise/pull/79702 was not with correct name. Now Odoo and enterprise pull requests repo has same branch name.
Resolved issues and error corrections
Manual invoice emails now send correctly when the invoice customer has no email address but another recipient is selected. This prevents valid invoice emails from being blocked and helps ensure customers or contacts receive invoices as intended.
Original PR description
On manual sending an invoice email via wizard, if the invoice partner has no email, and another recipient is set as recipient, no mail is sent. This was caused by a check only allowing emails to be sent for invoices with partners having an email. Task: opw-4604810
Deleting a quotation attachment before sending it by email no longer triggers an error. This helps sales users adjust email attachments smoothly without interruption during the quotation process.
Original PR description
**Issue**: A traceback error is raised when deleting the quotation attachment before sending it via email. **Steps to reproduce:** - go to Sales. - open a quotation. - click "Send by Email." - delete the attachment. A traceback error occurs. opw-4486182
This update fixes a documentation example for grouped data reading by removing an unsupported option. It helps developers follow accurate guidance and avoid confusion when using the feature.
Original PR description
The function does not take an `order` parameter. closes odoo/documentation#12557 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Dropdown menus now close as expected when used inside embedded page areas such as iframes or shadow-based components. This prevents menus from staying open unexpectedly, improving usability in more complex Odoo screens.
Original PR description
When opening a dropdown inside an `IFrame` or `Shadow DOM`, clicking inside the nested DOM does not trigger auto-close. This happens because the event handler checks whether the clicked element is inside the main document, which is not the case for elements inside an IFrame or Shadow DOM. This commit fixes the issue by ensuring that, in such scenarios, the correct document context (nested DOM) is used for the click detection instead of the clicked element itself. Task-4525603 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update brings Odoo's spreadsheet component to the latest version and fixes several everyday issues. Users should see more reliable copy/paste between sheets, better pivot value search, improved cell resizing, and smoother editing behavior.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/3f48d8b72 [REL] 18.0.20 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0)…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/3f48d8b72 [REL] 18.0.20 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/34150250d [FIX] clipboard: cross-sheet cut/paste is broken for tables/cfs [Task: 3905618](https://www.odoo.com/odoo/2328/tasks/3905618) https://github.com/odoo/o-spreadsheet/commit/4977c01f5 [FIX] css: put `h-100` in o-spreadsheet [Task: 4652289](https://www.odoo.com/odoo/2328/tasks/4652289) https://github.com/odoo/o-spreadsheet/commit/258cd42f3 [FIX] auto_complete: search pivot value with quotes [Task: 4061068](https://www.odoo.com/odoo/2328/tasks/4061068) https://github.com/odoo/o-spreadsheet/commit/b694f2c27 [FIX] edition: escape closes the composer [Task: 4646699](https://www.odoo.com/odoo/2328/tasks/4646699) https://github.com/odoo/o-spreadsheet/commit/a539775a7 [FIX] sheet: autoresize doesn't work on evaluated multiline cell [Task: 4609545](https://www.odoo.com/odoo/2328/tasks/4609545) https://github.com/odoo/o-spreadsheet/commit/d45269f88 [FIX] Tests: Fix `simulateClick` helper [Task: 4646342](https://www.odoo.com/odoo/2328/tasks/4646342) https://github.com/odoo/o-spreadsheet/commit/b9127d7d3 [FIX] RemoveDuplicate: fix component initialization [Task: 4646342](https://www.odoo.com/odoo/2328/tasks/4646342) 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: Dhrutik Patel (dhrp) <dhrp@odoo.com> Co-authored-by: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Mehdi Rachico (mera) <mera@odoo.com> Co-authored-by: Florian Damhaut (flda) <flda@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>
The point of sale combo selection screen now displays any extra price tied to combo product options. This helps cashiers and customers see accurate pricing before the order is confirmed, and improves readability for option price labels.
Original PR description
Before this commit, the price extra of a product in a combo was not shown in the POS interface. This commit fixes this issue by adding the price extra to the product card in the combo configurator popup. The commit also adds a space between the option name and the option extra price in the case of an "select" attribute selection. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update adjusts two localization modules so their setup data is created reliably with the latest loading process. It helps prevent missing tax or invoicing configuration when installing or updating these localizations.
Original PR description
In Belgium, certain tax grids (e.g., 81, 82) in the VAT report force negative amounts to 0, as the amounts are carried over to the next period. However, this behavior confuses users, especially VAT experts, as they see 0 instead of the actual negative amount. To improve clarity: - Negative values are now displayed instead of being forced to 0. - The carryover mechanism remains unchanged, and the explanatory infobullet is still displayed. Task-4589150
This fix corrects how project task allocations are calculated, addressing an issue introduced by earlier changes. It helps ensure project planning and workload figures are more reliable for teams using project management features.
Original PR description
Partial fix of changes applied in: https://github.com/odoo/enterprise/pull/78465 rb-145524 rb-145525
Asset models are now kept properly separate between sibling branches of the same company. This prevents duplicate assets from being created and ensures each branch uses only the asset model intended for it.
Original PR description
…bling companies Steps to reproduce: 1. Create a company with two branches. 2. Create an asset model in each branch. 3. Go to the main company's chart of accounts. 4. Select the 'Fixed Asset' account and enable 'Automate Asset'. 5. Assign both branches' asset models to 'Asset Model'. 6. Create a vendor bill in one of the branches using the parent company's 'Fixed Asset' account. Observed behavior: - Two assets are created—one for each model assigned to the 'Fixed Asset' account. Expected behavior: - Only one asset should be created, using the asset model corresponding to the branch. - Sibling companies should only access their parent's resources (asset models) and not each other's. This fix ensures that asset models are correctly scoped within their respective branches. opw-4494439
Validated deliveries for subscription products are now counted immediately when invoicing is based on delivered quantities. This prevents subscriptions from getting blocked before their first invoice because the system still showed nothing delivered.
Original PR description
Issue: Validating deliveries of storable products linked to a subscription will not update the delivered_qty untill the subscription has been invoiced and hence wont allow you to invoice it at all if…
Issue: Validating deliveries of storable products linked to a subscription will not update the delivered_qty untill the subscription has been invoiced and hence wont allow you to invoice it at all if the invoicing is based on delivered qty. ### Steps to reproduce: - Create a recurring product which inventory is tacked by quantity and which invoicing policy is based on delivered quantity. - Put 10 units in stock. - Create a monthly subscription for 1 unit of that product. - Confirm the subscription - Validate the associated delivery #### > The qty_delivered of the sol is still at 0 and the subscription can't be invoiced. ### Cause of the issue: Starting from Commit b3ed4416f9b8e37604a9aa38a1f38c3504e22fdf (18.0) we will create the first delivery linked to a subscription rather than waiting for the cron to be triggered. These delivery moves are correctly linked to the related sale order lines of the subscription. However, since future deliveries will also be created and linked to that same sol we need to consider only the outgoing and incoming moves related to the current billing period to determine the qty_delivered. This step is achieved with an override of the `_get_out_going_incoming_moves`: https://github.com/odoo/odoo/blob/a6280b2a5173fad65e62af0ba72cb8721939d709/addons/sale_stock/models/sale_order_line.py#L193-L200 https://github.com/odoo/enterprise/blob/dde492541aa253771f905d0a77650aa35fea0e8c/sale_subscription_stock/models/sale_order_line.py#L27-L34 but this always leads to an empty record set since the order was never invoiced making the`next_invoice_date` and hence the `period_end` coincide with the `start_date` of the order. opw-4628212
The Helpdesk return action now avoids opening the return process when there is no completed delivery to return. This prevents users from hitting an error on tickets linked to customers with sales activity but no relevant stock transfer.
Original PR description
To reproduce the issue: 1. Confirm a SO with partner P 2. Create/Edit an helpdesk team - Returns: True 3. Create a ticket for P 4. Open its form view 5. Click on return Error: a traceback appears…
To reproduce the issue: 1. Confirm a SO with partner P 2. Create/Edit an helpdesk team - Returns: True 3. Create a ticket for P 4. Open its form view 5. Click on return Error: a traceback appears "ValueError: Expected singleton: stock. picking()" The return button loads the wizard `stock.return.picking`. In this model, we try to find a related done picking: https://github.com/odoo/enterprise/blob/7215e4abd904ebdff3bd85c2c2f3002b1f5593b1/helpdesk_stock/wizard/stock_picking_return.py#L24-L31 Which, in the above case, does not exist. Later, we call a method on that picking: https://github.com/odoo/odoo/blob/8f527e93de2d64111904f1fcc5813e8b8ea0e4ba/addons/stock/wizard/stock_picking_return.py#L100-L104 Where `_can_return` is a `ensure_one` method, hence the error. The return button is only displayed in some conditions: https://github.com/odoo/enterprise/blob/3d8bb40fcad00068e12f21b623390c959d3fd19c/helpdesk_stock/views/helpdesk_ticket_views.xml#L35 Here is the problem: `has_partner_picking` can be `True` if we find some related SOL, which is useless, the only thing that matters are the related pickings. OPW-4591280
This change fixes a randomly failing automated test in the appointment scheduling area. It makes the test suite more stable, helping developers detect real issues more reliably without affecting day-to-day users.
Original PR description
This commit is meant to fix a test in appointment failing randomly. The issue likely came from the fact that records were altered several times on the same model within the same test, with the gantt view being destroyed and re-created each time. To avoid this issue altogether, the test has been split for each case.
This update adjusts automated checks for spreadsheet pivot search behavior after a related fix. It helps ensure values containing quotation marks are handled correctly, reducing the risk of search issues in spreadsheet pivots.
Original PR description
Adapt tests after a bug fix in o-spreadsheet repo Task: 4061068
Spreadsheet pivot auto-complete tests were updated to reflect a related bug fix. This helps ensure users can search pivot values containing quotation marks reliably.
Original PR description
Adapt tests after a bug fix in o-spreadsheet repo Task: 4061068
Miscellaneous changes
Versions -------- - 17.0+ Steps ----- 1. Create an event with an attendee limit of 1; 2. publish the event; 3. add a ticket to you cart; 4. go through checkout until your reach the payment page; 5. open a incognito window or different browser; 6. add same ticket to cart; 7. go to the payment step; 8. click "Pay now" and wait for confirmation; 9. go to previous window, and click "Pay now". Issue ----- The payment gets confirmed, but you land on an internal server error due to
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Create an event with an attendee limit of 1; 2. publish the event; 3. add a ticket to you cart; 4. go through checkout until your reach the payment page; 5.…
Versions -------- - 17.0+ Steps ----- 1. Create an event with an attendee limit of 1; 2. publish the event; 3. add a ticket to you cart; 4. go through checkout until your reach the payment page; 5. open a incognito window or different browser; 6. add same ticket to cart; 7. go to the payment step; 8. click "Pay now" and wait for confirmation; 9. go to previous window, and click "Pay now". Issue ----- The payment gets confirmed, but you land on an internal server error due to a lack of available seats for the event. Cause ----- Commit ffc9026361beb added a check before payment to ensure the tickets still had seats available. The event itself however can have a separate seat limit that isn't currently being checked. Solution -------- Add a check on the event's seat availability to `_validate_transaction_for_order`. Also, in case there's a lack of seats, display the correct number of lacking seats for the order instead of `-available_seats`. opw-4453539 Forward-Port-Of: odoo/odoo#201906 Forward-Port-Of: odoo/odoo#200400
We do not create create caba moves anymore for PoS session closing moves. (See commits 2f62d5c0d78371be70586c79cb2b5931e733b042 and 66e3696b4f06c657ff71af30178f0ac69d552632) But now there are 2 issues when using (only) caba taxes in a PoS session. (1) The closing move does not appear on the tax report. (2) The closing move line do not get the right tax tags (they do not have any). Issue (1) is solved by making pos closing moves `always_tax_exigible`. (In case they did not creat cas
Original PR description
We do not create create caba moves anymore for PoS session closing moves. (See commits 2f62d5c0d78371be70586c79cb2b5931e733b042 and 66e3696b4f06c657ff71af30178f0ac69d552632) But now there are 2 issues when using (only) caba taxes in a PoS session. (1) The closing move does not appear on the tax report. (2) The closing move line do not get the right tax tags (they do not have any). Issue (1) is solved by making pos closing moves `always_tax_exigible`. (In case they did not creat cash basis entries; for backwards compatibility). Issue (2) is solved by telling the tax computation for the lines to include caba taxes (instead of just changing the account to be the "final" account and not the caba transition account). opw-4355124 Forward-Port-Of: odoo/odoo#202308 Forward-Port-Of: odoo/odoo#201812
### Steps to reproduce: - Create a storable product tracked by serial number available from the pos and with a set pos category. - Open a pos session and click on your product. > A dialog openns for you to register serial numbers. - Edit a first SN: SN001 and press enter > A new line can now be set to create a second one. - Edit a second SN: SN002 and press enter - Confirm the dialog #### > The quantity displayed on teh POS order line is 1 rather than 2. ### Cause of the issue: C
Original PR description
### Steps to reproduce: - Create a storable product tracked by serial number available from the pos and with a set pos category. - Open a pos session and click on your product. > A dialog openns for…
### Steps to reproduce: - Create a storable product tracked by serial number available from the pos and with a set pos category. - Open a pos session and click on your product. > A dialog openns for you to register serial numbers. - Edit a first SN: SN001 and press enter > A new line can now be set to create a second one. - Edit a second SN: SN002 and press enter - Confirm the dialog #### > The quantity displayed on teh POS order line is 1 rather than 2. ### Cause of the issue: Clicking on the product card from the pos will trigger a call of the `AddProductToCurrentOrder` that will add a quantity of the product set via the options: https://github.com/odoo/odoo/blob/6197233ef1611ddd974cfdb06ae2568e4af369de/addons/point_of_sale/static/src/app/store/pos_store.js#L1965-L1978 However, the `getAddProductOptions` call sets a quantity to add of 1 no matter if you added multiple or even removed multiple registered SN. https://github.com/odoo/odoo/blob/6197233ef1611ddd974cfdb06ae2568e4af369de/addons/point_of_sale/static/src/app/store/models.js#L180 On the other hand, since at the moment of this call we do not have the info of the lines that were removed in the dialog it is not possible to always provide the correct (possibly negative) quantity to add to the line for the qty to be correctly handledby the posorder line. However, just as when you edit the line dirrectly this can be achieved by updating the quantity based on the relevant lots present on the line: https://github.com/odoo/odoo/blob/6197233ef1611ddd974cfdb06ae2568e4af369de/addons/point_of_sale/static/src/app/store/models.js#L570-L572 opw-4554842 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#201550 Forward-Port-Of: odoo/odoo#199127
In point of sale it is possible to manage several orders at the same time and, whenever an order is paid, all orders will be synchronized with the backend. This causes an issue with loyalty rewards that are granted even for orders not yet completed. Steps to reproduce: - Have a Loyalty Program configured as follows: - Program Type: Loyalty Card - Grant 1 point per $ spent - Create a Loyalty card for [Partner] - Open POS Session - Add a [Partner] as customer - Add product - Leaving
Original PR description
In point of sale it is possible to manage several orders at the same time and, whenever an order is paid, all orders will be synchronized with the backend. This causes an issue with loyalty rewards…
In point of sale it is possible to manage several orders at the same time and, whenever an order is paid, all orders will be synchronized with the backend. This causes an issue with loyalty rewards that are granted even for orders not yet completed. Steps to reproduce: - Have a Loyalty Program configured as follows: - Program Type: Loyalty Card - Grant 1 point per $ spent - Create a Loyalty card for [Partner] - Open POS Session - Add a [Partner] as customer - Add product - Leaving the order as it is, create a new order - Add just a product - Validate & Pay the second order Issue: Loyalty points will be added to [Partner] Card, as if the order was actually paid This occurs because we don't check that the order has been actually paid before processing rewards opw-4538040 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#199108
Some of our new deductible taxes were wrong, this commit fixes them. It also adds a new tax for deductiblility of 35% in the EU (which is more frequent), and one for deductibility of 35% in the case of delivery of goods already in Belgium by a foreign entity. task-none Forward-Port-Of: odoo/odoo#202241 Forward-Port-Of: odoo/odoo#201782
Original PR description
Some of our new deductible taxes were wrong, this commit fixes them. It also adds a new tax for deductiblility of 35% in the EU (which is more frequent), and one for deductibility of 35% in the case of delivery of goods already in Belgium by a foreign entity. task-none Forward-Port-Of: odoo/odoo#202241 Forward-Port-Of: odoo/odoo#201782
Feedbacks given talked about the fact the negative lines were wrong and should be considered as discounts. But that's not the case for every user and is more confusing than anything else. So we remove this logic from Italy. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#201203 Forward-Port-Of: odoo/odoo#199100
Original PR description
Feedbacks given talked about the fact the negative lines were wrong and should be considered as discounts. But that's not the case for every user and is more confusing than anything else. So we remove this logic from Italy. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#201203 Forward-Port-Of: odoo/odoo#199100
Current behaviour: --- Mexican phone numbers are not managed correctly following the 2019 changes in Mexico. (Removing a 1 in phone numbers) Cause of the issue: --- The phonenumbers library removing support of mexican phone numbers starting with 1 in 8.13.38 The Whatsapp API still using the mexican phone numbers starting with 1 Fixes: --- Patched the phonenumbers library, removing 1 at the right place for mexican phone numbers. Similar to: https://github.com/odoo/odoo/commit/53885
Original PR description
Current behaviour: --- Mexican phone numbers are not managed correctly following the 2019 changes in Mexico. (Removing a 1 in phone numbers) Cause of the issue: --- The phonenumbers library removing support of mexican phone numbers starting with 1 in 8.13.38 The Whatsapp API still using the mexican phone numbers starting with 1 Fixes: --- Patched the phonenumbers library, removing 1 at the right place for mexican phone numbers. Similar to: https://github.com/odoo/odoo/commit/53885e41867653ad45ca3aef55886c280240b76a Changed the forcing to international format when parsing, to make sure the patches are applied before detecting an issue. Similar to: https://github.com/odoo/odoo/commit/29a4de8e29a2e330b8e5993c9fde23c69a2eff5e opw-4473528 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197838
In Point of sale promotion program may be auto applied to the order whenever the conditions of the promotions are satisfied. However, a promo 'buy x get y' is auto applied inconsistently when comparing the output with the reward button (or applying the promotion on a sales order) Steps to reproduce: - Have a promo program like follows: - Program Type: Buy X Get Y - Condition: - Minimum quantity: 2 - Grant: 1 credit per order - Product: [PRODUCT] - Reward: - I
Original PR description
In Point of sale promotion program may be auto applied to the order whenever the conditions of the promotions are satisfied. However, a promo 'buy x get y' is auto applied inconsistently when…
In Point of sale promotion program may be auto applied to the order
whenever the conditions of the promotions are satisfied.
However, a promo 'buy x get y' is auto applied inconsistently when
comparing the output with the reward button (or applying the promotion on a sales
order)
Steps to reproduce:
- Have a promo program like follows:
- Program Type: Buy X Get Y
- Condition:
- Minimum quantity: 2
- Grant: 1 credit per order
- Product: [PRODUCT]
- Reward:
- In exchange of: 1 credit
- Product: [PRODUCT]
- Quantity rewarded: 1
- Open POS Session
- Add 2x [Product]
Issue:
- "Free" [PRODUCT] line is added to the order with negative price
So the customer will buy 1 [PRODUCT] and get 2 that is not what we want
with the promo program
If we delete the reward line, click on reward button and choose again
the same promo we get the correct behavior:
- Exisitng [PRODUCT] line quantity raised to 3
- "Free" [PRODUCT] line added to the order with negative price
opw-4563825
Forward-Port-Of: odoo/odoo#199752Scenario: - create a redirect 308 from route with a sitemap method (eg. /website/version) - go to /sitemap.xml (you might need to delete sitemap in attachment before) Result: you get a 500 error, with this traceback in server logs: ``` … File "/Users/odoo/src/odoo/17.0/addons/website/models/website.py", line 1333, in _enumerate_pages if rule.endpoint.func.__func__ in sitemap_endpoint_done: AttributeError: 'functools.partial' object has no attribute '__func__'. Did you mean: '__d
Original PR description
Scenario: - create a redirect 308 from route with a sitemap method (eg. /website/version) - go to /sitemap.xml (you might need to delete sitemap in attachment before) Result: you get a 500 error, with this traceback in server logs: ``` … File "/Users/odoo/src/odoo/17.0/addons/website/models/website.py", line 1333, in _enumerate_pages if rule.endpoint.func.__func__ in sitemap_endpoint_done: AttributeError: 'functools.partial' object has no attribute '__func__'. Did you mean: '__doc__'? ``` Fix: take a second level of partial (from the redirection and not the route) when handling duplicates routes. opw-4594629 opw-4614216 opw-4628703 Forward-Port-Of: odoo/odoo#202280 Forward-Port-Of: odoo/odoo#200979
Before this PR, the `bus subscription is refreshed when channel is joined` test was sometimes failing. Since [1], opening a thread *always* result in a bus subscription being issued (the channel is added to the bus channels as a string). This is not required: bus subscriptions are based on user's channels (see `ir_websocket@_build_bus_channel_list`). When a new channel is added, the client subscribes again (see `toggleBusSubscription`). Channels should only be added explictly when a channe
Original PR description
Before this PR, the `bus subscription is refreshed when channel is joined` test was sometimes failing. Since [1], opening a thread *always* result in a bus subscription being issued (the channel is…
Before this PR, the `bus subscription is refreshed when channel is joined` test was sometimes failing. Since [1], opening a thread *always* result in a bus subscription being issued (the channel is added to the bus channels as a string). This is not required: bus subscriptions are based on user's channels (see `ir_websocket@_build_bus_channel_list`). When a new channel is added, the client subscribes again (see `toggleBusSubscription`). Channels should only be added explictly when a channel the user is not a member of is opened. This addition causes a race condition between `toggleBusSubscription` and the explicit addition of the channel, resulting in a non deterministic behavior. This PR fixes this issue: channel is only added when required, which is not the case in this test thus solving the issue. fixes runbot-106895 [1]: https://github.com/odoo/odoo/pull/174473 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#202226 Forward-Port-Of: odoo/odoo#202009
In this commit: https://github.com/odoo/odoo/pull/192733/commits/ca9c9b319a7b653f7e17a7de1789081694bbd9d7 We introduced the issues data in the additional document reference. That broke that rule https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/UBL-CR-112/ no task id --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#202359
Original PR description
In this commit: https://github.com/odoo/odoo/pull/192733/commits/ca9c9b319a7b653f7e17a7de1789081694bbd9d7 We introduced the issues data in the additional document reference. That broke that rule https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/UBL-CR-112/ no task id --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#202359
…versalCommunication Our facturx XML are not correct, they are raising "/rsm:CrossIndustryInvoice[1]/rsm:SupplyChainTradeTransaction[1] /ram:ApplicableHeaderTradeAgreement[1]/ram:BuyerTradeParty[1]/ ram:DefinedTradeContact[1]/ram:EmailURIUniversalCommunication[1]/ram:URIID[1]" "Attribute @schemeID' marked as not used in the given context." errors (for both `BuyerTradeParty`and `SellerTradeParty`). Which in other words means the parameter `@shemeID` should not be there in the tag EmailURIU
Original PR description
…versalCommunication Our facturx XML are not correct, they are raising "/rsm:CrossIndustryInvoice[1]/rsm:SupplyChainTradeTransaction[1] /ram:ApplicableHeaderTradeAgreement[1]/ram:BuyerTradeParty[1]/ ram:DefinedTradeContact[1]/ram:EmailURIUniversalCommunication[1]/ram:URIID[1]" "Attribute @schemeID' marked as not used in the given context." errors (for both `BuyerTradeParty`and `SellerTradeParty`). Which in other words means the parameter `@shemeID` should not be there in the tag EmailURIUniversalCommunication. ### Before  ### After  Tested on Ecosio with ZUGFeRD 2.3.2 EXTENDED, that is the same as FacturX 1.07.2. opw-4571664 Forward-Port-Of: odoo/odoo#202130 Forward-Port-Of: odoo/odoo#201623
Steps: - Install Ecommerce - Add some products to the cart - Remove them using the 'remove' option - Go to my/orders - select any order, then click on Order again - Click on the Add To Cart button - You'll see one confirmation dialog Issue: - By clicking on the add to cart button, that confirmation dialog should not be there as the cart is empty Cause: - Cart quantity does not update when the last product is removed Fix: - While removing the last product, set cart quantity in
Original PR description
Steps: - Install Ecommerce - Add some products to the cart - Remove them using the 'remove' option - Go to my/orders - select any order, then click on Order again - Click on the Add To Cart button - You'll see one confirmation dialog Issue: - By clicking on the add to cart button, that confirmation dialog should not be there as the cart is empty Cause: - Cart quantity does not update when the last product is removed Fix: - While removing the last product, set cart quantity in sessionstorage to ensure that the last removal is recorded affected version-17.0 opw-4566505 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#202131 Forward-Port-Of: odoo/odoo#199921
The test ensures that pos moves with caba taxes are also included in the tax report and behave the same as non-caba taxes. This was necessary since the closing moves do not create caba entries anymore. (See the community commit) Forward-Port-Of: odoo/enterprise#81685 Forward-Port-Of: odoo/enterprise#81505
Original PR description
The test ensures that pos moves with caba taxes are also included in the tax report and behave the same as non-caba taxes. This was necessary since the closing moves do not create caba entries anymore. (See the community commit) Forward-Port-Of: odoo/enterprise#81685 Forward-Port-Of: odoo/enterprise#81505
Steps to reproduce ================== - Install hr_timesheets - Go to Timesheets > All Timesheets - Use the week scale - Scroll to the bottom => Take note of the last record (e.g.: Walter Horton) - Now use a mobile viewport - Make sure the week scale is still applied - Scroll to the bottom => The last record is not the same one as the desktop view Cause of the issue ================== The grid view uses a virtual scroll hook in order to not have to many dom nodes in memory at th
Original PR description
Steps to reproduce ================== - Install hr_timesheets - Go to Timesheets > All Timesheets - Use the week scale - Scroll to the bottom => Take note of the last record (e.g.: Walter Horton) -…
Steps to reproduce ================== - Install hr_timesheets - Go to Timesheets > All Timesheets - Use the week scale - Scroll to the bottom => Take note of the last record (e.g.: Walter Horton) - Now use a mobile viewport - Make sure the week scale is still applied - Scroll to the bottom => The last record is not the same one as the desktop view Cause of the issue ================== The grid view uses a virtual scroll hook in order to not have to many dom nodes in memory at the same time. For this to work, we need a consistent row height. On mobile, when grouping by x amount of fields, they are stacked on top of each other. When grouping by more than 2 fields, there wasn't enough space to display them all.  The `grid-template-rows` was set to auto on mobile in order to accomodate that case. Using auto means we no longer have a consistent row height. Solution ======== We restore the `gridTemplateRows` and allocate extra space when needed.  opw-4208357 Forward-Port-Of: odoo/enterprise#81617 Forward-Port-Of: odoo/enterprise#80476
Current behaviour: --- Mexican phone numbers are not managed correctly following the 2019 changes in Mexico. (Removing a 1 in phone numbers) Cause of the issue: --- The phonenumbers library removing support of mexican phone numbers starting with 1 in 8.13.38 The Whatsapp API still using the mexican phone numbers starting with 1 Fixes: --- See community commit Adding extra tests in test_whatsapp Similar to: https://github.com/odoo/enterprise/commit/a35a039e5fba569cd379b23d37ce512b
Original PR description
Current behaviour: --- Mexican phone numbers are not managed correctly following the 2019 changes in Mexico. (Removing a 1 in phone numbers) Cause of the issue: --- The phonenumbers library removing support of mexican phone numbers starting with 1 in 8.13.38 The Whatsapp API still using the mexican phone numbers starting with 1 Fixes: --- See community commit Adding extra tests in test_whatsapp Similar to: https://github.com/odoo/enterprise/commit/a35a039e5fba569cd379b23d37ce512b5a23f7e2 opw-4473528 Forward-Port-Of: odoo/enterprise#79416
This commit adds a missing step discarding the "Carrier Type" dialog to avoid a hanging "web_save" request after the end of the tour (cf. urgent save on page unload). This issue was reported with Chrome "new" headless mode becoming the default in Chrome 128+. Forward-Port-Of: odoo/enterprise#81689
Original PR description
This commit adds a missing step discarding the "Carrier Type" dialog to avoid a hanging "web_save" request after the end of the tour (cf. urgent save on page unload). This issue was reported with Chrome "new" headless mode becoming the default in Chrome 128+. Forward-Port-Of: odoo/enterprise#81689
### Issue: The current qty forecast of rental orders does not rely on incoming and outgoing quantities that could happen prior to the location period and would hence modify the availability forecast. ### Steps to reproduce: - Create a storable product that can be rented put 100 units in stock. - Create a sale order for 10 units of that product, confirm and confirm the delivery planned for next week. - Create a rental order for 5 units of that product for a period ulterior to the deliv
Original PR description
### Issue: The current qty forecast of rental orders does not rely on incoming and outgoing quantities that could happen prior to the location period and would hence modify the availability forecast.…
### Issue: The current qty forecast of rental orders does not rely on incoming and outgoing quantities that could happen prior to the location period and would hence modify the availability forecast. ### Steps to reproduce: - Create a storable product that can be rented put 100 units in stock. - Create a sale order for 10 units of that product, confirm and confirm the delivery planned for next week. - Create a rental order for 5 units of that product for a period ulterior to the delivery. - Look at the forecast rentable quantity. #### > It should be 90 but it is 100. ### Cause of the issue: The forcasted quantity of a rental order line is based on the `qty_available` of the product: https://github.com/odoo/enterprise/blob/01b6a70348ffa11a9ead2558571b1ccfa1dd3cbb/sale_stock_renting/models/sale_order_line.py#L115-L129 https://github.com/odoo/odoo/blob/3264e3399918b9627693e78d684ac9ac4ad3bd7d/addons/stock/models/product.py#L31-L43 However, this quantity does not take the incoming and outgoing moves that are planned to happend prior or during the location. In case the renting period starts at an ultarior date than today, it should rather be based on the `virtual_available` quantity of the product: https://github.com/odoo/odoo/blob/3264e3399918b9627693e78d684ac9ac4ad3bd7d/addons/stock/models/product.py#L44-L55 (note that since we need to take into account each of the incoming and outgoing moves that could happen prior to the location, the `from_date` context key needs to be set to today). opw-4552760 Forward-Port-Of: odoo/enterprise#81532 Forward-Port-Of: odoo/enterprise#81127
Description of the issue this commit addresses: A traceback is raised when importing some .cod files for bank transactions because the server tries to create a date element with a string that doesn't match the expected format. --- Steps to reproduce: 1. Install l10n_be_coda 2. Go to the accounting dashboard and import the file `02-minimal-test.cod` from the linked ticket. 3. A traceback is raised --- Desired behavior after this commit is merged: The file import doesn't rai
Original PR description
Description of the issue this commit addresses: A traceback is raised when importing some .cod files for bank transactions because the server tries to create a date element with a string that doesn't…
Description of the issue this commit addresses: A traceback is raised when importing some .cod files for bank transactions because the server tries to create a date element with a string that doesn't match the expected format. --- Steps to reproduce: 1. Install l10n_be_coda 2. Go to the accounting dashboard and import the file `02-minimal-test.cod` from the linked ticket. 3. A traceback is raised --- Desired behavior after this commit is merged: The file import doesn't raise a traceback. --- Note on the fix: The issue happened because in `_get_coda_file_statement()`, the date is expected to be on the index range 115-120 but the the decoding of the file in `_parse_bank_statement_file()` transformed a "€" in "Ôé¼" which moved the date to indexes 117-122. This wrong translation of encoding happened because cp850 was used - which doesn't support currency symbols - instead of utf_8 because the latter was stopped by a non matching regex that was missing the currency symbols. This commits includes currency symbols in the validating regex so that the most appropriate encoding is validated as often as possible. --- opw-4546281 Forward-Port-Of: odoo/enterprise#81329