Daily updates from Odoo
Monday, July 31, 2023
8 changes · master
Enhancements to existing features
This update streamlines how several Odoo Enterprise test suites communicate with backend services during automated checks. It helps keep testing more consistent across Helpdesk, Subscriptions, and Discuss-related areas, reducing maintenance effort without changing customer-facing behavior.
Original PR description
*: helpdesk_mail_plugin, sale_subscription, test_discuss_full_enterprise. community: https://github.com/odoo/odoo/pull/130036
This update renames digitization action buttons across invoice, expense, and recruitment workflows to make them easier to understand. Users will now see clearer labels such as "Digitize document" and "Retry", reducing ambiguity when sending or resending documents for digitization.
Original PR description
The goal of this pr is to improve labeling of digitization button accross Odoo. - "Send For Digitization" become "Digitize document" - "Resend For Digitization" become "retry" task: 3394784
Features or functions removed from Odoo
An unused internal function related to cash statements was removed from the accounting dashboard code. This cleanup reduces maintenance overhead without changing how users work with the system.
Original PR description
before this commit, the create_cash_statement function defined in the journal model is not called from any where. left over in: 9299f81 after this commit, the function will be removed from code.
Code cleanup and technical improvements
The spreadsheet editing flow now uses the newer dialog experience instead of an older legacy version. This keeps the interface more consistent across Odoo and removes outdated mobile dialog code, with related barcode and mobile sign-in flows adjusted to match.
Original PR description
This commit replaces the legacy dialog by the new one. Part of task-id 3439226
This update removes now-unnecessary refresh code from several Odoo apps after the underlying data model became automatically reactive. Users should see the same behavior, while the system becomes simpler and easier to maintain.
Original PR description
Since the relational model was rewritten (PR 114024), it is now reactive, so it is no longer necessary to use model.notify() to render the view.
This update replaces generic 'none' figure classifications with more meaningful categories across accounting and local reporting areas. The change improves internal consistency and makes report definitions easier to maintain, with little expected impact on day-to-day users.
Original PR description
## Description of the issue/feature this PR addresses The 'none' values in figure_type are redundant since there are other more relevant types. ## Current behavior before PR Everything works fine but a figure_type refactor would be nice. ## Desired behavior after PR is merged 'none' -> more relevant figure_type. *: account_asset, account_intrastat, account_reports, l10n_ar_reports, l10n_au_reports, l10n_be_reports, l10n_co_reports, l10n_de_reports, l10n_ee_reports, l10n_es_real_estates, l10n_es_reports, l10n_lu_reports, l10n_mx_reports, l10n_nl_intrastat, l10n_pe_reports, l10n_se_reports, l10n_us_reports Task ID: 3434197 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
Steps to reproduce: 1. make a sale order for a product with no taxes 2. open a PoS session, click on Quotation / Order 3. select the sale order, and validate 4. attempt to close the session This will lead in an error in Fiskaly, that blocks closing of the session. The taxes of order lines should be checked before they are imported in the PoS. opw-3229274 Forward-Port-Of: odoo/enterprise#43559 Forward-Port-Of: odoo/enterprise#40997
Original PR description
Steps to reproduce: 1. make a sale order for a product with no taxes 2. open a PoS session, click on Quotation / Order 3. select the sale order, and validate 4. attempt to close the session This will lead in an error in Fiskaly, that blocks closing of the session. The taxes of order lines should be checked before they are imported in the PoS. opw-3229274 Forward-Port-Of: odoo/enterprise#43559 Forward-Port-Of: odoo/enterprise#40997
when user clicks on call widget in mailing list contacts traceback will appear. steps to produce: 1) install mass_mailing_sms and voip. 2) open one record and add mobile number. 3) click on mobile number. traceback on sentry: ``` IndexError: list index out of range File "odoo/http.py", line 2123, in __call__ response = request._serve_db() File "odoo/http.py", line 1699, in _serve_db return service_model.retrying(self._serve_ir_http, self.env) File "odoo/service/mode
Original PR description
when user clicks on call widget in mailing list contacts traceback will appear. steps to produce: 1) install mass_mailing_sms and voip. 2) open one record and add mobile number. 3) click on mobile…
when user clicks on call widget in mailing list contacts traceback will appear.
steps to produce:
1) install mass_mailing_sms and voip.
2) open one record and add mobile number.
3) click on mobile number.
traceback on sentry:
```
IndexError: list index out of range
File "odoo/http.py", line 2123, in __call__
response = request._serve_db()
File "odoo/http.py", line 1699, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "odoo/service/model.py", line 133, in retrying
result = func()
File "odoo/http.py", line 1726, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 1927, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 190, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 716, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 30, in call_kw
return self._call_kw(model, method, args, kwargs)
File "addons/web/controllers/dataset.py", line 26, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 457, in call_kw
result = _call_kw_model(method, model, args, kwargs)
File "odoo/api.py", line 430, in _call_kw_model
result = method(recs, *args, **kwargs)
File "home/odoo/src/enterprise/saas-16.3/voip/models/voip_phonecall.py", line 299, in create_from_phone_widget
partner_field_name = [k for k, v in fields if v.type == 'many2one' and v.comodel_name == 'res.partner'][0]
```
https://github.com/odoo/enterprise/blob/22992c1226268111ebf66f39214d8e15d0ede2e3/voip/models/voip_phonecall.py#L322 In the mailing.contact model, there is no field of type many2one with a comodel name of res.partner. As a result, the partner_field_name returns an empty list, and attempting to access the 0th element of an empty list is not possible.
sentry-4306579710
Forward-Port-Of: odoo/enterprise#44321