Wednesday, July 31, 2024
50 changes · saas-17.4
Resolved issues and error corrections
The portal test for the “Skip to content” link was corrected to match how the link actually behaves. This helps keep automated quality checks reliable without changing the user-facing portal experience.
Original PR description
Reason for failure: - Here the tour fails because here in the run we check the href we placed on the ```Skip to content``` link/button to end with ```/#wrap```. - But when we place a href in anchor tag it redirects them exactly to the specified url. Here in we don't redirect to a page rather a specific component/area within the page using # before id of the HTML element. - Here in href we give ```#wrap``` which would redirect to /my#wrap but check and expect something like this /my/#wrap. task-4070472
Miscellaneous changes
Steps to reproduce ================== In 17.2: - Install calendar,hr_homeworking - Use the emulated mobile view from the devtools - Go to calendar - Swipe horizontally to change the displayed week => A crash occurs here https://github.com/odoo/odoo/blob/saas-17.2/addons/hr_homeworking/static/src/calendar/common/calendar_common_renderer.js#L108 Cause of the issue ================== The `AttendeeCalendarCommonRenderer` is rendered before the data for the next week has been loa
Original PR description
Steps to reproduce ================== In 17.2: - Install calendar,hr_homeworking - Use the emulated mobile view from the devtools - Go to calendar - Swipe horizontally to change the displayed week => A crash occurs here https://github.com/odoo/odoo/blob/saas-17.2/addons/hr_homeworking/static/src/calendar/common/calendar_common_renderer.js#L108 Cause of the issue ================== The `AttendeeCalendarCommonRenderer` is rendered before the data for the next week has been loaded. This means that `this.props.model.worklocations` has no entry for the `parsedDate`. Solution ======== Await the action before modifying the ActionSwiper state opw-4047632 Forward-Port-Of: odoo/odoo#175179 Forward-Port-Of: odoo/odoo#173305
Problem: When you click on the On Hand smart button from a product variant, it will show the on hand quantity for all of the product's variants. Purpose: Clicking on the On Hand smart button from a product variant should show only the on hand quantity for that specific product variant. Steps to Reproduce on Runbot: 1. Create a storable product with an attribute that has two values to create two product variants 2. Purchase stock for both product variants 3. Receive the purchased produ
Original PR description
Problem: When you click on the On Hand smart button from a product variant, it will show the on hand quantity for all of the product's variants. Purpose: Clicking on the On Hand smart button from a product variant should show only the on hand quantity for that specific product variant. Steps to Reproduce on Runbot: 1. Create a storable product with an attribute that has two values to create two product variants 2. Purchase stock for both product variants 3. Receive the purchased products 4. Enable Storage Locations in Settings > Inventory 5. Navigate to one of the product variants and click on the On Hand smart button 6. Observe that it shows the on hand quantity for both product variants opw-3988374 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#171306
If there is a user that sends and/or receives lots of Peppol messages, we send a request to fetch documents/messages for all of them at once. This can result in low performance or memory errors. It is better to batch messages into a reasonable number of messages. no task --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#175057 Forward-Port-Of: odoo/odoo#175003
Original PR description
If there is a user that sends and/or receives lots of Peppol messages, we send a request to fetch documents/messages for all of them at once. This can result in low performance or memory errors. It is better to batch messages into a reasonable number of messages. no task --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#175057 Forward-Port-Of: odoo/odoo#175003
This commit updates the logic to enable the modification of quantities for combo products in the cart. Task ID: 3872513 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168254 Forward-Port-Of: odoo/odoo#166695
Original PR description
This commit updates the logic to enable the modification of quantities for combo products in the cart. Task ID: 3872513 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168254 Forward-Port-Of: odoo/odoo#166695
Steps to reproduce: - Create a product with MTO & Buy routes. - Define a vendor for the product. - Create a sale order for this product. - Go to the related purchase order and confirm it. - Decrease the quantity of the PO line. - Go to the related receipt picking. (Do the above steps or any action that leads to logging an activity that has links to records). Expected behavior: Clicking on the record names in the logged exception redirects to these records. Current behavior: Not
Original PR description
Steps to reproduce: - Create a product with MTO & Buy routes. - Define a vendor for the product. - Create a sale order for this product. - Go to the related purchase order and confirm it. - Decrease the quantity of the PO line. - Go to the related receipt picking. (Do the above steps or any action that leads to logging an activity that has links to records). Expected behavior: Clicking on the record names in the logged exception redirects to these records. Current behavior: Nothing happens. opw-4045174 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#175061 Forward-Port-Of: odoo/odoo#174497
[IMP] point_of_sale: load company fiscal_country in the client The `account_fiscal_country_id` is required in the client to trigger l10n_* specific behaviour. task-3801234 [IMP] point_of_sale: add hook in onDoRefund Allows to add extra behaviour when clicking on the "Refund" button (when refunding a previous order). task-3801234 https://github.com/odoo/enterprise/pull/64761 Forward-Port-Of: odoo/odoo#173559 Forward-Port-Of: odoo/odoo#169597
Original PR description
[IMP] point_of_sale: load company fiscal_country in the client The `account_fiscal_country_id` is required in the client to trigger l10n_* specific behaviour. task-3801234 [IMP] point_of_sale: add hook in onDoRefund Allows to add extra behaviour when clicking on the "Refund" button (when refunding a previous order). task-3801234 https://github.com/odoo/enterprise/pull/64761 Forward-Port-Of: odoo/odoo#173559 Forward-Port-Of: odoo/odoo#169597
Before this commit, adding products to an order in databases with a large number of products in `valid_product_ids` could take several seconds. This fix addresses the issue by utilizing a set to store the IDs, significantly speeding up the search process. opw-4075527 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#174556
Original PR description
Before this commit, adding products to an order in databases with a large number of products in `valid_product_ids` could take several seconds. This fix addresses the issue by utilizing a set to store the IDs, significantly speeding up the search process. opw-4075527 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#174556
Setting a adyen/viva-wallet terminal PoS setup and using it would cause the JS traceback: `TypeError: Cannot read properties of undefined (reading 'getPendingPaymentLine')` This error happen starting 17.2 due to the change of patched class PosBus (17.1) -> PosStore (17.2) see: https://github.com/odoo/odoo/pull/136621 opw-3977273 Forward-Port-Of: odoo/odoo#171356
Original PR description
Setting a adyen/viva-wallet terminal PoS setup and using it would cause the JS traceback: `TypeError: Cannot read properties of undefined (reading 'getPendingPaymentLine')` This error happen starting 17.2 due to the change of patched class PosBus (17.1) -> PosStore (17.2) see: https://github.com/odoo/odoo/pull/136621 opw-3977273 Forward-Port-Of: odoo/odoo#171356
Since unlinking `ir.attachment` is done after removing the record from the database, and the cache is already invalidated, we cannot browse `res_id` anymore. Also improve the prefetching for all messages being unlinked at the same time if related to different moves. Forward-Port-Of: odoo/odoo#172228
Original PR description
Since unlinking `ir.attachment` is done after removing the record from the database, and the cache is already invalidated, we cannot browse `res_id` anymore. Also improve the prefetching for all messages being unlinked at the same time if related to different moves. Forward-Port-Of: odoo/odoo#172228
We were removing the `res_id` in SQL to avoid raising when the audit trail is activated (because we cannot modify an attachment anymore) But it still failed when the value was still in cache. [opw-4040187](https://www.odoo.com/odoo/project/49/tasks/4040187) Forward-Port-Of: odoo/odoo#172355
Original PR description
We were removing the `res_id` in SQL to avoid raising when the audit trail is activated (because we cannot modify an attachment anymore) But it still failed when the value was still in cache. [opw-4040187](https://www.odoo.com/odoo/project/49/tasks/4040187) Forward-Port-Of: odoo/odoo#172355
When a tax ID is displayed on a report, pingen is failing because the tax ID is rendered in pingen's postable area. This commit adds a margin after the address to ensure nothing disturbs the address area for pingen. Target 17 -> 17.4, to be adapted for master in https://github.com/odoo/odoo/pull/174635 . task-4080193 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#174830
Original PR description
When a tax ID is displayed on a report, pingen is failing because the tax ID is rendered in pingen's postable area. This commit adds a margin after the address to ensure nothing disturbs the address area for pingen. Target 17 -> 17.4, to be adapted for master in https://github.com/odoo/odoo/pull/174635 . task-4080193 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#174830
Since we are using an existing record as `mail_message_id` in `_notify_thread_by_email`, and we need to allow the creation of new `mail.mail` that will add new values to the `mail.message`, as long as it doesn't modify existing values. We are already writing on `subject` only if it was different than previously, but we are not forbidding to write on it only if there was a previous value set. Forward-Port-Of: odoo/odoo#173366
Original PR description
Since we are using an existing record as `mail_message_id` in `_notify_thread_by_email`, and we need to allow the creation of new `mail.mail` that will add new values to the `mail.message`, as long as it doesn't modify existing values. We are already writing on `subject` only if it was different than previously, but we are not forbidding to write on it only if there was a previous value set. Forward-Port-Of: odoo/odoo#173366
Since Commit 4c58d82c7e582c11eb967b6ed7c918a6da3ebd23 refactored `test_delivery_ui`, the check for the `payment_custom` module was moved to individual tests, however, the new `setUpClass` function now uses code that requires `payment_custom` and fails when the server tries to run tests. Solution: Move the initialization of `transfer_provider` to the individual tests instead of within the setup function. opw-3957075 Forward-Port-Of: odoo/odoo#169137 Forward-Port-Of: odoo/odoo#168792
Original PR description
Since Commit 4c58d82c7e582c11eb967b6ed7c918a6da3ebd23 refactored `test_delivery_ui`, the check for the `payment_custom` module was moved to individual tests, however, the new `setUpClass` function now uses code that requires `payment_custom` and fails when the server tries to run tests. Solution: Move the initialization of `transfer_provider` to the individual tests instead of within the setup function. opw-3957075 Forward-Port-Of: odoo/odoo#169137 Forward-Port-Of: odoo/odoo#168792
This commit moves a call to `_loadMissingPricelistItems` within the `computeProductPricelistCache` method of `PosStore` outside of a for loop. This is done because it only needs to be called once for the products, not once for each product. `_loadMissingPricelistItems` calls `pos.session/get_pos_ui_product_pricelist_item_by_product`, which can be an expensive call. This commit minimizes how many times it's called. opw-3928634 Forward-Port-Of: odoo/odoo#170962
Original PR description
This commit moves a call to `_loadMissingPricelistItems` within the `computeProductPricelistCache` method of `PosStore` outside of a for loop. This is done because it only needs to be called once for the products, not once for each product. `_loadMissingPricelistItems` calls `pos.session/get_pos_ui_product_pricelist_item_by_product`, which can be an expensive call. This commit minimizes how many times it's called. opw-3928634 Forward-Port-Of: odoo/odoo#170962
In this PR fixes the following issue ---------------------------------------------------------- - The pull request addresses a mobile view issue where the context 'show_project_update' is False so the showProjectUpdate method will not be called and the missing record error will not appear. - As part of this pull request, the visible property will be set for the x and y so that the scroll bar will appear at the bottom when fever records are displayed. task-3681318 Forward-Port-Of
Original PR description
In this PR fixes the following issue ---------------------------------------------------------- - The pull request addresses a mobile view issue where the context 'show_project_update' is False so the showProjectUpdate method will not be called and the missing record error will not appear. - As part of this pull request, the visible property will be set for the x and y so that the scroll bar will appear at the bottom when fever records are displayed. task-3681318 Forward-Port-Of: odoo/odoo#151377
Before this commit, creating a new partner incorrectly wrote the default values into `this.props.partner`. This commit ensures that default values are correctly set for new partners. Enterprise PR: https://github.com/odoo/enterprise/pull/66310 opw-4042039 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#172504 Forward-Port-Of: odoo/odoo#172399
Original PR description
Before this commit, creating a new partner incorrectly wrote the default values into `this.props.partner`. This commit ensures that default values are correctly set for new partners. Enterprise PR: https://github.com/odoo/enterprise/pull/66310 opw-4042039 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#172504 Forward-Port-Of: odoo/odoo#172399
Following the changes introduced in https://github.com/odoo/odoo/commit/5a452e9baecb32d3a7de7b975841a1a981b20dcc, archived product template attribute values were not being loaded, leading to errors when loading paid orders. opw-4012873 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#171427
Original PR description
Following the changes introduced in https://github.com/odoo/odoo/commit/5a452e9baecb32d3a7de7b975841a1a981b20dcc, archived product template attribute values were not being loaded, leading to errors when loading paid orders. opw-4012873 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#171427
Prior to this commit, orders loaded from other sessions did not load missing partners. opw-3981458 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#171128 Forward-Port-Of: odoo/odoo#169763
Original PR description
Prior to this commit, orders loaded from other sessions did not load missing partners. opw-3981458 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#171128 Forward-Port-Of: odoo/odoo#169763
Before this commit, when orders were loaded, if a partner was missing, it wouldn't be loaded. Steps to reproduce: 1. Create a new order and create a new customer related to this order 2. From another device, load the order. The order will appear but with no customer defined. opw-3926662 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168199
Original PR description
Before this commit, when orders were loaded, if a partner was missing, it wouldn't be loaded. Steps to reproduce: 1. Create a new order and create a new customer related to this order 2. From another device, load the order. The order will appear but with no customer defined. opw-3926662 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168199
Prior to this commit, scanning a product barcode for a missing product would trigger a search for the missing pricelist, potentially leading to an error. This commit fixes this issue by preventing the pricelist search when the product is missing. opw-3850050 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#166708 Forward-Port-Of: odoo/odoo#166579
Original PR description
Prior to this commit, scanning a product barcode for a missing product would trigger a search for the missing pricelist, potentially leading to an error. This commit fixes this issue by preventing the pricelist search when the product is missing. opw-3850050 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#166708 Forward-Port-Of: odoo/odoo#166579
The German delivery slips only show the company address, not the actual delivery address. ### Steps to reproduce: - Install l10n_de and switch to a German company - Create a delivery address to a company - Create a new SO, select the company as the customer and validate - Go to the created Delivery order, the delivery address should be the one you created before - Validate and print the delivery slip ### Cause: The German document format is DIN 5008 and this format does not include t
Original PR description
The German delivery slips only show the company address, not the actual delivery address. ### Steps to reproduce: - Install l10n_de and switch to a German company - Create a delivery address to a company - Create a new SO, select the company as the customer and validate - Go to the created Delivery order, the delivery address should be the one you created before - Validate and print the delivery slip ### Cause: The German document format is DIN 5008 and this format does not include the delivery address on the slips. ### Solution: Add the delivery address in the additional addresses that should be printed. opw-3961185 Forward-Port-Of: odoo/odoo#170902
Ensure that _setup_main_restaurant_defaults is only called when the main restaurant does not have an active session. This prevents potential errors that could occur if the method is called while a session is active. E.g: https://runbot.odoo.com/runbot/build/64372543 opw-3937178 Forward-Port-Of: odoo/odoo#170936 Forward-Port-Of: odoo/odoo#170507
Original PR description
Ensure that _setup_main_restaurant_defaults is only called when the main restaurant does not have an active session. This prevents potential errors that could occur if the method is called while a session is active. E.g: https://runbot.odoo.com/runbot/build/64372543 opw-3937178 Forward-Port-Of: odoo/odoo#170936 Forward-Port-Of: odoo/odoo#170507
A fix's term was changing during the fw-port, but it's pot file was not re-exported to match. Therefore, re-export so that it translates properly. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168377 Forward-Port-Of: odoo/odoo#167745
Original PR description
A fix's term was changing during the fw-port, but it's pot file was not re-exported to match. Therefore, re-export so that it translates properly. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168377 Forward-Port-Of: odoo/odoo#167745
Description of the issue this PR addresses: Paragraphs are not admitted in list items in the editor. But the way they were sanitized away was broken. After commit [1] contiguous paragraphs in a list item were converted to their own new list item with oe-nested class to remove the bullet point (eg, `<li><p>a</p><p>b</p></li>` became `<li>a</li><li class=oe-nested>b</li>`), which broke some snippet using paragraphs nested within list item. This commit convert those p tags with attributes
Original PR description
Description of the issue this PR addresses: Paragraphs are not admitted in list items in the editor. But the way they were sanitized away was broken. After commit [1] contiguous paragraphs in a list item were converted to their own new list item with oe-nested class to remove the bullet point (eg, `<li><p>a</p><p>b</p></li>` became `<li>a</li><li class=oe-nested>b</li>`), which broke some snippet using paragraphs nested within list item. This commit convert those p tags with attributes to span tags and use `<br>` tags to separate those spans and unwraps those without attributes. task-3932057 [1]: https://github.com/odoo/odoo/commit/3f9938823189935a013846db9c9a96b5d8bd15d0 Forward-Port-Of: odoo/odoo#168959 Forward-Port-Of: odoo/odoo#166433
In this PR fixes following bugs: - Subtasks don't set by-default to the configured stage. users have to manually set it after saving. - Expected: stages by default set upon creation. - the task name goes empty after selecting a project, even if you rewrite it and switch projects. This only happens in the Quick Add feature in the kanban view after enabling timesheets in the project settings. task-3706741 Description of the issue/feature this PR addresses: Current behavior b
Original PR description
In this PR fixes following bugs: - Subtasks don't set by-default to the configured stage. users have to manually set it after saving. - Expected: stages by default set upon creation. - the task name goes empty after selecting a project, even if you rewrite it and switch projects. This only happens in the Quick Add feature in the kanban view after enabling timesheets in the project settings. task-3706741 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#153607
Current behavior: When a combo product is on the order and the user change the fiscal position, the prices of the lines of the combo change to get there original prices rather than the price of the combo Steps to reproduce: - Install "Point of Sale" app - Enable "Flexible Taxes" in the shop settings and allow 2 fiscal positions - Start a session, select one of the fp click on a combo product - Change the fp, the prices of the orderlines are now the prices of the products themselves and n
Original PR description
Current behavior: When a combo product is on the order and the user change the fiscal position, the prices of the lines of the combo change to get there original prices rather than the price of the combo Steps to reproduce: - Install "Point of Sale" app - Enable "Flexible Taxes" in the shop settings and allow 2 fiscal positions - Start a session, select one of the fp click on a combo product - Change the fp, the prices of the orderlines are now the prices of the products themselves and not the prices of the combo Cause: After changing the fp, the quantity of al the orderlines are reset Solution: After changing the fp, call the function which update the pricelist which update all the prices correctly opw-4027186 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#174881 Forward-Port-Of: odoo/odoo#173770
In this PR: https://github.com/odoo/odoo/pull/172760 the check_vat_il function is calling `self.company`. It appears it was not a good idea and several things were not done well: - It could lead to errors as run_vat_test can be called on multiple partners: https://github.com/odoo/odoo/blob/16.0/addons/base_vat/models/res_partner.py#L170. - The previous PR is also checking the VAT number depending on the field is_company but did not put it as a constraint. This can be fixed, but with more ch
Original PR description
In this PR: https://github.com/odoo/odoo/pull/172760 the check_vat_il function is calling `self.company`. It appears it was not a good idea and several things were not done well: - It could lead to errors as run_vat_test can be called on multiple partners: https://github.com/odoo/odoo/blob/16.0/addons/base_vat/models/res_partner.py#L170. - The previous PR is also checking the VAT number depending on the field is_company but did not put it as a constraint. This can be fixed, but with more changes than needed. It has been decided to use the `idnr` check for all Israeli VAT numbers, regardless of the partner type. With this change the VAT check for companies is not complete: it is not tested that they begin by a 5. But it is good enough. opw-3954674 Forward-Port-Of: odoo/odoo#174817
In its override of res_partner, the module introduces 2 new stored compute fields, which trigger a slow recompute at install time. Since those computations need to happen at some point to ensure that the module is working properly, changing the compute method was not an option. The changes proposed in this commit bypass the compute during the installation, leading to more reasonable install times (from an estimated 59 days down to about 1 min in our encountered case). A notable caveat i
Original PR description
In its override of res_partner, the module introduces 2 new stored compute fields, which trigger a slow recompute at install time. Since those computations need to happen at some point to ensure that the module is working properly, changing the compute method was not an option. The changes proposed in this commit bypass the compute during the installation, leading to more reasonable install times (from an estimated 59 days down to about 1 min in our encountered case). A notable caveat is that the users will have to trigger this computation manually record by record or in small batches. For smaller DBs, this shouldn't be an issue. For larger DBs, since the alternative is to not use the module at all or start from scratch with a new DB, the proposed solution seems acceptable. opw-4027267 Forward-Port-Of: odoo/odoo#172914
**Steps to reproduce the bug:** - Create a lot without company set with any product - open the repairs list from this lot - Try to save the repair **Problem:** An error is raised: “Invalide fields: Company” Since this commit: https://github.com/odoo/odoo/commit/99b39b72c7e65e85af6f06dcb6b02867623f3f69 A lot can be created without a company set, but the repair order still requires a company: https://github.com/odoo/odoo/blob/17.0/addons/repair/models/repair.py#L36-L39 This key
Original PR description
**Steps to reproduce the bug:** - Create a lot without company set with any product - open the repairs list from this lot - Try to save the repair **Problem:** An error is raised: “Invalide fields: Company” Since this commit: https://github.com/odoo/odoo/commit/99b39b72c7e65e85af6f06dcb6b02867623f3f69 A lot can be created without a company set, but the repair order still requires a company: https://github.com/odoo/odoo/blob/17.0/addons/repair/models/repair.py#L36-L39 This key is passed in the context as 'default_company_id', but since the lot does not have a company, the value is set to False, which triggers an error. opw-4046897 Forward-Port-Of: odoo/odoo#173399
Currently the top line of a combo product is always showing a 0$ price. Steps to reproduce: ------------------- * Open a POS Shop session * Add a combo product, confirm selection choices > Observation: The first order line representing the combo product will show a price of 0$ Why the fix: ------------ In saas-17.3 the price is not shown on the combo parent line anymore to avoid any confusion. Discussed with the PO and he asked to put this in 17.0 as well if possible. Here is the
Original PR description
Currently the top line of a combo product is always showing a 0$ price. Steps to reproduce: ------------------- * Open a POS Shop session * Add a combo product, confirm selection choices > Observation: The first order line representing the combo product will show a price of 0$ Why the fix: ------------ In saas-17.3 the price is not shown on the combo parent line anymore to avoid any confusion. Discussed with the PO and he asked to put this in 17.0 as well if possible. Here is the commit that did the change in saas-17.3: https://github.com/odoo/odoo/commit/72267340663e47581d42f46deded6830c72fbda3 Slight change as in saas-17.3 `combo_line_ids` is always a list, empty or not and in 17.0 if you have a simple product, `combo_line_ids` will be `undefined`. opw-3942339 Forward-Port-Of: odoo/odoo#170206 Forward-Port-Of: odoo/odoo#169587
**Description of the issue/feature this PR addresses:** Go to Blacklist Click create --> Impossible to save --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#128230
Original PR description
**Description of the issue/feature this PR addresses:** Go to Blacklist Click create --> Impossible to save --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#128230
Currently a traceback is occurring when the user tries to load demo data in POS. To reproduce this issue: 1) Install `POS`, `pos_loyalty` without demo data 2) Make sure no products are available in `POS` by disabling the `Available in POS` for `products` in the `POS` 3) Now open a session and click the explore `demo data` button Error:- ``` KeyError: 'pos_special_products_ids' File "odoo/http.py", line 2248, in __call__ response = request._serve_db() File "odoo/http.
Original PR description
Currently a traceback is occurring when the user tries to load demo data in POS. To reproduce this issue: 1) Install `POS`, `pos_loyalty` without demo data 2) Make sure no products are available in…
Currently a traceback is occurring when the user tries to load demo data in POS.
To reproduce this issue:
1) Install `POS`, `pos_loyalty` without demo data
2) Make sure no products are available in `POS` by disabling
the `Available in POS` for `products` in the `POS`
3) Now open a session and click the explore `demo data` button
Error:-
```
KeyError: 'pos_special_products_ids'
File "odoo/http.py", line 2248, in __call__
response = request._serve_db()
File "odoo/http.py", line 1823, in _serve_db
return self._transactioning(_serve_ir_http, readonly=ro)
File "odoo/http.py", line 1843, in _transactioning
return service_model.retrying(func, env=self.env)
File "odoo/service/model.py", line 134, in retrying
result = func()
File "odoo/http.py", line 1821, in _serve_ir_http
return self._serve_ir_http(rule, args)
File "odoo/http.py", line 1828, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2053, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 220, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 756, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 38, in call_kw
return self._call_kw(model, method, args, kwargs)
File "addons/web/controllers/dataset.py", line 34, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 458, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "addons/point_of_sale/models/pos_session.py", line 2127, in load_product_frontend
return self.get_onboarding_data()
File "home/odoo/src/enterprise/saas-17.2/pos_preparation_display/models/pos_session.py", line 20, in get_onboarding_data
result = super().get_onboarding_data()
File "addons/point_of_sale/models/pos_session.py", line 1902, in get_onboarding_data
response = self.load_data(['pos.category', 'product.product'], True)
File "home/odoo/src/enterprise/saas-17.2/pos_settle_due/models/pos_session.py", line 20, in load_data
response = super().load_data(models_to_load, only_data)
File "addons/pos_loyalty/models/pos_session.py", line 103, in load_data
result['custom']['pos_special_products_ids'].extend(
```
When the user clicks on the `load demo` button, it triggers with `only_data` as a truthy value from `[1]`
But the `pos_special_products_ids` value assigns only if no `only_data` from `[2]`
which leads to a traceback from `[3]`
[1]
https://github.com/odoo/odoo/blob/d0cf45dc6bb472907f6b8542992f717c699f5a34/addons/point_of_sale/models/pos_session.py#L1904-L1905
[2]
https://github.com/odoo/odoo/blob/d0cf45dc6bb472907f6b8542992f717c699f5a34/addons/point_of_sale/models/pos_session.py#L289-L307
[3]
https://github.com/odoo/odoo/blob/d0cf45dc6bb472907f6b8542992f717c699f5a34/addons/pos_loyalty/models/pos_session.py#L103-L105
After applying this commit, it will resolve this issue by only accessing the value when the only_data value is falsy.
sentry-5588106710
Forward-Port-Of: odoo/odoo#172608Before this commit, attempting to load a sale order into the PoS with products not available in the PoS would fail if the user lacked write access to the product, preventing the sale order from being loaded. opw-4057869 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#173527
Original PR description
Before this commit, attempting to load a sale order into the PoS with products not available in the PoS would fail if the user lacked write access to the product, preventing the sale order from being loaded. opw-4057869 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#173527
Currently the logs are being spammed with warning messages which shouldn't be warnings as it's a normal behavior 1) When no database is connected we log "warning invalid ssl certificate" 2) When no database is connected we log "warning odoo server not set" I log both as info level to still keep this information but avoid spamming useful error logs with it Forward-Port-Of: odoo/odoo#174702
Original PR description
Currently the logs are being spammed with warning messages which shouldn't be warnings as it's a normal behavior 1) When no database is connected we log "warning invalid ssl certificate" 2) When no database is connected we log "warning odoo server not set" I log both as info level to still keep this information but avoid spamming useful error logs with it Forward-Port-Of: odoo/odoo#174702
[FIX] stock.landed.cost: Use invoice date currency exchange rate for landed cost computation Fixes an issue where the landed cost computation was based on the exchange rate of the accounting date instead of the invoice date, causing discrepancies in valuation and vendor bill. Now, the exchange rate of the invoice date is correctly utilized for accurate landed cost calculation. To reproduce the issue: 1. Create a purchase order 2. Receive the product 3. Create a vendor bill
Original PR description
[FIX] stock.landed.cost: Use invoice date currency exchange rate for landed cost computation Fixes an issue where the landed cost computation was based on the exchange rate of the accounting date…
[FIX] stock.landed.cost: Use invoice date currency exchange rate for landed cost computation
Fixes an issue where the landed cost computation was based on the exchange rate of the accounting date instead of the invoice date, causing discrepancies in valuation and vendor bill. Now, the exchange rate of the invoice date is correctly utilized for accurate landed cost calculation.
To reproduce the issue:
1. Create a purchase order
2. Receive the product
3. Create a vendor bill for landed cost product in a different currency
4. Click on the "Create Landed Cost" button in the vendor bill
Error: The landed cost is computed using the exchange rate of the accounting date, while the total on the invoice is calculated using the invoice date's exchange rate. This results in a discrepancy between the bill price and the valuation.
The fix ensures that the exchange rate of the invoice date is used for computing the total for the landed cost.
opw-3862915
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#171039
Forward-Port-Of: odoo/odoo#165155## Before this commit: The schedule date is converted into a string in SQL and then parsed in Python using `Datetime.to_string`. However, it does not support parsing datetime with trailing milliseconds, such as '2024-05-22 10:09:45.5'. ## After this commit: Do not convert the schedule date to a string but put it in a PostgreSQL Array instead. Psycopg2 will convert it into a datetime object automatically, similar to the ORM's behaviour. opw-3932891 Forward-Port-Of: odoo/enterprise#67593
Original PR description
## Before this commit: The schedule date is converted into a string in SQL and then parsed in Python using `Datetime.to_string`. However, it does not support parsing datetime with trailing milliseconds, such as '2024-05-22 10:09:45.5'. ## After this commit: Do not convert the schedule date to a string but put it in a PostgreSQL Array instead. Psycopg2 will convert it into a datetime object automatically, similar to the ORM's behaviour. opw-3932891 Forward-Port-Of: odoo/enterprise#67593 Forward-Port-Of: odoo/enterprise#63065
## Issue: - For an inventory operation, if a product quantity is less than 1 (eg. 0.5), the "+" button in the Barcode app will display "+1" instead of "+ 0.5". ## Steps To Reproduce: - In Inventory, create a transfer (Receipts) with a product where the quantity is 0.5 and "Mark As Todo". - In the Barcode app, go to that operation and notice that the "Add Quantity" button shows "+1" instead of "+0.5". ## Solution: - I modified the `getIncrementQuantity` function to change the minimum qu
Original PR description
## Issue: - For an inventory operation, if a product quantity is less than 1 (eg. 0.5), the "+" button in the Barcode app will display "+1" instead of "+ 0.5". ## Steps To Reproduce: - In Inventory, create a transfer (Receipts) with a product where the quantity is 0.5 and "Mark As Todo". - In the Barcode app, go to that operation and notice that the "Add Quantity" button shows "+1" instead of "+0.5". ## Solution: - I modified the `getIncrementQuantity` function to change the minimum quantity from 1 to 0. This ensures that for product quantities less than 1, the "+" button in the Barcode app will display the correct increment. OPW-3880380 Forward-Port-Of: odoo/enterprise#65049 Forward-Port-Of: odoo/enterprise#62770
This PR adds a wizard in the POS to select a `l10n_pe_edi_refund_reason` when refunding an invoice/boleta (e.g. "Anulación de la operación", "Anulación de la operación"...). NB: according to PO feedback, it is not possible to refund several invoices/boletas at once (but it is possible to refund one invoice/boleta with multiple credit notes). task-3801234 https://github.com/odoo/odoo/pull/169597 Forward-Port-Of: odoo/enterprise#66943 Forward-Port-Of: odoo/enterprise#64761
Original PR description
This PR adds a wizard in the POS to select a `l10n_pe_edi_refund_reason` when refunding an invoice/boleta (e.g. "Anulación de la operación", "Anulación de la operación"...). NB: according to PO feedback, it is not possible to refund several invoices/boletas at once (but it is possible to refund one invoice/boleta with multiple credit notes). task-3801234 https://github.com/odoo/odoo/pull/169597 Forward-Port-Of: odoo/enterprise#66943 Forward-Port-Of: odoo/enterprise#64761
Since the audit trail is mandatory in Germany, we cannot remove moves or any documents related. We only need to remove the moves linked to the company of the tour. Forward-Port-Of: odoo/enterprise#66226
Original PR description
Since the audit trail is mandatory in Germany, we cannot remove moves or any documents related. We only need to remove the moves linked to the company of the tour. Forward-Port-Of: odoo/enterprise#66226
The amount to settle was not shown in the tree view for the older column due to the [domain prepared](https://github.com/odoo/enterprise/blob/17.0/account_reports/models/account_aged_partner_balance.py#L380-L392) for the older column being capped between 30 days, similar to the other columns(1-30, 31-60, etc.) in the Aged Receivable report. **Step to reproduce:** - create an invoice with due date 150 days back - open the Aged receivable report and find that invoice - The record of `acco
Original PR description
The amount to settle was not shown in the tree view for the older column due to the [domain…
The amount to settle was not shown in the tree view for the older column due to the [domain prepared](https://github.com/odoo/enterprise/blob/17.0/account_reports/models/account_aged_partner_balance.py#L380-L392) for the older column being capped between 30 days, similar to the other columns(1-30, 31-60, etc.) in the Aged Receivable report. **Step to reproduce:** - create an invoice with due date 150 days back - open the Aged receivable report and find that invoice - The record of `account.move.line` will not be shown in the tree view (Amount to settle) This patch handle the domain for `period5`. **Before fix:**   **After fix:**  OPW - 4048535 Forward-Port-Of: odoo/enterprise#66884
Before this commit, creating a new partner incorrectly wrote the default values into `this.props.partner`. This commit ensures that default values are correctly set for new partners. Related PR: https://github.com/odoo/odoo/pull/172399 opw-4042039 Forward-Port-Of: odoo/enterprise#66362 Forward-Port-Of: odoo/enterprise#66310
Original PR description
Before this commit, creating a new partner incorrectly wrote the default values into `this.props.partner`. This commit ensures that default values are correctly set for new partners. Related PR: https://github.com/odoo/odoo/pull/172399 opw-4042039 Forward-Port-Of: odoo/enterprise#66362 Forward-Port-Of: odoo/enterprise#66310
Purpose ======= Prevent multiple submits of the attendee form when the user spam clicks on the "Confirm Appointment" button. Specifications ============== Spam clicking the submit button is submitting multiple times the form which redirects the user to the "Date & Time" step with a red banner indicating that another user already has reserved this time slot a few seconds ago. Adding a loading effect on the confirmation button to disable it after a single click and inform the user that t
Original PR description
Purpose ======= Prevent multiple submits of the attendee form when the user spam clicks on the "Confirm Appointment" button. Specifications ============== Spam clicking the submit button is submitting multiple times the form which redirects the user to the "Date & Time" step with a red banner indicating that another user already has reserved this time slot a few seconds ago. Adding a loading effect on the confirmation button to disable it after a single click and inform the user that the form submission is correctly being processed. Backport of: odoo/enterprise#58865 Task-3945177 Forward-Port-Of: odoo/enterprise#63724 Forward-Port-Of: odoo/enterprise#63067
The module depends on documents_spreadsheet and crm in the manifest but contains references for [fields](https://github.com/odoo/enterprise/blob/a935055b1ea60b799e5c61c46a09231c4d210095/documents_spreadsheet_crm/data/files/pipeline_revenue_report_template.json#L280) defined in [crm_enterprise](https://github.com/odoo/enterprise/blob/a935055b1ea60b799e5c61c46a09231c4d210095/crm_enterprise/models/crm_lead.py#L10) and relies on the autoinstall of the enterprise module. The dependency should be expl
Original PR description
The module depends on documents_spreadsheet and crm in the manifest but contains references for [fields](https://github.com/odoo/enterprise/blob/a935055b1ea60b799e5c61c46a09231c4d210095/documents_spreadsheet_crm/data/files/pipeline_revenue_report_template.json#L280) defined in [crm_enterprise](https://github.com/odoo/enterprise/blob/a935055b1ea60b799e5c61c46a09231c4d210095/crm_enterprise/models/crm_lead.py#L10) and relies on the autoinstall of the enterprise module. The dependency should be explicit because crm_enterprise can be uninstalled by users and the documents would still be there with missing fields. Forward-Port-Of: odoo/enterprise#64549
We notice that get_today_call_activities is a very frequent call that spend a lot of time runing sql queries. during 1h30 it was called 20515 times for an average of 719ms of sql times on odoo.com database. It was cause by _format_call_activities which can be called with many hundreds of activities before this commit for each activity _mail_get_partners and mail_partner_format were called once per activity. It take 581s for all the internal user of odoo.com database after this comm
Original PR description
We notice that get_today_call_activities is a very frequent call that spend a lot of time runing sql queries. during 1h30 it was called 20515 times for an average of 719ms of sql times on odoo.com database. It was cause by _format_call_activities which can be called with many hundreds of activities before this commit for each activity _mail_get_partners and mail_partner_format were called once per activity. It take 581s for all the internal user of odoo.com database after this commit the method _mail_get_partners and mail_partner_format are called for an entire batch as it's intended. The same computation for internal user takes now 84s Forward-Port-Of: odoo/enterprise#67289
When switching a bank journal to the new SEPA Pain version, existing payments in the batch may lack required data, such as the UETR field. ### Steps to Reproduce 1. Install `l10n_be`, `account_accountant`, and `account_sepa_pain_001_001_09`. 2. In the settings, enable 'SEPA Credit Transfer (SCT)'. 3. Switch to a Belgian company. 4. Set up an IBAN bank account on the bank journal. 5. Ensure a partner has an IBAN bank account defined. 6. Create and confirm an outgoing payment for that p
Original PR description
When switching a bank journal to the new SEPA Pain version, existing payments in the batch may lack required data, such as the UETR field. ### Steps to Reproduce 1. Install `l10n_be`,…
When switching a bank journal to the new SEPA Pain version, existing payments in the batch may lack required data, such as the UETR field. ### Steps to Reproduce 1. Install `l10n_be`, `account_accountant`, and `account_sepa_pain_001_001_09`. 2. In the settings, enable 'SEPA Credit Transfer (SCT)'. 3. Switch to a Belgian company. 4. Set up an IBAN bank account on the bank journal. 5. Ensure a partner has an IBAN bank account defined. 6. Create and confirm an outgoing payment for that partner, setting the payment method to 'SEPA Credit Transfer'. 7. In the Outgoing Payments tab of the bank journal, set the SEPA Pain Version to 'New generic version'. 8. Create a batch payment with the payment you just created. 9. Attempt to validate it. ### Expected Result The payment should be validated successfully. ### Actual Result A traceback occurs: `TypeError: Argument must be bytes or unicode, got 'bool'` ### Cause The payment in the batch was created before the SEPA PAIN version was updated on the bank journal. Consequently, the payment is missing some necessary data (specifically, the UETR field is not set) required for the new SEPA version. opw-3973374 Forward-Port-Of: odoo/enterprise#67451 Forward-Port-Of: odoo/enterprise#65614
Before this commit, the 'no content' message was showing in the entire display, taking the employee panel account. Now, it is fixed, the message just stay at the disabled workorders, and when the screen is less than md, the message is hidded. Previous PR: https://github.com/odoo/enterprise/pull/62997 ### Before  ### After  ### After  task: 3794286 Forward-Port-Of: odoo/enterprise#64435
When having multiple companies selected and that their tax id are not the same, then we put a banner on top of the tax report to warn the user that the companies selected don't have the same tax id. task: 3909005 Forward-Port-Of: odoo/enterprise#67511 Forward-Port-Of: odoo/enterprise#63275
Original PR description
When having multiple companies selected and that their tax id are not the same, then we put a banner on top of the tax report to warn the user that the companies selected don't have the same tax id. task: 3909005 Forward-Port-Of: odoo/enterprise#67511 Forward-Port-Of: odoo/enterprise#63275
Before this commit, loading an attribute value with an image would cause a TypeError due to the image data being of bytes type, which is not JSON serializable. This commit prevents this error by removing the image data before serialization. opw-3957587 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#167765
Original PR description
Before this commit, loading an attribute value with an image would cause a TypeError due to the image data being of bytes type, which is not JSON serializable. This commit prevents this error by removing the image data before serialization. opw-3957587 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#167765
Before this commit, an error occurred in the following scenario: - Open Point of Sale and sell a product with lot tracking - Close/Post the Point of Sale session - Open the product record and disable tracking in the inventory tab - Start a new session, click on Orders and sort for Paid orders opw-3921893 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168078 Forward-Port-Of: odoo/odoo#166915
Original PR description
Before this commit, an error occurred in the following scenario: - Open Point of Sale and sell a product with lot tracking - Close/Post the Point of Sale session - Open the product record and disable tracking in the inventory tab - Start a new session, click on Orders and sort for Paid orders opw-3921893 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#168078 Forward-Port-Of: odoo/odoo#166915