Friday, August 23, 2024
30 changes · saas-17.1
Resolved issues and error corrections
A test was moved into the current website project module after the old module name was retired. This helps ensure the related project portal behavior continues to be checked automatically during updates.
Original PR description
Before this commit, the 3aa8a0f commit forwards port the fix made in 16 but in 17.1, `website_form_project` has been renamed into `website_project` and the test added in `website_form_project` to check the fix made has not been moved during the forward port process. This commit moves the test in `website_project` module to make sure the test is correctly executed since the `website_form_project` module does not exist anymore.
Editing a message in Discuss no longer removes existing channel mentions. This keeps conversations accurate and prevents important groups from being unintentionally dropped when users update a message.
Original PR description
When editing a message, the mentions of the original message were lost. The reason is that the channel mentions were not stored with the message in the database. The fix is to parse the body directly before editing and get mentionedChannels from it. follow-up of task-4104895 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
The "Images Subtitles" and the "Thumbnails" mega menu templates do not look good in mobile view, depending on the size of the text written in them. Indeed, under some breakpoints, the classes force the elements to be next to each to other, to have two elements by line. So if a big word is contained in the left one, which is not rare in the German language for example, the text may overflow to the right one and overlap with it. This commit fixes this issue by adding more freedom to these mega
Original PR description
The "Images Subtitles" and the "Thumbnails" mega menu templates do not look good in mobile view, depending on the size of the text written in them. Indeed, under some breakpoints, the classes force…
The "Images Subtitles" and the "Thumbnails" mega menu templates do not look good in mobile view, depending on the size of the text written in them. Indeed, under some breakpoints, the classes force the elements to be next to each to other, to have two elements by line. So if a big word is contained in the left one, which is not rare in the German language for example, the text may overflow to the right one and overlap with it. This commit fixes this issue by adding more freedom to these mega menu templates at the problematic breakpoints, so they can be more responsive with their content, while still looking good. Step to reproduce: - In the menu editor, add a mega menu. - In edit mode, click on the mega menu. - Select the "Images Subtitles" or the "Thumbnails" template. - As a first element, write the following title: "Foto- und Fine Art Großformatdrucker". - Save and resize down the screen until it toggles the mobile view. - Open the mega menu and continue to resize down. => At some point, near the "SM" breakpoint, you will notice that the text becomes too big and overlaps the right element. opw-4096112 Forward-Port-Of: odoo/odoo#177103
Since the rule refactor, additional byproducts are not considered in the post production picking. The problem is when we add a new byproduct, the backend do not add the warehouse_id on the stock move, and without a warehouse id, it was impossible to find a stock rule for it. Now, with the correct warehouse and stock rule, the stock move is added on the transfers. Testing steps: --------------------- - go to configuration > settings > enable Multi-step routes - go to configuration > wareho
Original PR description
Since the rule refactor, additional byproducts are not considered in the post production picking. The problem is when we add a new byproduct, the backend do not add the warehouse_id on the stock…
Since the rule refactor, additional byproducts are not considered in the post production picking. The problem is when we add a new byproduct, the backend do not add the warehouse_id on the stock move, and without a warehouse id, it was impossible to find a stock rule for it. Now, with the correct warehouse and stock rule, the stock move is added on the transfers. Testing steps: --------------------- - go to configuration > settings > enable Multi-step routes - go to configuration > warehouses and enable either 2 or 3 step manufacture - go to configuration > enable byproducts - create a BOM with some components/byproducts - create a MO with the BOM above, confirm it. Now, we can see the 'transfers' button with 2 transfers, one by the components and another one for the final products and the byproducts. - add a new byproduct with some produced quantity. Problem: ------------- No picking for the new byproduct when clicking on the transfer button Expected behaviour: ------------------------------ The byproduct should be in the list task: 3982566 Forward-Port-Of: odoo/odoo#170280
# Description With the upgrade to Chart.js version 4.3, the configuration for setting legend label colors has changed. The `fontColor` key is now deprecated, and the `color` key must be used instead. This update was previously overlooked in the Odoo chart plugin. This commit resolves the issue by updating the Odoo chart plugin to correctly use the color key for setting legend label colors. Task: [4111089](https://www.odoo.com/odoo/project/2328/tasks/4111089) --- I confirm I ha
Original PR description
# Description With the upgrade to Chart.js version 4.3, the configuration for setting legend label colors has changed. The `fontColor` key is now deprecated, and the `color` key must be used instead. This update was previously overlooked in the Odoo chart plugin. This commit resolves the issue by updating the Odoo chart plugin to correctly use the color key for setting legend label colors. Task: [4111089](https://www.odoo.com/odoo/project/2328/tasks/4111089) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177420
When having a lot of forum posts, the pager can display up to 10 pages, because the specified scope is the set to the same value as the number of posts per page, which is 10. This causes layout issues in mobile view in that case, because the pager overflows from the page. This commit fixes that by setting the scope to 5 instead (like the Event pager), which is just enough to not overflow. opw-4050389 Forward-Port-Of: odoo/odoo#177436 Forward-Port-Of: odoo/odoo#177207
Original PR description
When having a lot of forum posts, the pager can display up to 10 pages, because the specified scope is the set to the same value as the number of posts per page, which is 10. This causes layout issues in mobile view in that case, because the pager overflows from the page. This commit fixes that by setting the scope to 5 instead (like the Event pager), which is just enough to not overflow. opw-4050389 Forward-Port-Of: odoo/odoo#177436 Forward-Port-Of: odoo/odoo#177207
Some spelling mistakes were forgotten in a previous pull request that meant to add constraints on carryover See https://github.com/odoo/odoo/pull/177064#pullrequestreview-2248102992 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177332
Original PR description
Some spelling mistakes were forgotten in a previous pull request that meant to add constraints on carryover See https://github.com/odoo/odoo/pull/177064#pullrequestreview-2248102992 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177332
Add text editor write mode aliases. Forward-Port-Of: odoo/odoo#176974
Original PR description
Add text editor write mode aliases. Forward-Port-Of: odoo/odoo#176974
From most openpyxl resources it is generally recommended to instantiate it as `read_only=True` or `write_only=True` in order to leverage lazy modes which do not need to eagerly load the entire file in memory. However this causes memory exhaustion issues in Odoo workers, with file preview / imports failing: apparently we have managed to generate the `res_partner.xlsx` sample file in such a way that `load_workbook(read_only=True)` is incapable of finding the end of the file, so it thinks the fi
Original PR description
From most openpyxl resources it is generally recommended to instantiate it as `read_only=True` or `write_only=True` in order to leverage lazy modes which do not need to eagerly load the entire file…
From most openpyxl resources it is generally recommended to instantiate it as `read_only=True` or `write_only=True` in order to leverage lazy modes which do not need to eagerly load the entire file in memory.
However this causes memory exhaustion issues in Odoo workers, with file preview / imports failing: apparently we have managed to generate the `res_partner.xlsx` sample file in such a way that `load_workbook(read_only=True)` is incapable of finding the end of the file, so it thinks the file goes up to the limit for the format of 1048576 rows:
$ python -c 'import openpyxl; w = openpyxl.load_workbook("odoo/addons/base/static/xls/res_partner.xlsx", data_only=True, read_only=True); print(sum(1 for _ in w.worksheets[0]))'
1048576
even though the file only has 4 rows (including the header).
This means any client which uses this file as basis to create their own export (or a method generating similarly odd / corrupted files) requires parsing on the order of 20~30 million cells to try and import the file, even though in reality they might only have a few dozens or hundreds.
As a result the import *attempt* takes several minutes (4~5 locally, maybe a bit less on beefy server) and ~1.7GB memory, and thus routinely fails if the worker has any sort of existing pressure (e.g. well filled caches) as it hits the hard memory limit (2.5G by default).
Using the "less efficient" standard mode, the ingestion takes ~1.4s and 14.5MB memory. Which is still a far cry less efficient than xlrd.xlsx was (~0.00 seconds and 120k) but at least somewhat reasonable...
The issue has been reported upstream at https://foss.heptapod.net/openpyxl/openpyxl/-/issues/2221
Forward-Port-Of: odoo/odoo#177586Problem --------- With commit c1ea29ea79ad074aae750d26496fc6ce22cffb54, we fixed the following problem: when reversing an invoice, the current company is used as recipient bank and not the customer's one. However, that fix did only took into concideration reversing invoices and not bills. This commit is here to fix that. When reversing a BILL (in_invoice), we use the company's bank. When reversing an INVOICE (out_invoice), we use the commercial partner's bank. opw-4035448 --- I
Original PR description
Problem --------- With commit c1ea29ea79ad074aae750d26496fc6ce22cffb54, we fixed the following problem: when reversing an invoice, the current company is used as recipient bank and not the customer's one. However, that fix did only took into concideration reversing invoices and not bills. This commit is here to fix that. When reversing a BILL (in_invoice), we use the company's bank. When reversing an INVOICE (out_invoice), we use the commercial partner's bank. opw-4035448 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177023
Refactoring method _check_peppol_endpoint_number and _sanitize_peppol_endpoint. Added sanitization for current supported EAS. This refactoring will make it easier to add support for more EAS. Refactoring to solve issues with wrong handling of Peppol ID and make it easier to add better support for more EAS without large modifications. This will also make the code easier to support in the future. Original Discussion: https://github.com/odoo/odoo/pull/176109#issuecomment-2286587053 Forward
Original PR description
Refactoring method _check_peppol_endpoint_number and _sanitize_peppol_endpoint. Added sanitization for current supported EAS. This refactoring will make it easier to add support for more EAS. Refactoring to solve issues with wrong handling of Peppol ID and make it easier to add better support for more EAS without large modifications. This will also make the code easier to support in the future. Original Discussion: https://github.com/odoo/odoo/pull/176109#issuecomment-2286587053 Forward-Port-Of: odoo/odoo#176651
### Steps to reproduce: - Install Inventory module - Create a move from any operation - Save this move and keep the reference > Change the operation type and save again - Navigate to Moves History - Search for the move with the old reference ### Current behavior before PR: The move will be shown in the moves history with the old reference. This is happening because when changing the opertaion type it doesn't trigger the compute of the reference. https://github.com/odoo/odoo/blob/17
Original PR description
### Steps to reproduce: - Install Inventory module - Create a move from any operation - Save this move and keep the reference > Change the operation type and save again - Navigate to Moves History - Search for the move with the old reference ### Current behavior before PR: The move will be shown in the moves history with the old reference. This is happening because when changing the opertaion type it doesn't trigger the compute of the reference. https://github.com/odoo/odoo/blob/17.0/addons/stock/models/stock_move.py#L265 ### Desired behavior after PR is merged: We added the picking_id.name as a dependant field for the reference so when it is changed the computation method of the reference will be triggered to update the reference. opw-4062591 Forward-Port-Of: odoo/odoo#174398
This PR addresses issues with the custom amount selection on the `/donation/pay` page, which has been present since version 15.0. Users have experienced confusion about the actual donation amount due to the following bugs: **Bug 1:** Multiple amounts could be selected simultaneously, affecting versions 17+. **Bug 2:** The last selected amount was not the actual amount donated, affecting all versions from 15 onwards. **Fixes:** - This PR fixes Bug 1,2 in version 17.0+. - During the for
Original PR description
This PR addresses issues with the custom amount selection on the `/donation/pay` page, which has been present since version 15.0. Users have experienced confusion about the actual donation amount due to the following bugs: **Bug 1:** Multiple amounts could be selected simultaneously, affecting versions 17+. **Bug 2:** The last selected amount was not the actual amount donated, affecting all versions from 15 onwards. **Fixes:** - This PR fixes Bug 1,2 in version 17.0+. - During the forward-port to master the patch will be removed task-4115678 Forward-Port-Of: odoo/odoo#177270 Forward-Port-Of: odoo/odoo#176722
Example of steps: - install `inventory` - Open a transfer/receipts - add a product - validate it - click on return - there is a modal with the product - double click quickly on remove button - click return - traceback ``` psycopg2.errors.InvalidTextRepresentation: invalid input syntax for type integer: "virtual_12" LINE 1: ...ETE FROM "stock_return_picking_line" WHERE id IN ('virtual_1...
Original PR description
Example of steps: - install `inventory` - Open a transfer/receipts - add a product - validate it - click on return - there is a modal with the product - double click quickly on remove button - click…
Example of steps:
- install `inventory`
- Open a transfer/receipts
- add a product
- validate it
- click on return
- there is a modal with the product
- double click quickly on remove button
- click return
- traceback
```
psycopg2.errors.InvalidTextRepresentation: invalid input syntax for type integer: "virtual_12"
LINE 1: ...ETE FROM "stock_return_picking_line" WHERE id IN ('virtual_1...
^
```
When this modal is opened, a `one2many` is built with “virtual” records,
which are the products selected in the transfer.
These records are virtual because we don't know which ones the customer
will keep - we'll only know for sure when he clicks on “Return”.
So, when this o2m is loaded, the setup of the Record class populates it.
A first call to the `_applyCommands` function is made with a command to
create a record (product) (command 0/CREATE).
Once the o2m has been loaded, the customer (who quickly clicks to remove
several products) ends up at some point double-clicking on the remove
button of the same product will trigger two consecutive calls to `_applyCommands`.
The first call (which is the correct call)
will have the command: `[2, “virtual_12”]` which is a `DELETE`.
But as we've already asked to create the same “virtual_12” record,
we are here:
https://github.com/odoo/odoo/blob/7caddbb653aa8235725b48ff9f28d6119fdc3567/addons/web/static/src/model/relational_model/static_list.js#L580-L585
Here, given that we have a delete `virtual_12` command and that just before
the setup we asked to create `virtual_12`, this condition will just remove
the command that creates `virtual_12` to simplify the operation without
creating a `DELETE` command.
So instead of creating it and then deleting it, we just don't create it.
The problem arises with the second click, which triggers exactly the same
call to `_applyCommands`, asking to delete `virtual_12`.
As this time we don't have any more “record creation” pending, we'll
enter here
https://github.com/odoo/odoo/blob/7caddbb653aa8235725b48ff9f28d6119fdc3567/addons/web/static/src/model/relational_model/static_list.js#L583-L585
The second click will ask you to delete a record that never existed in
the `web_save`... so that's what the python server don't like!
To correct the problem, I apply a variable to the button in the dom,
which I set to true when the first click occurs, and which I check on
the second click to ignore it.
opw-[4043992](https://www.odoo.com/web#id=4043992&view_type=form&model=project.task)
Forward-Port-Of: odoo/odoo#173481Following introduction of the new relational model in 8723f020c358, when an onchange is triggered from a field of a one2many, we were only sending parent's fields that are editable. This cause some issue when the user first trigger a change in the parent record that update some readonly fields (ex. computed fields), then trigger an onchange from one of the one2many fields; in that scenario the onchange will miss the updated readonly fields values from the parent; this can lead to wrong comp
Original PR description
Following introduction of the new relational model in 8723f020c358, when an onchange is triggered from a field of a one2many, we were only sending parent's fields that are editable. This cause some issue when the user first trigger a change in the parent record that update some readonly fields (ex. computed fields), then trigger an onchange from one of the one2many fields; in that scenario the onchange will miss the updated readonly fields values from the parent; this can lead to wrong computation of the onchange result. This commit send the values from parent readonly fields that have been modified (and with this align with server-side implementation behavior from `odoo.tests.form.Form`) opw-3941571 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177399
### Steps to reproduce: - Enable multi-steps route in the settings - Go to Inventory > Reporting > Locations - Group the records by "product" #### > the On hand quantity is only displayed on the records of each group ### Cause of the issue: The `inventory_quantity_auto_apply` field of the `stock.quant` model is a non-stored computed fields. As such, even if this line: https://github.com/odoo/odoo/blob/7a80215435f98a771065ba41310ac643aeffdaf5/addons/stock/views/stock_quant_views.xml
Original PR description
### Steps to reproduce: - Enable multi-steps route in the settings - Go to Inventory > Reporting > Locations - Group the records by "product" #### > the On hand quantity is only displayed on the…
### Steps to reproduce: - Enable multi-steps route in the settings - Go to Inventory > Reporting > Locations - Group the records by "product" #### > the On hand quantity is only displayed on the records of each group ### Cause of the issue: The `inventory_quantity_auto_apply` field of the `stock.quant` model is a non-stored computed fields. As such, even if this line: https://github.com/odoo/odoo/blob/7a80215435f98a771065ba41310ac643aeffdaf5/addons/stock/views/stock_quant_views.xml#L147 tries to add its sum to the list view of quants, the `inventory_quantity_auto_apply:sum` will not be present in the `fields` of the `read_group` nor will be added to the `aggregates` of the `_read_group` by these lines: https://github.com/odoo/odoo/blob/7a80215435f98a771065ba41310ac643aeffdaf5/odoo/models.py#L2711-L2713 Prior to 17.0, this `inventory field` was rather treated by an override of the `read_group` in the `stock_quant` model. https://github.com/odoo/odoo/blob/3d3155e94ec886e2fdc9a635c4732e8e56179db1/addons/stock/models/stock_quant.py#L309-L312 In 17.0, in commit 687d0ed, this override was replaced by an override of the `_read_group_select` which, to work properly, expects the `inventory_quantity_auto_apply:sum` to appear in the aggregates of the `_read_group` to be called by the `_read_group_select`. Since issue appears, because it is not the case. ### Note: The issue is only reproducible in 17.0 and saas-17.1 since after saas-17.2 (included), the `inventory_quantity_auto_apply:sum` will appear in the fields of the the `read_group` and hence in the aggregates of the `_read_group`. opw-4073708 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#176181
Set up email alias for Vendor Bill journal Send email with xls attachment to alias Bill is created Issue: No attachment is present This occurs because after https://github.com/odoo/odoo/commit/9b735f7597d75412a8ea6c4e541b05eb8849bd9c the system will not add binary attachments to the created bill The change was meant to filter out rogue images often present in emails but it is too restrictive so this commit add a second check with the mimetype of the parsed attachment in order to keep u
Original PR description
Set up email alias for Vendor Bill journal Send email with xls attachment to alias Bill is created Issue: No attachment is present This occurs because after https://github.com/odoo/odoo/commit/9b735f7597d75412a8ea6c4e541b05eb8849bd9c the system will not add binary attachments to the created bill The change was meant to filter out rogue images often present in emails but it is too restrictive so this commit add a second check with the mimetype of the parsed attachment in order to keep useful attachments opw-4092311 Forward-Port-Of: odoo/odoo#176004
Currently, receipts are not take into account when generating the VAT Record books ### Steps to reproduce * install `l10n_es_reports` * switch to a Spanish company * enable sales (or purchase) receipts in the settings * create and confirm a sales receipt * open the generic tax report * select the dates for the receipt. * attempt to generate the VAT Record books You will be met with a traceback. ### Fix Include receipts and treat them as invoices. (confirmed with JCO) opw-
Original PR description
Currently, receipts are not take into account when generating the VAT Record books ### Steps to reproduce * install `l10n_es_reports` * switch to a Spanish company * enable sales (or purchase) receipts in the settings * create and confirm a sales receipt * open the generic tax report * select the dates for the receipt. * attempt to generate the VAT Record books You will be met with a traceback. ### Fix Include receipts and treat them as invoices. (confirmed with JCO) opw-4053187 Enterprise PR: odoo/enterprise#67621 Forward-Port-Of: odoo/odoo#175002
Issue: the reserved quantity appearing on the SOL wizard is not well behaved with respect to 2+ steps deliveries. ### Steps to reproduce: - Enable Multi-step routes in the settings - Inventory > Configuration > Warehouse Management > Warehouses - Enable delivery in 2 steps - Create a storable product and put 1 unit in stock - Create and confirm an SO for 1 unit - Click on the chart icon next to the delivered qty #### > the reserved qty is 0 + "No future availability" even though 1
Original PR description
Issue: the reserved quantity appearing on the SOL wizard is not well behaved with respect to 2+ steps deliveries. ### Steps to reproduce: - Enable Multi-step routes in the settings - Inventory >…
Issue: the reserved quantity appearing on the SOL wizard is not well behaved with respect to 2+ steps deliveries. ### Steps to reproduce: - Enable Multi-step routes in the settings - Inventory > Configuration > Warehouse Management > Warehouses - Enable delivery in 2 steps - Create a storable product and put 1 unit in stock - Create and confirm an SO for 1 unit - Click on the chart icon next to the delivered qty #### > the reserved qty is 0 + "No future availability" even though 1 unit is reserved from stock ### Cause of the issue: The reserved qty displayed on the next to the delivered qty on the SOL is the `qty_available_today` computed field of the SOL model. This field is computed by summing the qties of the stock moves linked to the SOL: https://github.com/odoo/odoo/blob/817186b7b896c9a415bd947baf189bf7f1bde321/addons/sale_stock/models/sale_order_line.py#L69 https://github.com/odoo/odoo/blob/817186b7b896c9a415bd947baf189bf7f1bde321/addons/sale_stock/models/sale_order_line.py#L80-L81 However, when you are not delivering in 1 step, the only delivery move linked to the SOL will be the move which destination is the customer location. To be more precise, confirming the SO in a delivery in two steps a stock move from the Output to the customer will be created and linked to the SOL. During the action confirm of this move a procurement will be run to generate a move from stock to the Output but the SOL will not be referenced anymore so that the SOL will not be linked to it. ### Note: The behavior is different in saas-17.2 where each of the delivering move is linked to the SOL so that the probably need to be adapted. opw-3981935 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#176891 Forward-Port-Of: odoo/odoo#176756
The aim of this commit is to ensure we always have a company from which to pull values. Context: On odoo.com, we have only one website but when users buy something on our website, we create the so, the payment and the invoice with the company which is in the country of the user. This results in a situation in which the user initiating the question Before this commit: It was possible to not have a company there, leading to inconsistencies later on when relying on company to get some valu
Original PR description
The aim of this commit is to ensure we always have a company from which to pull values. Context: On odoo.com, we have only one website but when users buy something on our website, we create the so,…
The aim of this commit is to ensure we always have a company from which to pull values. Context: On odoo.com, we have only one website but when users buy something on our website, we create the so, the payment and the invoice with the company which is in the country of the user. This results in a situation in which the user initiating the question Before this commit: It was possible to not have a company there, leading to inconsistencies later on when relying on company to get some values like `tax_calculation_rounding_method`. For odoo.com, it resulted in a 0.01€ discrepancie between the sale order and its invoice. As the payment transaction was made based on the sale order amount, the invoice remained unpaid forcing the accountants to manually write off the difference. After this commit: There is always a default company provided ensuring taxes gets computed correctly and thus having sale order and invoice having the same amount. Special thanks to PMO for his HUGE help debugging this madness. task-id: None (issue spotted on odoo.com) Forward-Port-Of: odoo/odoo#177618
Before this PR, the `receive notifications from a channel` test was sometimes failing. This test waits for the channel to be registered before sending the notification. This flow has many async points: - bus service to worker to start it - bus service to worker to initialize it - worker to bus service to acknowledge the initialization - bus service to worker to add the channel The `waitUntilSubscribe` helper waits up to 500ms, but when runbot is heavily used, it can take a bit longer. Thi
Original PR description
Before this PR, the `receive notifications from a channel` test was sometimes failing. This test waits for the channel to be registered before sending the notification. This flow has many async points: - bus service to worker to start it - bus service to worker to initialize it - worker to bus service to acknowledge the initialization - bus service to worker to add the channel The `waitUntilSubscribe` helper waits up to 500ms, but when runbot is heavily used, it can take a bit longer. This PR increases the delay to ensure the flow can complete within the given time. runbot-75076 Forward-Port-Of: odoo/odoo#177530
Updates the tax label and description translations in order to better fit the market. Task id # 4069669 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#176258
Original PR description
Updates the tax label and description translations in order to better fit the market. Task id # 4069669 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#176258
Steps to reproduce: - Helpdesk > Configuration > Helpdesk teams - Create teams until you have more help teams than sales teams - Create a ticket for the last team - Gear icon > Convert to lead - MissingError on team_id This happens because the context has default_team_id = self.id, despite these ids not being related in any way. Since this error completely blocks access to the feature we need to ensure that either the default exists or we don't pass one at all. opw-4119383 Forward-Po
Original PR description
Steps to reproduce: - Helpdesk > Configuration > Helpdesk teams - Create teams until you have more help teams than sales teams - Create a ticket for the last team - Gear icon > Convert to lead - MissingError on team_id This happens because the context has default_team_id = self.id, despite these ids not being related in any way. Since this error completely blocks access to the feature we need to ensure that either the default exists or we don't pass one at all. opw-4119383 Forward-Port-Of: odoo/enterprise#68587
## Analysis Since a recent commit (https://github.com/odoo/enterprise/commit/25f72c0b716d5fdc15493b74375106e3d6f580fa), the operation_note is fetched independently from the other fields to avoid performance issues. This causes issues as, when computing data context (e.g. during `onChange`), we assume that all fields in data are available in config: ``` _computeDataContext() { ... const data = toRaw(this.data); for (const fieldName in data) { const value = data
Original PR description
## Analysis Since a recent commit (https://github.com/odoo/enterprise/commit/25f72c0b716d5fdc15493b74375106e3d6f580fa), the operation_note is fetched independently from the other fields to avoid…
## Analysis
Since a recent commit (https://github.com/odoo/enterprise/commit/25f72c0b716d5fdc15493b74375106e3d6f580fa), the operation_note is fetched independently from the other fields to avoid performance issues.
This causes issues as, when computing data context (e.g. during `onChange`), we assume that all fields in data are available in config:
```
_computeDataContext() {
...
const data = toRaw(this.data);
for (const fieldName in data) {
const value = data[fieldName];
const field = this.fields[fieldName]; // field == undefined
if (field.relatedPropertyField) { // traceback
continue;
}
...
}
```
## Steps to reproduce
- Create a product "TEST"
- Create a BoM For product "TEST", with a new product "TEST Component".
- Add 1 Operation OP1 (keep default value), set a description
- Add 1 step to OP1, with type "Register Production"
- Create MO for "TEST", Confirm, Plan,
- Start operation OP1
- On ShopFloor, go to MO, select workcenter, open step
- Update quantity: Error
## Solution
We make a way for manually fetched fields (most probably, all HTML fields which can contain base64 images) and add it to the fields to avoid them being undefined and causing tracebacks.
## References
opw-4103712
--
I confirm I have signed the CLA and read the PR guidelines at [www.odoo.com/submit-pr](http://www.odoo.com/submit-pr)
Forward-Port-Of: odoo/enterprise#68497If longpolling fails, it displays a fail popup with help messages. We added a `fallback` parameter allowing to prevent this popup from displaying if we want to fallback on other methods (e.g. websocket). Forward-Port-Of: odoo/enterprise#68719
Original PR description
If longpolling fails, it displays a fail popup with help messages. We added a `fallback` parameter allowing to prevent this popup from displaying if we want to fallback on other methods (e.g. websocket). Forward-Port-Of: odoo/enterprise#68719
Accounting > Configuration > Followup Levels Open the first level, enable 'Auto Execute' Delete the remaining follow up levels Create an invoice for a partner dated in the past with payment terms 'Immediate Payment' Run manually the cron 'Account Report Followup; Execute followup' Issue: partner will be processed by the cron, a warning will be logged but the partner next remainder date has not changed, so the next day the partner will be processed again. It is an issue when partner st
Original PR description
Accounting > Configuration > Followup Levels Open the first level, enable 'Auto Execute' Delete the remaining follow up levels Create an invoice for a partner dated in the past with payment terms 'Immediate Payment' Run manually the cron 'Account Report Followup; Execute followup' Issue: partner will be processed by the cron, a warning will be logged but the partner next remainder date has not changed, so the next day the partner will be processed again. It is an issue when partner starts to accumulate as all the partner with missing info will be processed daily without further notice This commit introduce the following mitigations for the issue: - Update the next remainder date even if no message has been sent - Limit the number of partner we process per run to 1000 - Add a message to the partner record in case the followup action failed opw-3935084 Forward-Port-Of: odoo/enterprise#68615 Forward-Port-Of: odoo/enterprise#66770
Currently, receipts are not take into account when generating the VAT Record books ### Steps to reproduce * install `l10n_es_reports` * switch to a Spanish company * enable sales (or purchase) receipts in the settings * create and confirm a sales receipt * open the generic tax report * select the dates for the receipt. * attempt to generate the VAT Record books You will be met with a traceback. ### Fix Include receipts and treat them as invoices. (confirmed with JCO) opw-
Original PR description
Currently, receipts are not take into account when generating the VAT Record books ### Steps to reproduce * install `l10n_es_reports` * switch to a Spanish company * enable sales (or purchase) receipts in the settings * create and confirm a sales receipt * open the generic tax report * select the dates for the receipt. * attempt to generate the VAT Record books You will be met with a traceback. ### Fix Include receipts and treat them as invoices. (confirmed with JCO) opw-4053187 Comunity PR: odoo/odoo#175002 Forward-Port-Of: odoo/enterprise#67621
Add a new module that supports printing to the Philippine check format Task id # 3576570 Forward-Port-Of: odoo/enterprise#56117
Original PR description
Add a new module that supports printing to the Philippine check format Task id # 3576570 Forward-Port-Of: odoo/enterprise#56117
If you were born after 2000 your insz number wouldn't be recognized as valid. Steps to reproduce: ------------------- * Install pos_blackbox_be module and HR module * Create an employee with a birth date set after 2000 * Generate an insz number for a person born after 2000 https://www.rsolution.be/rijksregister-nummer-generator.RSolution * Set the number on the employee and remove all `.` and `-` > Observation: When saving the insz wouldn't be recognized as valid Why the fix: ------
Original PR description
If you were born after 2000 your insz number wouldn't be recognized as valid. Steps to reproduce: ------------------- * Install pos_blackbox_be module and HR module * Create an employee with a birth date set after 2000 * Generate an insz number for a person born after 2000 https://www.rsolution.be/rijksregister-nummer-generator.RSolution * Set the number on the employee and remove all `.` and `-` > Observation: When saving the insz wouldn't be recognized as valid Why the fix: ------------ When trying to validate a insz number for a person born after 2000, the calculation is a bit different. You need to add a `2` before `partial_number` to make it work. Explanation can be found on wikipedia here: https://fr.wikipedia.org/wiki/Num%C3%A9ro_de_registre_national opw-4077545 Forward-Port-Of: odoo/enterprise#68723
**Steps to reproduce:** - Install Accounting and l10n_co - Switch to a Colombian company (e.g. CO Company) - Create a bill with a line having an IVA tax and a withholding tax: * IVA Compra 19% * RteIVA 15% sobre el 19% IVA - Post the bill - Create another bill with a line having only an IVA tax - Post the bill - Go to "Accounting / Reporting / Colombian Statements / Certificado de Retención en IVA" **Issue:** "Monto del Pago Sujeto Retención" column is incorrect. It takes into a
Original PR description
**Steps to reproduce:** - Install Accounting and l10n_co - Switch to a Colombian company (e.g. CO Company) - Create a bill with a line having an IVA tax and a withholding tax: * IVA Compra 19% *…
**Steps to reproduce:** - Install Accounting and l10n_co - Switch to a Colombian company (e.g. CO Company) - Create a bill with a line having an IVA tax and a withholding tax: * IVA Compra 19% * RteIVA 15% sobre el 19% IVA - Post the bill - Create another bill with a line having only an IVA tax - Post the bill - Go to "Accounting / Reporting / Colombian Statements / Certificado de Retención en IVA" **Issue:** "Monto del Pago Sujeto Retención" column is incorrect. It takes into account the tax amount from the IVA tax of both bills. As there is no withholding tax on the second bill, it should be excluded from the report. **Cause:** The report is checking the tax lines where the account is "2408%%" to compute the amount of this column. So every tax lines with from an IVA tax will be taken into account, even if there is no wihholding tax. **Solution:** Computing the correct amount by checking the account and the presence of a withholding tax is pretty complex. It would require to rely on the invoice lines instead of the tax lines to recompute the tax amounts because the amount of a specific tax is aggregated into a unique tax line (even if there are several invoice lines with different taxes combination) and there is no information about the tax repartition in the tax line. Recomputing all from the invoice lines would bad for the performance. As the withholding taxes are always 15% over VAT in Colombian localization, we can simply apply this formula to retrieve the amount subjected to withholding: [Monto del Pago Sujeto Retención = Retenido Consignado / 15%] opw-3989661 Forward-Port-Of: odoo/enterprise#68724 Forward-Port-Of: odoo/enterprise#68016