Thursday, September 19, 2024
21 changes · saas-17.4
Resolved issues and error corrections
This fix prevents Project pages from showing an error after the Sales app is removed. It safely disables Sales-related project actions that depend on data no longer available after uninstalling Sales.
Original PR description
Steps to reproduce: - Install sale_project - Uninstall sale - Open Project and click on any of the projects Issues: Traceback is shown, as we are computing a domain using a field which doesn't exist anymore `allow_billable`. This domain comes from two embedded actions which are in `sale_project`. https://github.com/odoo/odoo/blob/d9d0b1c66dd608e475bdb7d29c162b6251b0f329/addons/sale_project/views/project_views.xml#L23-L43 To solve the issue, we change the domain to something that it always false in order to deactivate those actions. opw-4161620
This fix prevents the Indian Point of Sale module from trying to recreate or update coins and bills that users have intentionally deleted. It helps avoid database upgrade failures and respects prior Point of Sale configuration choices.
Original PR description
To reproduce the issue: 1) Start a database with flag `-i l10n_in_pos` 2) Go to point of sale>configuration>coins/bills. 3) Delete Records of Coins/bills. 4) Start the database again with flag `-u…
To reproduce the issue:
1) Start a database with flag `-i l10n_in_pos`
2) Go to point of sale>configuration>coins/bills.
3) Delete Records of Coins/bills.
4) Start the database again with flag `-u all`.
The records of pos.bill can be deleted, in point of sale module, these records are created at initialization but they can be deleted. They are not created later on as forcecreate="0". But in l10n_in_pos, these records are forcecreated/forceupdated. so setting the forcreate="0". Ensures that the records are created/updated only on initialization.
```
Traceback (most recent call last):
File "/home/odoo/src/odoo/saas-17.4/odoo/tools/convert.py", line 559, in _tag_root
f(rec)
File "/home/odoo/src/odoo/saas-17.4/odoo/tools/convert.py", line 387, in _tag_record
raise Exception("Cannot update missing record %r" % xid)
Exception: Cannot update missing record 'point_of_sale.0_05'
```
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-prThis fixes an issue in Discuss where using 'Unstar all' or 'Mark all read' incorrectly displayed the 'jump to present' banner. The change keeps the interface cleaner and avoids confusing users after bulk message actions.
Original PR description
**Current behavior before PR:** if we click on `Unstar all` or `Mark all read` button from discuss it shows jump to present banner which it shouldn't. **Desired behavior after PR is merged:** now on clicking as above mentioned it does not show jump to present banner anymore. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
You should not be able to archive a journal used in a payment method. Steps to reproduce: ------------------- * Go on any journal used in a payment method (e.g. Cash) * Archive the journal > Observation: You are still able to use the payment method without the journal being active Note: --------------- Similar fix was done for the point of sale here : https://github.com/odoo/odoo/pull/177751 opw-4070620 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo
Original PR description
You should not be able to archive a journal used in a payment method. Steps to reproduce: ------------------- * Go on any journal used in a payment method (e.g. Cash) * Archive the journal > Observation: You are still able to use the payment method without the journal being active Note: --------------- Similar fix was done for the point of sale here : https://github.com/odoo/odoo/pull/177751 opw-4070620 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#180689 Forward-Port-Of: odoo/odoo#180487
No description available.
Description of the issue/feature this PR addresses: Add translation for the default content Note: I tried adding `_()` within the field, but it didn't work, so I moved it to the default function `_get_default_job_details` --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#180567 Forward-Port-Of: odoo/odoo#178484
Original PR description
Description of the issue/feature this PR addresses: Add translation for the default content Note: I tried adding `_()` within the field, but it didn't work, so I moved it to the default function `_get_default_job_details` --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#180567 Forward-Port-Of: odoo/odoo#178484
Steps to reproduce: - Install Accounting and account_debit_note - Accounting > Customers > Invoices > Select any - Gear Icon > Debit note - Try to select an entry in 'Use Specific Journal' No journal is available to pick from, this happens because 'Use specific journal' filters journal_id with the domain [('type', '=', journal_type)], and journal_type mistakenly has the value False. The root cause of this issue is the strengthened recompuation protection added in 20c2e5996651168db3a6d7
Original PR description
Steps to reproduce: - Install Accounting and account_debit_note - Accounting > Customers > Invoices > Select any - Gear Icon > Debit note - Try to select an entry in 'Use Specific Journal' No journal…
Steps to reproduce:
- Install Accounting and account_debit_note
- Accounting > Customers > Invoices > Select any
- Gear Icon > Debit note
- Try to select an entry in 'Use Specific Journal'
No journal is available to pick from, this happens because 'Use specific journal' filters journal_id with the domain [('type', '=', journal_type)], and journal_type mistakenly has the value False.
The root cause of this issue is the strengthened recompuation protection added in 20c2e5996651168db3a6d75ace6a8907c1661792. The ORM will no longer allow recomputation of fields without a default if they share a compute method with another field which has a default value. (In an onchange flow).
At the time of the wizard's creation we update the cache in onchange() to contain False for each value without a default. In 17.0 and earlier we used to invalidate that cached value, leading to the computation of journal_type, but that behavior has changed since.
To avoid uncessary recomputation of 'move_type' (which is given a default value) we protect its compute method. However 'move_type' shares its compute method with journal_type, so we also prevent the computation of journal_type in the process.
We end up with our debit note wizard which has never made a call to _compute_from_moves (meaning is has no journal_type) and thus filter journal_id by [('type', '=', False)], which is forbidden as journal_id.type is a required field, preventing us from selecting a journal.
opw-4124278
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#180469Forward-Port-Of: odoo/odoo#180663
Original PR description
Forward-Port-Of: odoo/odoo#180663
When the message in the chatwindow is too long, the textarea in the chatwindow is constantly showing the scorllbar. This causes the chatwindow to flicker when the user is typing a message. This commit fixes the issue by setting excatly the right class for the fake textarea in the chatwindow so that it can get the real height of the textarea. Current behavior before PR:  Desired behavior after PR is mer
Original PR description
When the message in the chatwindow is too long, the textarea in the chatwindow is constantly showing the scorllbar. This causes the chatwindow to flicker when the user is typing a message. This commit fixes the issue by setting excatly the right class for the fake textarea in the chatwindow so that it can get the real height of the textarea. 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#180483
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#180639
Original PR description
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#180639
After [this commit] the translation file for `l10n_fr_account` was updated. Some translations were lost in the process. This commit restores the lost translations and adds other missing ones. [this commit]: https://github.com/odoo/odoo/commit/00e3fcf757432b7de3c7557da034077ad91dbea8
Original PR description
After [this commit] the translation file for `l10n_fr_account` was updated. Some translations were lost in the process. This commit restores the lost translations and adds other missing ones. [this commit]: https://github.com/odoo/odoo/commit/00e3fcf757432b7de3c7557da034077ad91dbea8
This commit adds default fiscal positions for the UK, and postponed / reverse charge VAT. The (sales) reverse charge tax is labeled "Reverse Charge 20%" because of a legal requirement (Chapter 7.6.1 on the gov website: https://www.gov.uk/guidance/the-vat-domestic-reverse-charge-procedure-notice-735) Two purchase reverse charge taxes are added, one for the domestic reverse charge scheme, and one for the international reverse charge scheme. (More details on the gov website: https://www.go
Original PR description
This commit adds default fiscal positions for the UK, and postponed / reverse charge VAT. The (sales) reverse charge tax is labeled "Reverse Charge 20%" because of a legal requirement (Chapter 7.6.1…
This commit adds default fiscal positions for the UK, and postponed / reverse charge VAT. The (sales) reverse charge tax is labeled "Reverse Charge 20%" because of a legal requirement (Chapter 7.6.1 on the gov website: https://www.gov.uk/guidance/the-vat-domestic-reverse-charge-procedure-notice-735) Two purchase reverse charge taxes are added, one for the domestic reverse charge scheme, and one for the international reverse charge scheme. (More details on the gov website: https://www.gov.uk/guidance/how-to-fill-in-and-submit-your-vat-return-vat-notice-70012) The existing 20% purchase VAT is split into two new taxes, one for services and one for goods. This is so that they may be appropriately mapped in the "Rest of the World" fiscal position. If the company is situated in Northern Ireland, certain taxes and fiscal positions should be activated. This commit sets the (by default) inactive Northern Irish taxes and fiscal position to active after loading the chart template when the company has a state_id set as one belonging to Northern Ireland. task-id: 3260002 Forward-Port-Of: odoo/odoo#178185
* PROPBLEM: When duplicating a picking, the creation date is not updated to latest date (fields.datetime.now) instead it was taken from the copy value. This will be a problem if user try to search for it, they do not know 'creation_date' actually is because it is not present on picking view * SOLUTION: this commit add copy=False to update 'creation_date' when duplicating picking Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is
Original PR description
* PROPBLEM: When duplicating a picking, the creation date is not updated to latest date (fields.datetime.now) instead it was taken from the copy value. This will be a problem if user try to search for it, they do not know 'creation_date' actually is because it is not present on picking view * SOLUTION: this commit add copy=False to update 'creation_date' when duplicating picking 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#180580 Forward-Port-Of: odoo/odoo#179718
In Factur-X, it is sometimes required to specify the SIRET (using the node `SpecifiedLegalOrganization`). The SIRET is a field appearing when l10n_fr is installed. In addition, in 17.0, it only appears if the current company has the French CoA installed. Hence, it is not possible to specify a SIRET on a French partner if the company is Belgian, for instance. To fix this, we also use the company_registry to fill the SIRET node in the xml. In master, we intend to remove the SIRET field, as w
Original PR description
In Factur-X, it is sometimes required to specify the SIRET (using the node `SpecifiedLegalOrganization`). The SIRET is a field appearing when l10n_fr is installed. In addition, in 17.0, it only appears if the current company has the French CoA installed. Hence, it is not possible to specify a SIRET on a French partner if the company is Belgian, for instance. To fix this, we also use the company_registry to fill the SIRET node in the xml. In master, we intend to remove the SIRET field, as we should have used the company_registry from the beginning instead. opw-4174309 Forward-Port-Of: odoo/odoo#180321
When a corporation's annual net profits exceeds a certain limit, a corporate tax has to be paid. This commit implements the calculation and accounting of this corporate tax. task: 3690934 Forward-Port-Of: odoo/enterprise#67187
Original PR description
When a corporation's annual net profits exceeds a certain limit, a corporate tax has to be paid. This commit implements the calculation and accounting of this corporate tax. task: 3690934 Forward-Port-Of: odoo/enterprise#67187
The `Accounting` dashboard was using very naive formulas to compute deltas between years. Namely, the formulas were based on the assumpution that we'd only compare values year by year but the filters allow to work with quarters or months as well. This revision updates the dashboard file to take the months/quarters into account. task-3957037 Forward-Port-Of: odoo/enterprise#70255 Forward-Port-Of: odoo/enterprise#69286
Original PR description
The `Accounting` dashboard was using very naive formulas to compute deltas between years. Namely, the formulas were based on the assumpution that we'd only compare values year by year but the filters allow to work with quarters or months as well. This revision updates the dashboard file to take the months/quarters into account. task-3957037 Forward-Port-Of: odoo/enterprise#70255 Forward-Port-Of: odoo/enterprise#69286
When the Appraisal of employee is archived and a user clicks on the Ongoing Appraisal button, a traceback will appear. Steps to reproduce the error: - Install ```hr_appraisal``` module - Create new employee > Click Request Appraisal > Save Appraisal > Archive that Appraisal - Go back to employee > Click on ```Ongoing Appraisal``` button Traceback: ``` Traceback (most recent call last): File "/home/odoo/odoo/community/odoo/http.py", line 2267, in __call__ response = request
Original PR description
When the Appraisal of employee is archived and a user clicks on the Ongoing Appraisal button, a traceback will appear. Steps to reproduce the error: - Install ```hr_appraisal``` module - Create new…
When the Appraisal of employee is archived and a user clicks on
the Ongoing Appraisal button, a traceback will appear.
Steps to reproduce the error:
- Install ```hr_appraisal``` module
- Create new employee > Click Request Appraisal > Save Appraisal >
Archive that Appraisal
- Go back to employee > Click on ```Ongoing Appraisal``` button
Traceback:
```
Traceback (most recent call last):
File "/home/odoo/odoo/community/odoo/http.py", line 2267, in __call__
response = request._serve_db()
File "/home/odoo/odoo/community/odoo/http.py", line 1842, in _serve_db
return self._transactioning(_serve_ir_http, readonly=ro)
File "/home/odoo/odoo/community/odoo/http.py", line 1862, in _transactioning
return service_model.retrying(func, env=self.env)
File "/home/odoo/odoo/community/odoo/service/model.py", line 134, in retrying
result = func()
File "/home/odoo/odoo/community/odoo/http.py", line 1840, in _serve_ir_http
return self._serve_ir_http(rule, args)
File "/home/odoo/odoo/community/odoo/http.py", line 1847, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "/home/odoo/odoo/community/odoo/http.py", line 2072, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "/home/odoo/odoo/community/odoo/addons/base/models/ir_http.py", line 220, in _dispatch
result = endpoint(**request.params)
File "/home/odoo/odoo/community/odoo/http.py", line 774, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "/home/odoo/odoo/community/addons/web/controllers/dataset.py", line 42, in call_button
action = self._call_kw(model, method, args, kwargs)
File "/home/odoo/odoo/community/addons/web/controllers/dataset.py", line 34, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/home/odoo/odoo/community/odoo/api.py", line 458, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "/home/odoo/odoo/enterprise/hr_appraisal/models/hr_employee_base.py", line 39, in action_open_last_appraisal
if len(relevant_appraisals) == 1:
UnboundLocalError: local variable 'relevant_appraisals' referenced before assignment
```
https://github.com/odoo/enterprise/blob/a9a3ece5c8ae5fa0b2fa117acb5dbedc69689478/hr_appraisal/models/hr_employee_base.py#L30-L37
When appraisal is archived, ```employee_appraisals``` will be empty,
So, eventually ```relevant_appraisals``` will be Empty.
So, it will lead to the above traceback.
sentry-5830582533
Forward-Port-Of: odoo/enterprise#69893Steps to Reproduce the Bug: - Create two storable products, "P1" and "P2". - Create a Quality Point: - Product: P1 - Type: Manufacturing - Create a Quality Check: - Product: P2 - Select the Quality Point of P1 Problem: The product is updated to P1 instead of triggering a user error. opw-4030133 Forward-Port-Of: odoo/enterprise#69362
Original PR description
Steps to Reproduce the Bug: - Create two storable products, "P1" and "P2". - Create a Quality Point: - Product: P1 - Type: Manufacturing - Create a Quality Check: - Product: P2 - Select the Quality Point of P1 Problem: The product is updated to P1 instead of triggering a user error. opw-4030133 Forward-Port-Of: odoo/enterprise#69362
Patch the voip.ringtone service in all voip tests to avoid playing ringtones while tests are running. Forward-Port-Of: odoo/enterprise#70041
Original PR description
Patch the voip.ringtone service in all voip tests to avoid playing ringtones while tests are running. Forward-Port-Of: odoo/enterprise#70041
**Steps to reproduce:** - Install Accounting and l10n_mx_edi_extended - Switch to a Mexican company (e.g. ESCUELA KEMPER URGATE) - Configure external trade according to: https://www.odoo.com/documentation/17.0/applications/finance/fiscal_localizations/mexico.html#external-trade - Make sure that USD has up-to-date rates - Create an external trade invoice: * Customer: [a US customer] (e.g. Deco Addict) * Currency: USD * Usage: Without fiscal effects * Incoterm: EX WORKS * Exter
Original PR description
**Steps to reproduce:** - Install Accounting and l10n_mx_edi_extended - Switch to a Mexican company (e.g. ESCUELA KEMPER URGATE) - Configure external trade according to: https://www.odoo.com/documentation/17.0/applications/finance/fiscal_localizations/mexico.html#external-trade - Make sure that USD has up-to-date rates - Create an external trade invoice: * Customer: [a US customer] (e.g. Deco Addict) * Currency: USD * Usage: Without fiscal effects * Incoterm: EX WORKS * External Trade: Definitive - Confirm the invoice - Print the invoice **Issue:** In the external trade section of the invoice, there are 2 empty cells: "Operation Type" and "Subdivision". According to https://facture.com.mx/nuevo-complemento-comercio-exterior-2-0/ they both have been removed. opw-4078535 Forward-Port-Of: odoo/enterprise#70206 Forward-Port-Of: odoo/enterprise#70178
Have a button in a form view of type="action" and name="some.xml_id" Before this commit, it was not possible to set approval rules on it. This was due to code in general expecting an int, which is only part of the API for viewButtons (see `action_service.js:doActionButton`) After this commit, it is possible to set approval rules on such button. backport of odoo/enterprise#69399 opw-3925360 Forward-Port-Of: odoo/enterprise#69509
Original PR description
Have a button in a form view of type="action" and name="some.xml_id" Before this commit, it was not possible to set approval rules on it. This was due to code in general expecting an int, which is only part of the API for viewButtons (see `action_service.js:doActionButton`) After this commit, it is possible to set approval rules on such button. backport of odoo/enterprise#69399 opw-3925360 Forward-Port-Of: odoo/enterprise#69509