Wednesday, September 11, 2024
24 changes · saas-17.2
Resolved issues and error corrections
Fixed a display issue where some parts of the spreadsheet comment thread popover could still appear with dark-mode styling. This keeps comments visually consistent and easier to read for users working in spreadsheets.
Original PR description
We overwrite the CSS of the thread popover to prevent it from being displayed in dark mode, but we missed the CSS of some elements. Task: [4111072](https://www.odoo.com/web#id=4111072&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form)
Kitchen receipts in Point of Sale now handle very long product names without text overlapping other lines. This keeps order preparation tickets readable for restaurant staff and reduces confusion in the kitchen.
Original PR description
When printing order changes that contains a product with a really long name, the product name would overlap on the kitchen receipt. Steps to reproduce: ------------------- * Modify the name of a product so that it is really long * Setup a kitchen printer on a PoS restaurant * Add some product on an order and send the order in preparation > Observation: The kitchen receipt has overlapping lines Why the fix: ------------ We make sure to hide the overflowing text so that it is not overlapping on other lines. opw-4136775 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
Since 4dfb9259762de we tokenize subscription payment when amount is sufficient, in some case that test was not true because the sum of order's recurring line was greater by an epsilon. This commit compare the two amounts relative the order's currency (rounding). opw-4176380 opw-4162841 opw-4117553 opw-4152609 Forward-Port-Of: odoo/enterprise#69808
Original PR description
Since 4dfb9259762de we tokenize subscription payment when amount is sufficient, in some case that test was not true because the sum of order's recurring line was greater by an epsilon. This commit compare the two amounts relative the order's currency (rounding). opw-4176380 opw-4162841 opw-4117553 opw-4152609 Forward-Port-Of: odoo/enterprise#69808
When there is no article to load, the form view creates a virtual record and saves it when the user closes the page or reloads it. To avoid creating empty articles, we will trigger an urgent save only if the record is dirty. Steps to reproduce the issue: 1. Delete all articles from the database 2. Open the Knowledge editor (you should see the no-content helper) 3. Reload the page (F5) => The system creates a new "Untitled" article (see the list view). TO BE: The system should not cre
Original PR description
When there is no article to load, the form view creates a virtual record and saves it when the user closes the page or reloads it. To avoid creating empty articles, we will trigger an urgent save only if the record is dirty. Steps to reproduce the issue: 1. Delete all articles from the database 2. Open the Knowledge editor (you should see the no-content helper) 3. Reload the page (F5) => The system creates a new "Untitled" article (see the list view). TO BE: The system should not create any article when reloading the view. task-4167335 Forward-Port-Of: odoo/enterprise#69560
Before this commit, assignment emails are sent when an account.move is created with a different user_id than the current one. For subscriptions it can send thousands of email depending on the database size. The user_id on the account.move is the same salesperson than the one in charge of the sale.order. It helps the consistency of communication between the customer and the company. taskid: 4096474 Forward-Port-Of: odoo/enterprise#68752
Original PR description
Before this commit, assignment emails are sent when an account.move is created with a different user_id than the current one. For subscriptions it can send thousands of email depending on the database size. The user_id on the account.move is the same salesperson than the one in charge of the sale.order. It helps the consistency of communication between the customer and the company. taskid: 4096474 Forward-Port-Of: odoo/enterprise#68752
…nvoice Before this commit, subscriptions automatic invoices are skipped when the flag pending transactions is set. it is correct to avoid double payment for the same period but there is a problem if the flag stays while the subscription has been renewed since. This commit aimes to remove that flag when an invoice is posted for this subscruption. taskid: 4107185 Forward-Port-Of: odoo/enterprise#68713
Original PR description
…nvoice Before this commit, subscriptions automatic invoices are skipped when the flag pending transactions is set. it is correct to avoid double payment for the same period but there is a problem if the flag stays while the subscription has been renewed since. This commit aimes to remove that flag when an invoice is posted for this subscruption. taskid: 4107185 Forward-Port-Of: odoo/enterprise#68713
This commit adds the possibility to disable the month or quarter granularity (or both) for fixedPeriod date filters. Task: [3887844](https://www.odoo.com/web#id=3887844&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) Forward-Port-Of: odoo/enterprise#69350 Forward-Port-Of: odoo/enterprise#64964
Original PR description
This commit adds the possibility to disable the month or quarter granularity (or both) for fixedPeriod date filters. Task: [3887844](https://www.odoo.com/web#id=3887844&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) Forward-Port-Of: odoo/enterprise#69350 Forward-Port-Of: odoo/enterprise#64964
[This commit] added in a new Carta Porte 3.0 PDF for Mexico in version saas-17.3 that inherits from the standard delivery slip, by removing all the tables related to the products etc. (for security reasons: the driver doesn't need to know what's in the cargo) and adding in some new required fields. This commit backports the report from saas-17.3 with the following changes: - We improved the layout a bit to make the report even clearer. - We corrected the "Num Reg ID Trib" and "Residencia Fi
Original PR description
[This commit] added in a new Carta Porte 3.0 PDF for Mexico in version saas-17.3 that inherits from the standard delivery slip, by removing all the tables related to the products etc. (for security…
[This commit] added in a new Carta Porte 3.0 PDF for Mexico in version saas-17.3 that inherits from the standard delivery slip, by removing all the tables related to the products etc. (for security reasons: the driver doesn't need to know what's in the cargo) and adding in some new required fields. This commit backports the report from saas-17.3 with the following changes: - We improved the layout a bit to make the report even clearer. - We corrected the "Num Reg ID Trib" and "Residencia Fiscal" of the "Figura"'s to use the right value and show them per figura. We also fixed a bug introduced by [this fw-port] to saas-17.2. The added `RegimenesAduaneros` were still using the namespace `cartaporte20`, while everything is saas-17.2 was already changed to `cartaporte30`. Hence the namespace did not get updated to `cartaporte31` and the validation of the CFDI failed. These changes will be forward-ported again to the upper versions. [This commit]: https://github.com/odoo/enterprise/commit/af14612ec5942acdc06584ec8ff9d8bf26998ae7 [this fw-port]: https://github.com/odoo/enterprise/commit/659f491423ee0680b103bd4dfe483dae67deb03e task-3990042 Forward-Port-Of: odoo/enterprise#68059 Forward-Port-Of: odoo/enterprise#65337
Before this commit, in studio, the editorMenu was not updated when clicking on a different tab (views, automations etc...) After this commit, the menu is updated. Forward-Port-Of: odoo/enterprise#69795
Original PR description
Before this commit, in studio, the editorMenu was not updated when clicking on a different tab (views, automations etc...) After this commit, the menu is updated. Forward-Port-Of: odoo/enterprise#69795
eBay recently changed the URL they send in the viewitemURL. We found 3 different ways they send it, but there might be more. And the new ones can only be matched to the product template, not variant. We shouldn't have relied on this URL to match products in the beginning, but we can't refactor this flow in stable, instead, we fallback on the name of the variant, as it was created from eBay. opw-3934127 Forward-Port-Of: odoo/enterprise#69152
Original PR description
eBay recently changed the URL they send in the viewitemURL. We found 3 different ways they send it, but there might be more. And the new ones can only be matched to the product template, not variant. We shouldn't have relied on this URL to match products in the beginning, but we can't refactor this flow in stable, instead, we fallback on the name of the variant, as it was created from eBay. opw-3934127 Forward-Port-Of: odoo/enterprise#69152
no task Forward-Port-Of: odoo/enterprise#69643
Original PR description
no task Forward-Port-Of: odoo/enterprise#69643
Currently, an exception is generated when the user tries to open the "Cash Flow Statement" report. Steps to produce an error: - install 'Accounting Reports' - Open Accounting > Configuration > Accounting > Journals - Now delete all journals except "Miscellaneous Operations" - change type of "Miscellaneous Operations" to sales > sale - Click Reporting > click "Cash Flow Statement" >>> exception occurs Stack Trace: ``` SyntaxError: syntax error at or near ")" LINE 28: ...
Original PR description
Currently, an exception is generated when the user tries to open the "Cash Flow Statement" report. Steps to produce an error: - install 'Accounting Reports' - Open Accounting > Configuration >…
Currently, an exception is generated when the user tries to open the "Cash Flow Statement" report.
Steps to produce an error:
- install 'Accounting Reports'
- Open Accounting > Configuration > Accounting > Journals
- Now delete all journals except "Miscellaneous Operations"
- change type of "Miscellaneous Operations" to sales > sale
- Click Reporting > click "Cash Flow Statement" >>> exception occurs
Stack Trace:
```
SyntaxError: syntax error at or near ")"
LINE 28: ... AND account_move_line.account_id NOT IN ((), ())
^
File "odoo/http.py", line 2373, in __call__
response = request._serve_db()
File "odoo/http.py", line 1903, in _serve_db
return self._transactioning(
File "odoo/http.py", line 1966, 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 1933, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2177, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 223, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 754, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 35, in call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 459, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "home/odoo/src/enterprise/saas-17.4/account_reports/models/account_report.py", line 4872, in get_report_information
'lines': self._get_lines(options, all_column_groups_expression_totals=all_column_groups_expression_totals, warnings=warnings),
File "home/odoo/src/enterprise/saas-17.4/account_reports/models/account_report.py", line 2275, in _get_lines
dynamic_lines = self._get_dynamic_lines(options, all_column_groups_expression_totals, warnings=warnings)
File "home/odoo/src/enterprise/saas-17.4/account_reports/models/account_report.py", line 2705, in _get_dynamic_lines
rslt = self.env[self.custom_handler_model_name]._dynamic_lines_generator(self, options, all_column_groups_expression_totals, warnings=warnings)
File "home/odoo/src/enterprise/saas-17.4/account_reports/models/account_cash_flow_report.py", line 16, in _dynamic_lines_generator
report_data = self._get_report_data(report, options, layout_data)
File "home/odoo/src/enterprise/saas-17.4/account_reports/models/account_cash_flow_report.py", line 57, in _get_report_data
for aml_groupby_account in self._get_liquidity_moves(report, options, currency_table_query, payment_account_ids, cashflow_tag_ids):
File "home/odoo/src/enterprise/saas-17.4/account_reports/models/account_cash_flow_report.py", line 365, in _get_liquidity_moves
self._cr.execute(SQL(' UNION ALL ').join(queries))
File "odoo/sql_db.py", line 347, in execute
res = self._obj.execute(query, params)
```
This is because at the time of query building for getting liquidity moves, it gets an empty tuple from line [1] as we do not have any journals with the type 'bank', 'cash', or 'general'.
This commit will fix the above issue by returning empty report_data when payment_account_ids is empty.
[1] - https://github.com/odoo/enterprise/blob/8fa01948610809d191b75260772782e25ea3a737/account_reports/models/account_cash_flow_report.py#L195
sentry-5555757610
Forward-Port-Of: odoo/enterprise#67928…g from it How to reproduce: - Install documents_hr - Open Employee -> "Abigail Peterson" -> stats button Documents - Upload a file The document is not linked to the employee record "Abigail Peterson". With this fix, it is and you can see it in the inspector of that document: "Employee Abigail Peterson" Task-4122377 Forward-Port-Of: odoo/enterprise#68959 Forward-Port-Of: odoo/enterprise#68541
Original PR description
…g from it How to reproduce: - Install documents_hr - Open Employee -> "Abigail Peterson" -> stats button Documents - Upload a file The document is not linked to the employee record "Abigail Peterson". With this fix, it is and you can see it in the inspector of that document: "Employee Abigail Peterson" Task-4122377 Forward-Port-Of: odoo/enterprise#68959 Forward-Port-Of: odoo/enterprise#68541
This commit fix a design issue in the hr_payroll where the "Availability in Structure" field was incorrectly positioned among other input types. task-4050183 Forward-Port-Of: odoo/enterprise#69761 Forward-Port-Of: odoo/enterprise#67532
Original PR description
This commit fix a design issue in the hr_payroll where the "Availability in Structure" field was incorrectly positioned among other input types. task-4050183 Forward-Port-Of: odoo/enterprise#69761 Forward-Port-Of: odoo/enterprise#67532
In this commit: =================== If the customer is not loaded, you can find them in the backend by barcode now. Task - 4074907 Forward-Port-Of: odoo/odoo#177576
Original PR description
In this commit: =================== If the customer is not loaded, you can find them in the backend by barcode now. Task - 4074907 Forward-Port-Of: odoo/odoo#177576
### Steps to reproduce issue: 1. Create new Expense 2. Give a positive Total Amount, add a Tax and Save 3. Set Total Amount to 0 4. Tax Amount did not nullify 5. In the List view, Total Amount still has the previous value ### Explanation: In `_convert_to_tax_base_line_dict`, `price_unit` is only passed if it has a strictly positive value, otherwise `total_amount_company` is used instead. Since `total_amount_company` is computed using this method, it can never be reset to 0. https:
Original PR description
### Steps to reproduce issue: 1. Create new Expense 2. Give a positive Total Amount, add a Tax and Save 3. Set Total Amount to 0 4. Tax Amount did not nullify 5. In the List view, Total Amount still has the previous value ### Explanation: In `_convert_to_tax_base_line_dict`, `price_unit` is only passed if it has a strictly positive value, otherwise `total_amount_company` is used instead. Since `total_amount_company` is computed using this method, it can never be reset to 0. https://github.com/odoo/odoo/blob/72b84435d69d098d615284d84ef136e8bcd2aaa0/addons/hr_expense/models/hr_expense.py#L226-L232 ### Suggested Fix: The fallback to `total_amount_company` is unnecessary. For `quantity`, the fallback to 1 should only be observed if the quantity is not set. Correcting `_inverse_total_amount` to avoid division by 0. opw-4049853 Forward-Port-Of: odoo/odoo#179099 Forward-Port-Of: odoo/odoo#174484
Before this commit, entering a payment amount with cash rounding higher than one (e.g., 10) incorrectly triggered an error popup every time. opw-4124332 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178886 Forward-Port-Of: odoo/odoo#177547
Original PR description
Before this commit, entering a payment amount with cash rounding higher than one (e.g., 10) incorrectly triggered an error popup every time. opw-4124332 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178886 Forward-Port-Of: odoo/odoo#177547
Using the name field in the domain for a discount product would cause the search to break because name was not being loaded into the Javascript through this function _loader_params_product_product. Changed the types of errors that are thrown instead being shown a notification popup in order to avoid the clunky Javascript error in the case of a typeerror from not having the field loaded. opw-4027900 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Original PR description
Using the name field in the domain for a discount product would cause the search to break because name was not being loaded into the Javascript through this function _loader_params_product_product. Changed the types of errors that are thrown instead being shown a notification popup in order to avoid the clunky Javascript error in the case of a typeerror from not having the field loaded. opw-4027900 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#172372
Some keys were named using `-` to separate words some place and `_` some other place. Forward-Port-Of: odoo/odoo#179772
Original PR description
Some keys were named using `-` to separate words some place and `_` some other place. Forward-Port-Of: odoo/odoo#179772
This commit adds the possibility to disable the month or quarter granularity (or both) for fixedPeriod date filters. Task: [3887844](https://www.odoo.com/web#id=3887844&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) 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
Original PR description
This commit adds the possibility to disable the month or quarter granularity (or both) for fixedPeriod date filters. Task: [3887844](https://www.odoo.com/web#id=3887844&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) 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#178956 Forward-Port-Of: odoo/odoo#169922
The test "test_account_move_payment_method" was failing in community only because the payment_state is paid if only l10n_it is installed but is in_payment if the enterprise module is installed. We decided to totally remove the if statement on the payment_state. The matching numbers are enough. Also adding some early returns in the compute to make sure we don't do the search on account.move.line for nothing or compute the document type for non italian companies. no task-id --
Original PR description
The test "test_account_move_payment_method" was failing in community only because the payment_state is paid if only l10n_it is installed but is in_payment if the enterprise module is installed. We decided to totally remove the if statement on the payment_state. The matching numbers are enough. Also adding some early returns in the compute to make sure we don't do the search on account.move.line for nothing or compute the document type for non italian companies. no task-id --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#178235
It happens often enough that whenever someone wants to install The US Accounting localization they have a hard time finding it because they do not know that the "Generic Chart Template" is for the US. This task will rename the template so that it's more clear for users. task: 4146856 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179133
Original PR description
It happens often enough that whenever someone wants to install The US Accounting localization they have a hard time finding it because they do not know that the "Generic Chart Template" is for the US. This task will rename the template so that it's more clear for users. task: 4146856 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179133
Issue ---- When work orders are computed, the compute function may delete some of the previous work orders. However, it doesn't take into account these deleted work orders when choosing whether to update or create a work order. So it ends up issuing an update command after a delete command for the same order. This happens during splitting and causes work orders to disappear. Steps ----- - Open Manufacturing -> Create a storable product and a BoM for this product. - Create a prod
Original PR description
Issue ---- When work orders are computed, the compute function may delete some of the previous work orders. However, it doesn't take into account these deleted work orders when choosing whether to…
Issue ---- When work orders are computed, the compute function may delete some of the previous work orders. However, it doesn't take into account these deleted work orders when choosing whether to update or create a work order. So it ends up issuing an update command after a delete command for the same order. This happens during splitting and causes work orders to disappear. Steps ----- - Open Manufacturing -> Create a storable product and a BoM for this product. - Create a product as part of the BoM. - For the latter product, create another BoM that is a kit. - Create an operation in the BoM of the kit. - Create a manufacturing order for the storable product (first created product). - Set a quantity larger than 1, say 10, and manually save the MO (without confirming it). - Split the MO into same quantity (e.g. 10), and after confirming the split the following traceback is triggered: `remaining_qty = initial_workorder_remaining_qty[index % workorders_len] ZeroDivisionError: integer division or modulo by zero` opw-3994583 Forward-Port-Of: odoo/odoo#171493
### Current Behavior: When scanning a barcode like attached, ascii 29 (FNC1) will be added to the beginning of the final code. ### Expected Behavior: FNC1 should be removed from the final code. ### Steps to Reproduce 1. With barcode installed, set the barcode nomenclature in settings to "Default GS1 Nomenclature" 2. Attempt to scan this barcode  3. If you debug [here](https://github.com/
Original PR description
### Current Behavior: When scanning a barcode like attached, ascii 29 (FNC1) will be added to the beginning of the final code. ### Expected Behavior: FNC1 should be removed from the final code. ###…
### Current Behavior: When scanning a barcode like attached, ascii 29 (FNC1) will be added to the beginning of the final code. ### Expected Behavior: FNC1 should be removed from the final code. ### Steps to Reproduce 1. With barcode installed, set the barcode nomenclature in settings to "Default GS1 Nomenclature" 2. Attempt to scan this barcode  3. If you debug [here](https://github.com/odoo-dev/odoo/blob/b387345f557adace35767ec2ca7ada271cca8423/addons/barcodes_gs1_nomenclature/models/barcode_nomenclature.py#L101), you will find that `barcode` starts with ascii 29, but it isn't removed. ### Details This commit adds ascii code 29 (FNC1) to the list of strings to be escaped from in gs1 decomposition. In PR #163404, logic was added to escape barcode scan results that start with FNC1. This is only specifically checking ']C1', but it is possible for the literal ascii code 29 to be present in the beginning of the string as well. This should also be escaped. You can see that ascii 29 is added in `zxing-library.js` [here](https://github.com/odoo-dev/odoo/blob/b387345f557adace35767ec2ca7ada271cca8423/addons/web/static/lib/zxing-library/zxing-library.js#L12308) in this case. It also could potentially be added in several other places such as [here](https://github.com/odoo-dev/odoo/blob/b387345f557adace35767ec2ca7ada271cca8423/addons/web/static/lib/zxing-library/zxing-library.js#L6932) opw-3965925 Forward-Port-Of: odoo/odoo#177958