Friday, April 5, 2024
8 changes · saas-17.2
Resolved issues and error corrections
This fix updates how PDF preview files are referenced in Documents so they load correctly on common web servers such as Nginx. Users should see fewer failed PDF thumbnails or preview issues caused by server file-type handling.
Original PR description
Follow-up of odoo/odoo#151714: To avoid error like "Loading module from “/web/static/lib/pdfjs/build/pdf.mjs” was blocked because of a disallowed MIME type (“application/octet-stream”)." when JavaScript Modules using .mjs file extension are served from some common HTTP server (i.e. Nginx [1]), this commit renames PDF.js assets who uses this extension (introduced in commit [2]) to a more traditional .js extension. opw-3844829 opw-3850119 [1]: https://trac.nginx.org/nginx/ticket/2216 [2]: odoo/odoo@0216dc4f9ecef49e8b799bb0d52b59250f5f23e8
This fixes spreadsheet list menu actions that open related records after a change in how blank spreadsheet cells are interpreted. Users can reliably drill down from spreadsheet lists even when formulas return blank text, reducing broken or missing navigation actions.
Original PR description
Since https://github.com/odoo/odoo/commoit/e210809e, the concept of empty cell was altered. Before the aforementioned commit, an evaluated cell with the type "empty" could be empty or have a formula whose result is an empty string. Now, only really empty cells (no content) have the evaluated type "empty". Empty string result is now mapped to the "text" type. The menu actions to drilldown records were relying on the previous logic and were not properly adapted. Task: 3827310
This fix restores the warning ribbon in appointment views after an internal field name change. It helps users see relevant appointment resource warnings at the right time, avoiding missed alerts during scheduling.
Original PR description
When switching from `appointment_resource_ids` to `resource_ids` We forgot to update the associated compute methods so that they may be triggered from the relevant views. task-3813567
The settings screen now displays the correct Odoo edition by aligning the Enterprise settings display with the underlying base template. This prevents confusion for users reviewing their system edition in configuration settings.
Original PR description
Following odoo/odoo@d153638dd1a4, we must use the same template name as base template. This commit fix it so that the right edition is displayed in the settings form.
Users working in debug mode who switch away from a company can now be redirected cleanly when the current record is no longer accessible. This avoids a confusing access error and keeps behavior consistent with the standard non-debug experience.
Original PR description
… in debug mode Be logged in multiple companies (A and B) with debug mode. Be on a form view of some record which is visible only on company B via ir.rules. With the company switcher, unlog from company B. Before this commit, the user ends up on the multi-record view of that model and received an AccessError. The behaviour is different from the one when the user is not in debug mode. The user should be redirected to the multi-record view but without the AccessError.
This fixes grid scrolling for right-to-left languages, so content displays and moves correctly for users working in those layouts. It improves the experience for international users without changing existing features.
Original PR description
If an element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position (at the start of the scrolled content), and then increasingly negative as you scroll towards the end of the content. **Before this commit** The useVirtualGrid hook did not take that into account. **After this commit** Now it does, making use of the ABS math operator.
Changing the language from My Profile could fail when a new sales order screen was open, interrupting users with an error. This fix makes the profile language change handle unsaved records safely, so users can update their preferences without disrupting their workflow.
Original PR description
An error occurred when attempting to change the language in my profile. Steps to reproduce: - Install the ``sale_management`` and ``hr`` module - Settings / Translations / Languages - Activate any…
An error occurred when attempting to change the language in my profile.
Steps to reproduce:
- Install the ``sale_management`` and ``hr`` module
- Settings / Translations / Languages
- Activate any Language
- Open Sales / Click New / Click the profile icon / click ``My Profile``
- Change the language
Traceback:
``` ValueError: too many values to unpack (expected 1)
File "odoo/models.py", line 5848, in ensure_one
_id, = self._ids
ValueError: Expected singleton: sale.order('n', 'e', 'w')
File "odoo/http.py", line 2251, in __call__
response = request._serve_db()
File "odoo/http.py", line 1827, in _serve_db
return self._transactioning(_serve_ir_http, readonly=ro)
File "odoo/http.py", line 1847, 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 1825, in _serve_ir_http
return self._serve_ir_http(rule, args)
File "odoo/http.py", line 1832, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2057, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 220, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 739, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/action.py", line 67, in load_breadcrumbs
display_names.append(request.env[act['res_model']].browse(record_id).display_name)
File "odoo/fields.py", line 1202, in __get__
record.ensure_one()
File "odoo/models.py", line 5851, in ensure_one
raise ValueError("Expected singleton: %s" % self)
```
In line[1] we are getting the record ID as ('n', 'e', 'w') while trying to
change the language.
This commit resolves the mentioned issue by checking the type of record ID
[1] : https://github.com/odoo/odoo/blob/853bd97eda1f4eca5f9f63ef1c5909fddaa98d27/addons/web/controllers/action.py#L67
sentry - 5135218331
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis update fixes an issue where default list values in the mail module could be unintentionally shared across multiple records. Each record now gets its own default values, reducing unexpected behavior and improving reliability in messaging-related features.
Original PR description
Before this commit, the default value definition of a Record.attr() was saved once and given to all records of the given model at record creation. This meant that lists were shared between records, which is definitely an undesireable side-effect of the implementation. This commit fixes the issue by instead getting default value from usual lifecyle as a class instance.