Tuesday, August 13, 2024
9 changes · saas-17.4
Resolved issues and error corrections
The mail app now saves the user's choice when they close all chat conversations, so those chat windows do not reappear after refreshing the page. This prevents a frustrating repeat experience and keeps the workspace cleaner across sessions.
Original PR description
Before this commit, when having several chat windows open or folded, clicking on "Close all conversations" then page reload would show these chat windows again. This happens because the closing of chat windows and bubbles were only made client-side. Their state is saved server-side, so without telling the server to update state, they would simply have their state unchanged.
Users with the right permissions can now edit a Discuss channel's name or description directly from the header. This fixes an inconsistency where the same edits were allowed on the configuration page but blocked in the main Discuss view.
Original PR description
Edit channel name (or description) might be prevented on the header in discuss, even though it's possible from the form view (config page). If the ACL permits, it should be possible to edit from header too. task-4100348 https://github.com/odoo/enterprise/pull/68140 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Invoice product and label cells now resize to fit only the content entered. This removes an unnecessary blank row, making invoice entry cleaner and preventing awkward cell resizing.
Original PR description
Description of the issue this commit addresses: On the invoice form view, whatever the data entered in the product/label cell, an additionnal empty row is visible and brekas the resizing of the cell. The cell should be the exact size required for the data to be shown at all time --- Steps to reproduce: 1. Install Invoicing 2. Go to a new invoice 3. Add a line with a product 4. An empty row is at the bottom of the product/label cell --- Desired behavior after this commit is merged: Whatever the data entered in the product/label cell, there are no more rows than required to display the whole content of the cell. --- no task-feedback --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Chat bubbles now handle conversations where the latest message came from an email address rather than a registered contact. This prevents crashes when users hover over folded chat windows, keeping messaging access smooth and reliable.
Original PR description
Before this commit, when last message of a conversation comes from email, last message preview in chat bubble (i.e. a chat window in folded state) was crashing. Steps to reproduce: - Set Mitchell Admin user notification to "Handle in Odoo" - On a chatter, add a follower with just an email address - On the chatter, send a message with `@mention` to Mitchell (so that Mitchell has a messaging notification) - Have follower with email address reply to chatter from mail client - Michell Admin opens chatter conversation from messaging menu, which opens chat window, then fold - On folded chat window / bubble, mouse hover on it => Crash with following error: ``` Cannot read property of undefined (reading 'name') ``` This happens because the chat bubble mouseover displays last message preview, and this assumes the author was a partner. An author can be just an email address, which was not taken into account. This commit fixes the issue.
This change adds a missing software dependency needed to import Excel .xlsx files on newer Ubuntu installations. It prevents import failures for businesses that rely on spreadsheet uploads in Odoo.
Original PR description
As xlrd 2.0 removed support for xlsx and since #169482 the openpyxl lib is needed on Noble installations to import xlsx files.
This fix prevents spreadsheet records with empty attachment data from causing an error during system computations. It helps upgrades and menu loading continue smoothly when a spreadsheet file has no readable content.
Original PR description
if their is nothing to read in attachment file related spreadsheet. So, it will bring empty byte…
if their is nothing to read in attachment file related spreadsheet. So, it will bring empty byte [``b''``](https://github.com/odoo/odoo/blob/9bba9f8246a0a046a631fb849846109131e74750/odoo/addons/base/models/ir_attachment.py#L234) that is here and when it go for [decode](https://github.com/odoo/enterprise/blob/c072e9e104a4ed24d345062f66a44d84aaeb074b/spreadsheet_edition/models/spreadsheet_mixin.py#L233) it will raise this traceback
```
Traceback (most recent call last):
File "/tmp/tmp3fwx3zdj/migrations/base/tests/test_mock_crawl.py", line 256, in crawl_menu
self.mock_action(action_vals)
File "/tmp/tmp3fwx3zdj/migrations/base/tests/test_mock_crawl.py", line 429, in mock_action
mock_method(model, view, fields_list, domain, group_by)
File "/tmp/tmp3fwx3zdj/migrations/base/tests/test_mock_crawl.py", line 532, in mock_view_kanban
self.mock_web_search_read(model, view, [domain], fields_list)
File "/tmp/tmp3fwx3zdj/migrations/base/tests/test_mock_crawl.py", line 591, in mock_web_search_read
data = model.search_read(domain=domain, fields=fields_list, limit=80)
File "/home/odoo/src/odoo/saas-17.4/odoo/models.py", line 5847, in search_read
return records._read_format(fnames=fields, **read_kwargs)
File "/home/odoo/src/odoo/saas-17.4/odoo/models.py", line 3902, in _read_format
vals[name] = convert(record[name], record, use_display_name)
File "/home/odoo/src/odoo/saas-17.4/odoo/models.py", line 6727, in __getitem__
return self._fields[key].__get__(self)
File "/home/odoo/src/odoo/saas-17.4/odoo/fields.py", line 1263, in __get__
self.compute_value(recs)
File "/home/odoo/src/odoo/saas-17.4/odoo/fields.py", line 1445, in compute_value
records._compute_field_value(self)
File "/home/odoo/src/odoo/saas-17.4/addons/mail/models/mail_thread.py", line 428, in _compute_field_value
return super()._compute_field_value(field)
File "/home/odoo/src/odoo/saas-17.4/odoo/models.py", line 5037, in _compute_field_value
fields.determine(field.compute, self)
File "/home/odoo/src/odoo/saas-17.4/odoo/fields.py", line 101, in determine
return needle(*args)
File "/home/odoo/src/enterprise/saas-17.4/spreadsheet_edition/models/spreadsheet_mixin.py", line 44, in _compute_current_revision_uuid
snapshot = spreadsheet._get_spreadsheet_snapshot()
File "/home/odoo/src/enterprise/saas-17.4/spreadsheet_edition/models/spreadsheet_mixin.py", line 233, in _get_spreadsheet_snapshot
return json.loads(base64.decodebytes(snapshot))
File "/usr/lib/python3.10/json/__init__.py", line 346, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.10/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.10/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
```
for preventing this added a condition to return false because their is no meaning at all decoding this data
This taceback is raising during upgrade why field data is empty byte ``b''`` due to that above tracbeack is raised
why as this field introduced in kanban [view](https://github.com/odoo/enterprise/commit/a055dfeb84abc34015b269422264534d97a83d8f) on computing it blocking the upgrade process during read callUsers who are allowed to edit a Discuss channel’s name or description can now do so directly from the header, not only from the configuration page. This removes an inconsistency and makes everyday channel updates easier for authorized users.
Original PR description
Edit channel name (or description) might be prevented on the header in discuss, even though it's possible from the form view (config page). If the ACL permits, it should be possible to edit from header too. task-4100348 https://github.com/odoo/odoo/pull/175886
Room booking now waits properly before subscribing to presence updates, preventing related test errors and unnecessary notifications. This helps ensure only relevant users receive room presence information and keeps scheduling features more stable.
Original PR description
In the community counterpart of this PR, a debounce is added to the addition of bus channels in order to batch them as much as possible. The room module uses the `waitForSubscribe` bus helper but never awaits it which trigger errors in other tests. This PR fixes this issue. community: https://github.com/odoo/odoo/pull/175972
Rentals that start on Thursday and end on Saturday or Sunday now remain available instead of triggering an error. This prevents failures in the website rental flow and improves reliability for customers choosing weekend return dates.
Original PR description
The Issue: Prior to this commit, starting a tour on Thursday and setting the end date to Saturday or Sunday would cause a traceback error. This occurred because renting was not allowed on weekends, leading to the tour's failure. The Fix: The fix involved enabling availability for renting on Saturdays and Sundays. runbot-72624