Tuesday, December 10, 2024
26 changes · saas-17.4
Resolved issues and error corrections
This update prevents an intermittent crash when a mail popout window is closed before it finishes loading. It improves reliability of automated testing and helps avoid false failures during release validation.
Original PR description
Before this commit, the following unit test may crash non-deterministically: "Attachment view / chatter popout across multiple records test" With the following error: ``` Cannot read properties of null (reading 'write') ``` This happens because `iframe.contentDocument` could be `null`, which happens when the iframe of popout is closed before it had time to load content. The `reset()` function of popout service assumes that the document has been loaded, which is not necessarily true. runbot-106785
This update adjusts automated tests to match a recent correction in keyboard shortcut behavior. It helps keep quality checks reliable without changing customer-facing features.
Original PR description
Fix tests broken by https://github.com/odoo/odoo/pull/185960/commits/72fd261edeaac13914e82ec88a639d94f20f63be --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Delivery slips using the DIN5008 layout no longer show the delivery address twice. This keeps printed warehouse documents cleaner and avoids confusion for staff and customers.
Original PR description
**Issue** When using the DIN5008 document layout and printing a delivery slip, the delivery address appears twice. This fix ensures the delivery address is displayed only once. **Steps to reproduce:** 1. Go to Settings 2. Navigate to Companies -> Configure Document Layout 3. Select DIN5008 as the layout 4. Go to the Inventory module 5. Navigate to Operations -> Deliveries 6. Create a new delivery 7. Print the delivery slip The delivery address appear twice on the delivery slip, This fix ensures the delivery address is displayed only once. opw-4213842 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Approval requests using automated numbering no longer get blocked by an empty, locked subject field. This prevents an invalid field error and lets users save these approval requests as expected.
Original PR description
**Issue:** - When creating an approval request with the type "Automated Sequence", the Approval Subject field is empty and readonly, making it impossible to save the record. **Steps To Reproduce:** - Create a new Approval Type, check the "Automated Sequence" box, and set a "code". - In dashboard Click on "New Request" - Set the category to the one you just created, and save. - Notice the Invalid Field error. **Solution:** - Set 'required' to 'not automated_sequence'. opw-4326974
Miscellaneous changes
**Steps to reproduce:** - Make a POS order - Process to payment - Check receipt **Issue:** The company name is not displayed on the receipt as it was in previous versions. opw-4349203 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#190174
Original PR description
**Steps to reproduce:** - Make a POS order - Process to payment - Check receipt **Issue:** The company name is not displayed on the receipt as it was in previous versions. opw-4349203 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#190174
Versions -------- - 16.0+ Steps ----- 1. Run `test_reload_template_translations` without demo data. Issue ----- > AssertionError: sale_order_template_id was not found in the view Cause ----- The `sale_order_template_id` field requires the user to have the `sale_management.group_sale_order_template` group, which they don't have by default without demo data. Solution -------- Add the group to the current user before running the test. --- Runbot: https://runbot.odoo.com/
Original PR description
Versions -------- - 16.0+ Steps ----- 1. Run `test_reload_template_translations` without demo data. Issue ----- > AssertionError: sale_order_template_id was not found in the view Cause ----- The `sale_order_template_id` field requires the user to have the `sale_management.group_sale_order_template` group, which they don't have by default without demo data. Solution -------- Add the group to the current user before running the test. --- Runbot: https://runbot.odoo.com/web#id=109475&view_type=form&model=runbot.build.error&menu_id=405&cids=1 opw-4260006 Forward-Port-Of: odoo/odoo#190031
When using ship later on a settle order, the qty_delivered on the original order would not take into account if the pos order has been delivered or not. Steps to reproduce: ------------------- * Install pos_sale module * Enable ship later * Create an order with any product * Open the PoS and settle the order * Validate the order and use ship later option > Observation: If you go on the sale order the qty_delivered will be 1 but the order has not been delivered yet. Why the fix: --
Original PR description
When using ship later on a settle order, the qty_delivered on the original order would not take into account if the pos order has been delivered or not. Steps to reproduce: ------------------- * Install pos_sale module * Enable ship later * Create an order with any product * Open the PoS and settle the order * Validate the order and use ship later option > Observation: If you go on the sale order the qty_delivered will be 1 but the order has not been delivered yet. Why the fix: ------------ We make sure that if the pos order is linked to a picking, the picking should be completely done to count the qty as delivered. opw-4199142 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#189220 Forward-Port-Of: odoo/odoo#185456
When in preview mode and a modal is open in the preview, pressing escape hides both the modal and the top menu bar. We want to prevent that. Steps to reproduce: 1. Connect as Admin and go on the website homepage 2. Edit the page, add a popup and save 3. Make sure to be in preview mode 4. Wait for the popup to show. 5. Click on it (just to be sure it's focused) 6. Press escape task-4351982 Forward-Port-Of: odoo/odoo#190066 Forward-Port-Of: odoo/odoo#188085
Original PR description
When in preview mode and a modal is open in the preview, pressing escape hides both the modal and the top menu bar. We want to prevent that. Steps to reproduce: 1. Connect as Admin and go on the website homepage 2. Edit the page, add a popup and save 3. Make sure to be in preview mode 4. Wait for the popup to show. 5. Click on it (just to be sure it's focused) 6. Press escape task-4351982 Forward-Port-Of: odoo/odoo#190066 Forward-Port-Of: odoo/odoo#188085
Improved the authentication logging process for romanian E-Factura token generation, for better debugging in case an error happened in between the process. From now, all potential errors in the auth process are catched and saved in the `ir.logging` object, which can be accessed by going to debug mode and going to the `Settings > Technical > Logging` menu. The saved errors are also updated to contain more information than before. In master, the `l10n_ro_edi_oauth_error` object will be delet
Original PR description
Improved the authentication logging process for romanian E-Factura token generation, for better debugging in case an error happened in between the process. From now, all potential errors in the auth process are catched and saved in the `ir.logging` object, which can be accessed by going to debug mode and going to the `Settings > Technical > Logging` menu. The saved errors are also updated to contain more information than before. In master, the `l10n_ro_edi_oauth_error` object will be deleted along with the views. All errors regarding romanian authentication from now on should be viewed in the Logging menu. opw-4187186 Forward-Port-Of: odoo/odoo#187708
This commit will do multiple things: - Change one tax type - Change some account types task: 4341375 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#189733 Forward-Port-Of: odoo/odoo#189350
Original PR description
This commit will do multiple things: - Change one tax type - Change some account types task: 4341375 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#189733 Forward-Port-Of: odoo/odoo#189350
Steps to reproduce: - Enable 'Reception Report' in Inventory Configuration - Make an outgoing shipment for a storable product - Make an incoming shipment for that same product - Open the allocation report - Reload the page Issue: The context is lost when reloading the page, meaning that we lose the the `default_picking_ids`/`default_production_ids` in the context, making it unable to open the report. To avoid this, we add the key and values to the router (and thus the URL) so it can
Original PR description
Steps to reproduce: - Enable 'Reception Report' in Inventory Configuration - Make an outgoing shipment for a storable product - Make an incoming shipment for that same product - Open the allocation report - Reload the page Issue: The context is lost when reloading the page, meaning that we lose the the `default_picking_ids`/`default_production_ids` in the context, making it unable to open the report. To avoid this, we add the key and values to the router (and thus the URL) so it can be properly picked up when reloading the report. opw-4321072 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#189783 Forward-Port-Of: odoo/odoo#189560
The computation of available category was wrong when the current time was exactly midnight. This was causing runbot error on some test that was exactly executed at midnight. runbot error: 104523, 66109, 107831... Forward-Port-Of: odoo/odoo#189842
Original PR description
The computation of available category was wrong when the current time was exactly midnight. This was causing runbot error on some test that was exactly executed at midnight. runbot error: 104523, 66109, 107831... Forward-Port-Of: odoo/odoo#189842
**Problem**: In the Marketing module, when adding an image and attempting to center it, the centering action does not work because the action is not applying any style to the image. **Solution**: Use the same actions as those implemented in `web_editor` to apply the appropriate styles for centering the image: https://github.com/odoo/odoo/blob/175fdc14769e530424c3b0e364a4c3495aa499d3/addons/web_editor/views/snippets.xml#L600-L602 **Steps to reproduce**: 1. Go to *Email Marketing* and ope
Original PR description
**Problem**: In the Marketing module, when adding an image and attempting to center it, the centering action does not work because the action is not applying any style to the image. **Solution**: Use the same actions as those implemented in `web_editor` to apply the appropriate styles for centering the image: https://github.com/odoo/odoo/blob/175fdc14769e530424c3b0e364a4c3495aa499d3/addons/web_editor/views/snippets.xml#L600-L602 **Steps to reproduce**: 1. Go to *Email Marketing* and open any template. 2. Add an image and resize it. 3. Change the alignment of the image to center. 4. Observe that nothing happens and the image is not centered. opw-4348923 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#189413
Before this commit, since the addition of the dual stream feature in v17, starting the screen sharing while the blur was active or swapping from blur to unblur and back would cause a black camera screen. This commit fixes this issue by: 1) Not closing streams when removing them from a RTC session when those streams originate from the device (and not a remote session). 2) Removing the condition on the state, which was always false when attempting to recover an old stream. Forward-Port-Of
Original PR description
Before this commit, since the addition of the dual stream feature in v17, starting the screen sharing while the blur was active or swapping from blur to unblur and back would cause a black camera screen. This commit fixes this issue by: 1) Not closing streams when removing them from a RTC session when those streams originate from the device (and not a remote session). 2) Removing the condition on the state, which was always false when attempting to recover an old stream. Forward-Port-Of: odoo/odoo#189936 Forward-Port-Of: odoo/odoo#189799
This commit adds the missing neutralization necessary for the l10n_jo_edi module introduced in 18.0 in [1] and then backported to 17.0 in [2] The purpose of the standard neutralization framework is to allow us to create database copies that will not interact with external systems in ways that could impact the production database (or if it is not possible to prevent the interactions, make sure that they are benign or won't result in actual changes), or impact the customers of the operato
Original PR description
This commit adds the missing neutralization necessary for the l10n_jo_edi module introduced in 18.0 in [1] and then backported to 17.0 in [2] The purpose of the standard neutralization framework is to allow us to create database copies that will not interact with external systems in ways that could impact the production database (or if it is not possible to prevent the interactions, make sure that they are benign or won't result in actual changes), or impact the customers of the operator of the production database. This is mainly useful to allow safe support investigation on database duplicates. [1] https://github.com/odoo/odoo/pull/182983 [2] https://github.com/odoo/odoo/pull/176625 Forward-Port-Of: odoo/odoo#190069
Currently when multiple discounts are applied with loyalty rewards, the proportion applied to each line is not computed and lead to incoherant values for the next discount applied. Steps to reproduce: ------------------- * Create a promotion program rewarding 20% on the order for a minimum of 5 products * Create a promotion program rewarding 20% on a product category C1 for a minimum of 1 product * Create 2 products of 1$, one of them with the catgory C1 * Open shop session * Add 5 prod
Original PR description
Currently when multiple discounts are applied with loyalty rewards, the proportion applied to each line is not computed and lead to incoherant values for the next discount applied. Steps to…
Currently when multiple discounts are applied with loyalty rewards, the proportion applied to each line is not computed and lead to incoherant values for the next discount applied.
Steps to reproduce:
-------------------
* Create a promotion program rewarding 20% on the order for a minimum of 5 products
* Create a promotion program rewarding 20% on a product category C1 for a minimum of 1 product
* Create 2 products of 1$, one of them with the catgory C1
* Open shop session
* Add 5 products (not C1)
* Add 1 product (with C1)
> Observation: -1.2$ in discount for the 6 products and +0.08$ for the
products in category C1
Why the fix:
------------
After this fix https://github.com/odoo/odoo/commit/85047eca7c0f28e3b174ba166c0d7a1d9965b6b8 all discounts were taken into account when added to `linesToDiscount`.
Since it was now counted we had remove this part to not count the discount twice:
```python
if (lineReward.discount_mode === 'percent') {
const discount = lineReward.discount / 100;
for (const line of discountedLines) {
if (line.reward_id) {
continue;
}
if (lineReward.discount_applicability === 'cheapest') {
remainingAmountPerLine[line.cid] *= (1 - (discount / line.get_quantity()))
} else {
remainingAmountPerLine[line.cid] *= (1 - discount);
}
}
}
```
However when they were added to `linesToDiscount` the whole discount was taken into account, and not just the portion that applies on the order line.
We revert part of the previous fix but we modify the added part to only apply on rewards that have fixed amounts.
opw-4284817
Forward-Port-Of: odoo/odoo#188856
Forward-Port-Of: odoo/odoo#186775A traceback error occurs when the user uninstalls the model used in the mail template referenced in the loyalty program. To reproduce this issue: 1) Install `sale`, `stock`, and enable `loyalty` from settings 2) Create a new loyalty record from `sale/product/discount & Loyalty` 3) Set program type as `loyalty cards` and add `mail template` from `communication` 4) Open the selected mail template and change the model to the `stock lot` 5) Now uninstall the stock module and open the
Original PR description
A traceback error occurs when the user uninstalls the model used in the mail template referenced in the loyalty program. To reproduce this issue: 1) Install `sale`, `stock`, and enable `loyalty` from…
A traceback error occurs when the user uninstalls the model used in the mail template referenced in the loyalty program. To reproduce this issue: 1) Install `sale`, `stock`, and enable `loyalty` from settings 2) Create a new loyalty record from `sale/product/discount & Loyalty` 3) Set program type as `loyalty cards` and add `mail template` from `communication` 4) Open the selected mail template and change the model to the `stock lot` 5) Now uninstall the stock module and open the above loyalty record 6) From the `Loyalty Cards` stat button create a record with a partner Error:- ``` KeyError: False ``` We used the `stock lot` in the mail template. However, when the user uninstalls the `stock` module, the value of `model_id` will be set to `False` in that mail template, which leads to the traceback mentioned above from the code below. https://github.com/odoo/odoo/blob/28815810d9835772aa2fbe72339360f0771634a9/addons/mail/models/mail_template.py#L574-L575 We can resolve this issue by applying `ondelete` equals to `cascade` on `model_id` and `template_id` of the `mail_template` and the `loyalty_mail` respectively. As the model is deleted, `mail template` and `loyalty mail` must also deleted Note:- We already solved a similar type issue from this PR https://github.com/odoo/odoo/pull/180307 sentry-6088927895 Forward-Port-Of: odoo/odoo#189864
This commit removes a typo in a UserError raised when the rendering of the template fails. Fixes #186447 Forward-Port-Of: odoo/odoo#190121 Forward-Port-Of: odoo/odoo#189589
Original PR description
This commit removes a typo in a UserError raised when the rendering of the template fails. Fixes #186447 Forward-Port-Of: odoo/odoo#190121 Forward-Port-Of: odoo/odoo#189589
The tax report (KMD report) and annex to the tax report (KMD INF report) for Estonia needed to be reworked to correct errors and fix rounding issues. In this commit, the 'balance_from_tags' label is added to the tax report, allowing a better audit of the report lines. Furthermore, the tax tags are edited to differentiate between tax and base tax lines. These changes are necessary to improve auditing of the tax report lines. task-3997203 --- I confirm I have signed the CLA and read t
Original PR description
The tax report (KMD report) and annex to the tax report (KMD INF report) for Estonia needed to be reworked to correct errors and fix rounding issues. In this commit, the 'balance_from_tags' label is added to the tax report, allowing a better audit of the report lines. Furthermore, the tax tags are edited to differentiate between tax and base tax lines. These changes are necessary to improve auditing of the tax report lines. task-3997203 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#189756 Forward-Port-Of: odoo/odoo#180856
The superuser menu is only visible to admins. Task - 4260306 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#189361 Forward-Port-Of: odoo/odoo#186584
Original PR description
The superuser menu is only visible to admins. Task - 4260306 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#189361 Forward-Port-Of: odoo/odoo#186584
In some rare case, the following call:https://github.com/odoo/odoo/blob/2b15cdecfacdc777b5db1ee151012681c3760899/addons/account_peppol/models/res_partner.py#L89 fails. The call is try-catched but we didn't handle all possible requests exception, only the Connection Error. We therefore instead catch the more general RequestException that will catch all ConnectionError, Timeout, HTTPError, ... We also add a logging to help debugging. task-no Forward-Port-Of: odoo/odoo#190024
Original PR description
In some rare case, the following call:https://github.com/odoo/odoo/blob/2b15cdecfacdc777b5db1ee151012681c3760899/addons/account_peppol/models/res_partner.py#L89 fails. The call is try-catched but we didn't handle all possible requests exception, only the Connection Error. We therefore instead catch the more general RequestException that will catch all ConnectionError, Timeout, HTTPError, ... We also add a logging to help debugging. task-no Forward-Port-Of: odoo/odoo#190024
**Issue:** The discount column is not visible on Purchase Order PDF file. **Expected:** When a discount is configured, it should be displayed on the document. **Steps to reproduce:** - Activate Purchase app; - Go to Purchase > Orders > Request for Quotations; - Create a new RFQ with at least 1 product and a vendor; - Setup a discount (display the column using the options on the right of the table); - Confirm the order; - Using the action button `Print` > `Purchase order`, generate
Original PR description
**Issue:** The discount column is not visible on Purchase Order PDF file. **Expected:** When a discount is configured, it should be displayed on the document. **Steps to reproduce:** - Activate…
**Issue:** The discount column is not visible on Purchase Order PDF file. **Expected:** When a discount is configured, it should be displayed on the document. **Steps to reproduce:** - Activate Purchase app; - Go to Purchase > Orders > Request for Quotations; - Create a new RFQ with at least 1 product and a vendor; - Setup a discount (display the column using the options on the right of the table); - Confirm the order; - Using the action button `Print` > `Purchase order`, generate the PDF. **Cause:** The field isn't displayed on the template https://github.com/odoo/odoo/blob/a288317f303f8176e058d04b611064bb457534b3/addons/purchase/report/purchase_order_templates.xml#L51-L56 **Fix:** Backport the Odoo 18 fix (https://github.com/odoo/odoo/commit/6474797ee21c9547f9adb9e58bd9593870cacf6b) that adds the field to the document's XML. opw-4346390 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#189477
Versions -------- - 15.0+ Steps ----- 1. Have a task assigned to you; 2. ensure planned hours are empty; 3. plan the task partially outside working hours (e.g. 16:00 -> 21:00); 4. save. Issue ----- Planned hours are overwritten. Cause ----- Commit 52536bf8bb5 added logic to provide schedule-based start dates for tasks created in Gantt view, as well as other tasks, by overwriting the provided (default) date values. Solution -------- Check whether the provided date values
Original PR description
Versions -------- - 15.0+ Steps ----- 1. Have a task assigned to you; 2. ensure planned hours are empty; 3. plan the task partially outside working hours (e.g. 16:00 -> 21:00); 4. save. Issue ----- Planned hours are overwritten. Cause ----- Commit 52536bf8bb5 added logic to provide schedule-based start dates for tasks created in Gantt view, as well as other tasks, by overwriting the provided (default) date values. Solution -------- Check whether the provided date values are indeed defaults rather than hand-picked values. This can be done by seeing whether the time span between them is exactly 23:59:59, as the default is 00:00:00 -> 23:59:59 This way, tasks scheduled in batch or Gantt can still use schedule-based hours, while user-selected values from a daterange picker don't have to be written twice to select time slot that falls outside the assignee's schedule. opw-3947876 Forward-Port-Of: odoo/enterprise#69763 Forward-Port-Of: odoo/enterprise#65404
Following the change of account type in the community pr, some tests had to be modified. task: 4341375 Forward-Port-Of: odoo/enterprise#75198 Forward-Port-Of: odoo/enterprise#75114
Original PR description
Following the change of account type in the community pr, some tests had to be modified. task: 4341375 Forward-Port-Of: odoo/enterprise#75198 Forward-Port-Of: odoo/enterprise#75114
The tax report (KMD report) and annex to the tax report (KMD INF report) for Estonia needed to be reworked to correct errors and fix rounding issues. With this commit, the tax report: 1. Adds the balance_from_tags to allow auditing the report lines, since only aggregation was used before. 2. Fixes rounding issues by using the integer_rounding feature and adding rounding differences to the VAT closing entry. This commit also rewrites the KMD INF report. It creates one report composed of t
Original PR description
The tax report (KMD report) and annex to the tax report (KMD INF report) for Estonia needed to be reworked to correct errors and fix rounding issues. With this commit, the tax report: 1. Adds the…
The tax report (KMD report) and annex to the tax report (KMD INF report) for Estonia needed to be reworked to correct errors and fix rounding issues. With this commit, the tax report: 1. Adds the balance_from_tags to allow auditing the report lines, since only aggregation was used before. 2. Fixes rounding issues by using the integer_rounding feature and adding rounding differences to the VAT closing entry. This commit also rewrites the KMD INF report. It creates one report composed of two sections with different columns, using the custom engine to construct both parts. Part A contains information on invoices issued, grouped by move_id and id, to allow showing multiple lines per invoice when different tax rates or special tax types are in one invoice. It only includes invoices with taxable supply at 22%, 20%, 9% and 5%. It excludes invoices of partners whose Tax ID is / and foreigner partners who have a Tax ID not starting by EE. Part B contains information on invoices received, grouped by move_id. Each line showcases information about one invoice with taxable supply at 22%, 20%, 9% and 5%. It relies on a Tax ID starting with EE. The reports follow the guidelines available in https://www.emta.ee/en/business-client/taxes-and-payment/tax-returns-exchange-information/vat-return-forms-vd-and-vdp (forms valid from 01.01.2024 onwards). task-3997203 Forward-Port-Of: odoo/enterprise#75216 Forward-Port-Of: odoo/enterprise#70371
When the tour is running in single app locally, it is failing Forward-Port-Of: odoo/enterprise#74966 Forward-Port-Of: odoo/enterprise#74773
Original PR description
When the tour is running in single app locally, it is failing Forward-Port-Of: odoo/enterprise#74966 Forward-Port-Of: odoo/enterprise#74773