Tuesday, August 20, 2024
8 changes · saas-17.4
Resolved issues and error corrections
Reloading views with embedded actions, such as project task kanban views, no longer replays the opening animation unnecessarily. This removes a distracting flicker while preserving the expected animation behavior for notifications.
Original PR description
In a view with embedded actions (e.g. kanban view of tasks in a project), toggle it on s.t. it is visible, and then click on the kanban view switcher (basically to reload the kanban view). Before…
In a view with embedded actions (e.g. kanban view of tasks in a project), toggle it on s.t. it is visible, and then click on the kanban view switcher (basically to reload the kanban view). Before this commit, the embedded actions animation was played at each reload, causing a weird flickering. The reason is that when the view is reloaded, the ControlPanel is destroyed and a new one is created, with the embedded actions to be displayed by default (as they had been toggled beforehand). Before this commit, in such a situation, the Transition component (and the useTransition hook) played the animation. This behavior is only useful (and relevant) for a single usecase: Notifications. The NotificationContain uses a t-foreach to iterate over the notifications it has to display, and wrap them inside a Transition component. That means that when a notification pops, it must animate directly (it is always visible). For the remaining usecases in Odoo, we don't want to animate initially, if the element is visible by default. This commit introduces an option "immediate" (in the HOC and the hook), which is false by default. When set to true, if the element is initially visible, the animation is played. task~4035839 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
The Point of Sale contact list no longer crashes when it encounters a contact without a name, such as certain address-only records. This helps keep checkout and customer selection reliable when customer data is incomplete.
Original PR description
Before this commit, encountering a contact with a false name (particularly contacts of type address with no name) would lead to a TypeError, `a.name.localeCompare` is not a function. opw-4124243 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix removes an extra company name entry that could appear in the accounting quick encoding systray when only one active company remained. Users now see a cleaner, non-redundant menu because the standard company switcher already shows the company information.
Original PR description
Steps to reproduce: - Archive all but 1 company - Settings > Quick encoding to 'Customer invoices' An extra systray item displays the company name, this is redundant with the SwitchCompanyMenu which is always displayed as of this commit dc844df86958d2e31c4e758f600b9c37a8818ca1. opw-4100655 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix prevents Safari on iOS from mishandling a print-related style rule when preparing sales order emails. It helps users send orders by email reliably from Safari on mobile devices.
Original PR description
To reproduce: ============= on IOS device on Safari Sales -> Orders -> open any order -> send it by email Problem: ======== Safari may have limitations or require specific conditions to properly interpret @page. Solution: ========= Skip the `@page` rule while converting the inline style opw-4101387 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Fixes a background website cleanup task that could incorrectly report negative progress when new visitor records appeared during processing. This prevents avoidable errors and keeps routine visitor data cleanup running reliably.
Original PR description
Since commit 9d78a326, we attempt to send the progress, but because we count before the loop, by the time we make the request again a few milliseconds later, new records have already been added. As a result, the remaining count becomes negative, since done < remaining. ``` ValueError: <class 'ValueError'>: "`done` and `remaining` must be positive integers." while evaluating 'model._cron_unlink_old_visitors() ``` --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Salary benefits signing requests now only include the HR responsible person when their signature is actually required. This prevents unnecessary signing tasks and keeps the approval process clearer for employees and HR teams.
Original PR description
In the case where the HR responsible is not required to sign, he should not be added to the request items.
The date dropdown now shows the correct fiscal year period when opening reports that use fiscal year filtering. This avoids confusion for users reviewing accounting reports and helps ensure they are looking at the intended reporting period.
Original PR description
Before this commit when opening a report that take fiscal year as the period_type, the display in the date dropdown was wrong. task: 4096212
Fixed an issue where Social Marketing could crash when opening Instagram post records containing faulty image data. The change helps users continue viewing and managing posts even when some imported or stored media information is incomplete or invalid.
Original PR description
Whenever there is faulty data, it returns only one value, but it requires two. I have made a fix for that. Traceback group: 1415 ```py ('social.menu_social_post', 609, 'Social Marketing > Posts',…
Whenever there is faulty data, it returns only one value, but it requires two. I have made a fix for that.
Traceback group: 1415
```py
('social.menu_social_post', 609, 'Social Marketing > Posts', 860):
Traceback (most recent call last):
File /tmp/tmpccnj1owi/migrations/base/tests/test_mock_crawl.py, line 256, in crawl_menu
self.mock_action(action_vals)
File /tmp/tmpccnj1owi/migrations/base/tests/test_mock_crawl.py, line 429, in mock_action
mock_method(model, view, fields_list, domain, group_by)
File /tmp/tmpccnj1owi/migrations/base/tests/test_mock_crawl.py, line 458, in mock_view_form
[data] = record.read(fields_list)
File /home/odoo/src/odoo/saas-17.4/odoo/models.py, line 3670, in read
return self._read_format(fnames=fields, load=load)
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/social_instagram/models/social_post_template.py, line 36, in _compute_instagram_preview
faulty_images, error_code = post._get_instagram_image_error()
ValueError: too many values to unpack (expected 2)
```