Daily updates from Odoo
Tuesday, January 21, 2025
13 changes
2 changes
Resolved issues and error corrections
The Appointments website block now keeps any custom destination set for its “See all” link after the page is saved. This prevents visitors from being sent back to the default appointments page when the website editor intended the link to point elsewhere.
Original PR description
Steps to reproduce: - Install the appointments module. - Go to the homepage. - Enter edit mode. - Drag and drop a "Appointments" block onto the page. - Click on the "See all" link. - Edit the link (e.g., change "/appointment" to "/contactus"). - Save the page. - Click on the "See all" link. - Bug: You are redirected to the "/appointment" page instead of the "/contactus" page as expected. The bug occurs since commit [1], where the "See all" link was added to "Dynamic" snippets. Each time a "Dynamic" snippet is rendered during a page load, the href of the "See all" link is reset to the main module page. While this behavior is useful when the snippet is first rendered after being dropped onto the page, it is problematic afterward. Once the user has edited the link with a different href, it should not be reset on every page load. [1]: bbcff74 opw-4418048
This fix prevents Odoo Studio from triggering background updates when a user edits a view for a model where they do not have permission to create records. This avoids unnecessary warning messages and makes Studio behave more smoothly for users with restricted access.
Original PR description
This commit adapts studio for commit odoo/odoo@74c5cd56a0539edab6a61efa517ca6a08c08d915 which prevents doing an onchange if the user doesn't have create access on the model. Before the present commit, there were warnings in some cases because we tried just that: opening studio to edit a form view without a record, on a model on which there was no create access rights. After the present commit, we prevent such cases using the view's activeActions. runbot-error-112212
11 changes
Resolved issues and error corrections
Some accounting screens showed an empty label for journal entries, which could prevent users from opening the related entry. This fix ensures the entry name placeholder appears consistently so accounting users can navigate to the right record without disruption.
Original PR description
The placeholder was empty in some places, leading to an annoying behavior because it isn't even possible anymore to open the related journal entry. The fix is done directly in the widget `open_move_widget` to avoid modifying the definition of the related field and having to change it into a computed field. Also, it wouldn't make sense to store the placeholder on the journal item but not on the journal entry.
Control panel buttons now display with consistent widths on smaller screens, improving visual alignment and usability. The view switcher also uses less space by hiding its caret on small screens, making the mobile interface cleaner.
Original PR description
On smaller screen, the ControlPanel's buttons for CogMenu, Buttonbox, Knowledge, Search don't have a consistent width. This commit fixes it by giving those buttons' icon a fixed width, independently of the character's size and adjusting the horizontal padding for this use case. task-4492690
This fix prevents email notifications from failing when no sender or author is attached. It helps ensure notification emails are generated reliably instead of crashing in uncommon cases.
Original PR description
There are instances where an email notification may not have an associated author. In the mail notification template, we forgot to check that the author exists before calling the `_is_internal` on it. When the author is `False`, the function generating the mail crashes as the `_is_internal` function is undefined on a boolean variable. To address this issue, we will ensure the existence of the author before invoking any methods defined in the `res.users` model. This solution prevents errors and ensures the email template functions correctly. see: #190390 Task-4128966 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Partner address fields used for Peppol-related electronic invoicing are now always shown, including for OIOUBL documents that reuse those fields. This makes the information easier to find and update when preparing or maintaining electronic invoice details.
Original PR description
OIOUBL (which is not a Peppol format) uses the fields from peppol. So it should be visible to be edited too. Even more, we will make it always visible, as the Peppol may be proposed more, and so, the fields should be more easily modifiable. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue that prevented users from deleting selected attendance records from the list view. The attendance list now handles missing filter information safely, so the delete action completes as expected.
Original PR description
An error is thrown when deleting attendance records from the list view. Steps to reproduce: Attendances -> List View (Select some records) -> Actions -> Delete Current behavior before PR: ```…
An error is thrown when deleting attendance records from the list view.
Steps to reproduce:
Attendances -> List View (Select some records) -> Actions -> Delete
Current behavior before PR:
```
TypeError: Cannot read properties of undefined (reading 'some')
at Proxy.load (https://72301827-18-0-all.runbot171.odoo.com/web/assets/debug/web.assets_web.js:229101:49) (/hr_attendance/static/src/views/attendance_list_view.js:25)
at Proxy._deleteRecords (https://72301827-18-0-all.runbot171.odoo.com/web/assets/debug/web.assets_web.js:55859:26) (/web/static/src/model/relational_model/dynamic_list.js:250)
at async ConfirmationDialog.execButton (https://72301827-18-0-all.runbot171.odoo.com/web/assets/debug/web.assets_web.js:18747:31) (/web/static/src/core/confirmation_dialog/confirmation_dialog.js:79)
```
Desired behavior after PR is merged:
Deleting selected records without errors.
Cause:
The implementation of `DynamicList._deleteRecords` changed in v18.0 by fbb37ab363a6c729193f1ba1ba70775650140636 to call `model.load()` without `params`. Thus `params.domain` could possibly be undefined.
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis fix prevents account searches from using an internal-only account structure that supports only limited lookup behavior. Users are redirected to equivalent account fields, reducing errors while preserving the same search intent.
Original PR description
account.root is a technical model only meant to be used in the side panel and therefore only has a limited ORM functionality. Trying to search on anything else than the ID is not allowed, and rather useless since a domain on `root_id` and be replaced with a domain on the account (or it's display_name) directly.
Instead of:
* `[('root_id', 'ilike', prefix)]`, use `[('display_name', 'ilike', prefix)]`
* `[('account_id.root_id', 'ilike', prefix)]`, use `[('account_id', 'ilike', prefix)]`
This commit simply redirects the user to the alternate field.Control panel buttons now keep a consistent width on smaller screens across Knowledge and account reports. This improves visual alignment and makes the interface feel more polished and easier to use on compact displays.
Original PR description
*: account_reports On smaller screen, the ControlPanel's buttons for CogMenu, Buttonbox, Knowledge, Search don't have a consistent width. This commit fixes it by giving those buttons' icon a fixed width, independently of the character's size and adjusting the horizontal padding for this use case. task-4492690
Subscription project dashboards now show only billable order lines, excluding section and note entries. This prevents non-billable informational lines from being counted or displayed where users expect actual subscription items.
Original PR description
Steps to reproduce: --- 1) Go to a Subscription with a Project 2) Add a section and/or note line 3) Navigate Project smart button -> Dashboards -> Subscription dropdown 4) Notice the order lines Issue: ---- In the subscription the sections and notes are taken into account this is due to the fact that all the line are retrieved and not only the "billable". Fix: --- Adding a condition on the display type of the line. opw-4394767
The Indian payroll salary register now automatically sets its end date to the last day of the current month instead of today's date. This reduces manual correction and helps payroll users create monthly reports with the expected date range.
Original PR description
steps to reproduce: -Go to an indian company -Open the payroll application. -try to create salary register -the end date is current date issue: The end date should be set to the last day of the current month. solution: changed the code for '_get_default_date_to' to set default date to the last day of the current month task-4432414
The tax report now clearly shows the correct default date option when a tax period matches a monthly, quarterly, or yearly reporting period. This removes a confusing state where the report used the right dates but showed no selected date filter in the dropdown.
Original PR description
This commit makes sure that, in tax report, when tax_period is used to determine the report date, and when the tax_period periodicity matches one of the 3 standard filters (month, quarter, or year), that the correponding standard filter is selected with the right date set on it. Before this commit, the default date filter of the tax report would make use of the tax_period to set its date. The date was set properly, but the tax_period date filter would be hidden in case the periodicity matches monthly, quarterly, or annually. When its hidden, the date filter dropdown menu would show 3 standard filters with none of them selected, which was confusing. task-4373943
The map view for contacts now displays the correct group name when records are grouped by related fields such as country. This prevents groups from appearing as "None," making the map sidebar clearer and easier to use.
Original PR description
Before this commit, for map views on res.partner (which have attribute res_partner = id), if the user group by a relational field (X2many, many2one), the name of the group is "None" ### Steps to reproduce: - Contacts > Map view - in the search bar, group by "Country" - On the left side of the map view, the group name is "None" #### Expected - Name of partner country should be visible instead of "None"