Tuesday, December 19, 2023
10 changes · 17.0
Resolved issues and error corrections
Public visitors can now see booth category images on event pages without needing to log in. This fixes missing images for anonymous website users and helps event booth listings display correctly to all potential attendees or exhibitors.
Original PR description
[FIX] website_event_booth: make images of booth categories accessible by public user Currently, categories' images can only be seen while logged in. This fix will allow public user to have access to images. Description of the issue/feature this PR addresses: add access rights for booth category for public user Current behavior before PR: images of booths' are not loading if not logged in Desired behavior after PR is merged: images of booths' are loading regardless of the user opw-3625773 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix prevents a crash when opening certain mobile record creation flows that rely on the activity kanban view. It makes the view handle missing selection details safely, improving stability for customized screens.
Original PR description
When defining a selection field as field dependency, one must specify the options of that selection field (or at least an empty list if options don't matter). Because if that field isn't in the arch (which is the point of defining field dependencies), and the model has to process a value for that field, it will crash in `parseServerValue` (selection case). There's no scenario to reproduce this in standard, but one can build one: edit the project task form view arch, in the child_ids x2many, set mode="tree,kanban", but do not add the kanban nor the form view inline (s.t. default views are used). Then open the view in mobile and click to add a record in the relation. 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
This fix prevents an error from appearing when a user tries to replenish a product that has no replenishment rules configured. Users can now open the replenish action without disruption, improving reliability in stock workflows.
Original PR description
Currently traceback appears if no rules are available on the product. (Steps to reproduce: install sale and stock, but not purchase, go to the product and click "Replenish") Index is out of range because route_ids is an empty list. This fix will allow route_ids to be empty. Description of the issue/feature this PR addresses: Empty list of rules creates a situation where index becomes out of range in a wizard Current behavior before PR: Traceback appears when no rules are available Desired behavior after PR is merged: No traceback appears opw-3637054 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Users who enter an invalid context in a view will now see a validation error instead of a technical traceback. This helps administrators understand and correct configuration mistakes without encountering disruptive error pages.
Original PR description
This issue occurs when a customer passes an invalid context in the view, at that time this error will be generated. Steps To Produce:- - Go to `Settings >Technical >User Interface >Views` - Open any…
This issue occurs when a customer passes an invalid context in the view, at that time this error will be generated.
Steps To Produce:-
- Go to `Settings >Technical >User Interface >Views`
- Open any view
- pass invalid context like `context="{'search_default_demo': active_id}, 'search_default_x_stage_id':[3]}"`
- error will be generated
sentry traceback-
```
SyntaxError: unmatched '}' (<unknown>, line 1)
File "odoo/http.py", line 2157, in __call__
response = request._serve_db()
File "odoo/http.py", line 1732, 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 1759, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 1960, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 207, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 722, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "home/odoo/src/enterprise/17.0/web_studio/controllers/main.py", line 755, in edit_view_arch
view.write({'arch': view_arch})
File "home/odoo/src/enterprise/17.0/web_studio/models/studio_mixin.py", line 33, in write
res = super(StudioMixin, self).write(vals)
File "odoo/addons/base/models/ir_ui_view.py", line 524, in write
res = super(View, self).write(self._compute_defaults(vals))
File "odoo/models.py", line 4422, in write
fields[0].determine_inverse(real_recs)
File "odoo/fields.py", line 1397, in determine_inverse
determine(self.inverse, records)
File "odoo/fields.py", line 101, in determine
return needle(*args)
File "odoo/addons/base/models/ir_ui_view.py", line 268, in _inverse_arch
view.write(data)
File "home/odoo/src/enterprise/17.0/web_studio/models/studio_mixin.py", line 33, in write
res = super(StudioMixin, self).write(vals)
File "odoo/addons/base/models/ir_ui_view.py", line 524, in write
res = super(View, self).write(self._compute_defaults(vals))
File "odoo/models.py", line 4412, in write
real_recs._validate_fields(vals, inverse_fields)
File "odoo/models.py", line 1449, in _validate_fields
check(self)
File "odoo/addons/base/models/ir_ui_view.py", line 384, in _check_xml
view._validate_view(combined_arch, view.model)
File "odoo/addons/base/models/ir_ui_view.py", line 1353, in _validate_view
self._validate_attributes(node, name_manager, node_info)
File "odoo/addons/base/models/ir_ui_view.py", line 1649, in _validate_attributes
vnames = get_expression_field_names(expr) - {'id'}
File "odoo/tools/view_validation.py", line 243, in get_expression_field_names
item_ast = ast.parse(expression.strip(), mode='eval').body
File "ast.py", line 50, in parse
return compile(source, filename, mode, flags,
```
after this commit, we can display Validation Errors to users instead of a traceback when they make mistakes in any UI view.
sentry-4684090820The multi-record selector dropdown now uses only the space it needs instead of taking up a full line. This makes forms cleaner and easier to scan, especially where several fields appear close together.
Original PR description
### Before: Previously, the multi-record selector dropdown occupied an entire line. ### After: This PR addresses this issue by applying the `flex: 1 0 1rem;` property to the auto-complete dropdown. This adjustment confines the dropdown to the necessary space. If the space available is less than `1rem`, it will wrap to a new line. Task ID: [3607067](https://www.odoo.com/web#id=3607067&cids=2&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form)
The Contacts help text no longer mentions the Private Address option, which was already removed from the product. This avoids confusion for users who could not find that address type in the contact form.
Original PR description
### Steps to reproduce issue: 1. Open Contacts 2. Select a contact 3. Choose: - Add an address - Only if contact is individual: Select drop-down menu next to Address fields in form 4. Private Address doesn't show in the options ### Explanation: Private Address was intentionally deleted from `res.partner.type` in *v16.4* (cf. b1f7e56f7938649c540cab8c2feec3c6407ae47d). ### Suggested change: Remove Private Address paragraph in `res.partner.type.help`, it should not exist anymore. opw-3602922
This update adjusts tests across several Odoo apps so they no longer depend on optional demo data being installed. That makes validation more consistent for deployments and reduces the risk of false test failures across accounting, CRM, calendar, authentication, and other business workflows.
Original PR description
Description of the issue/featureforum.post 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
This fixes the website editor so column count options update only after a user finishes resizing a column, rather than during the drag. The change makes the editor behave more consistently and avoids unreliable updates caused by unfinished background processing.
Original PR description
Since [commit 1], the columns count in the options is updated while dragging the width handle of a column. That behavior relies on asynchronous code which is not awaited. This commit corrects it to be in line with the behavior of all other options: the count is updated after releasing the drag. [commit 1]: https://github.com/odoo/odoo/commit/710d000f1872fd99b41d52ec3d6923756bba7cba task-3576046
This update fixes a test in the Planning module that was failing due to incorrect timezone configuration. The test now properly sets the employee's timezone to match the test requirements, ensuring the scheduling duplication feature works correctly when preserving local times across different timezones.
Original PR description
`test_duplication_should_preserve_local_time` calls `action_copy_previous_week` with a timezone in the context. The issue is that the method get the timezone from the employee or else the context, yet the employee has a tz 'UTC', so it crashes. We this commit, we set the desired tz on the employee. Forward-Port-Of: odoo/enterprise#52928
The "Average Rating" option has been removed from the Measures dropdown menu in the Helpdesk Ticket Analysis report. Since both "Average Rating" and "Rating (/5)" were providing duplicate rating information, removing the redundant option streamlines the reporting interface and reduces user confusion when selecting metrics to analyze.
Original PR description
Before this PR, within the "Measures" button, We have provided both the "Average Rating" and the "Rating (/5)" as both of measures representing rating values. Therefore, we don't need "Average Rating" in the "Measures" dropdown menu any further. In this PR: removed the "Average Rating" field from the "Measures" dropdown menu. task-3475975 Forward-Port-Of: odoo/enterprise#46458