Thursday, January 30, 2025
6 changes · 17.0
Resolved issues and error corrections
Administrators can now see all menu entries when editing user groups, even for menus tied to groups they personally do not belong to. This prevents missing options in group configuration and makes access setup more reliable.
Original PR description
Scenario: set a menu to be visible only to a group you don't have Result: the menu is not shown in the list of menu on the group form view Why: in 17.0, web_read was added that is adding a search for ordering results of x2many according to order in specification. This is interfering with custom code of ir.ui.menu that is filtering out menu that are not visible (in the interface) to you. Fix: add context key that bypass the ir.ui.menu filtering in the res.groups window action. opw-4376374
The website image gallery now avoids a crash that could occur after upgrading when users quickly switched between gallery indicators. This keeps affected website pages stable without changing the gallery’s visible behavior.
Original PR description
Steps to reproduce: - In V17.0 drag and drop an "Image Gallery" block into the page. - Upgrade to 18.0 - Click on the last "Image Gallery" indicator and then quickly on the first one. - Traceback: "TypeError: Cannot read properties of null (reading 'classList') at Carousel._setActiveIndicatorElement ..." This issue is caused by the front-end code of the image gallery, which updates the active indicator during a slide event. When the crash happens, it cannot find the active slide in the DOM. After investigation, everything already works with Bootstrap, and the purpose of this code remains unclear. However, in the stable version, we are not taking any risks and will not modify it. In this commit, we simply added a return; in case the active slide is not found. opw-4519455
Invoices in the Kenya eTIMS flow can now be printed even when government-provided eTIMS details have not yet been received. Missing values are shown safely as blank fields, preventing avoidable errors and keeping invoice processing moving.
Original PR description
When trying to print invoice before reveiving etims details by the gouvernment, we get an error because we're trying to access some attributes of those fields, such as `strftime` or `len()` With this commit, we replace non set fields by empty strings either for display purpose or methods calls. opw-4480304
Forwarded Google Maps locations in WhatsApp messages are now handled correctly instead of causing an error. This prevents interruptions when customers or users forward location-based messages back to the business.
Original PR description
When the user tries to forward a Google Maps location in a message, a traceback will appear. Steps to reproduce the error: - Go to WhatsApp > Templates > Create a new template A > Header Type:…
When the user tries to forward a Google Maps location in a message,
a traceback will appear.
Steps to reproduce the error:
- Go to WhatsApp > Templates > Create a new template A > Header Type: Location
- Set a Body message > In Variables, Set the sample values for all the variables
- Create a new Contact with a Mobile number > Send a Whatsapp message with template A
- User will receive a message with a link of location > Forward that message back to that number
Traceback:
```
File "/home/odoo/odoo/enterprise/whatsapp/controller/main.py", line 42, in webhookpost
wa_account_id._process_messages(value)
File "/home/odoo/odoo/enterprise/whatsapp/models/whatsapp_account.py", line 225, in _process_messages
body += Markup("<br/>{location_address}").format(location_name=messages['location']['address'])
File "/home/odoo/.local/lib/python3.10/site-packages/markupsafe/__init__.py", line 213, in format
return self.__class__(formatter.vformat(self, args, kwargs))
File "/usr/lib/python3.10/string.py", line 165, in vformat
result, _ = self._vformat(format_string, args, kwargs, used_args, 2)
File "/usr/lib/python3.10/string.py", line 205, in _vformat
obj, arg_used = self.get_field(field_name, args, kwargs)
File "/usr/lib/python3.10/string.py", line 270, in get_field
obj = self.get_value(first, args, kwargs)
File "/usr/lib/python3.10/string.py", line 227, in get_value
return kwargs[key]
File "/home/odoo/.local/lib/python3.10/site-packages/markupsafe/__init__.py", line 249, in __getitem__
return self._kwargs[key]
KeyError: 'location_address'
```
https://github.com/odoo/enterprise/blob/2b4acb4c82a7374d45f25a7d8eebdc53b7f6e140/whatsapp/models/whatsapp_account.py#L225
Here, ``location_name`` is used instead of ``location_address``,
So, It will lead to the above traceback.
sentry-6206183097This fix updates the Belgian payroll salary flow so tests use the correct public transport contribution value for the relevant simulated date. It prevents false test failures caused by the 2024 value change, helping keep payroll validation reliable.
Original PR description
We changed public transport value from 43 to 34 in 2024, however, it caused few issues as test is run in faketime. This commit fixes them.
A payroll test flow for Belgian HR payroll accounting was corrected so it completes the required date entries before trying to validate and sign. This helps keep automated checks reliable and reduces false failures during development.
Original PR description
- add missing steps in the `hr_contract_salary_tour_job_change` tour as the tour was filling only 1 date field of 2 So `Validate and Sign` was not shown and the tour fail because of timeout Task: 4506921