Daily updates from Odoo
Tuesday, April 1, 2025
16 changes
2 changes
Resolved issues and error corrections
The subscription dashboard has been corrected so monetary totals display and aggregate properly again. This ensures business users can rely on dashboard figures after a recent platform change affected how currency-based values are calculated.
Original PR description
Since https://github.com/odoo/odoo/pull/199958, monetary fields can now only be aggregated (from the web client) if the currency field is also aggregated. Unfortunately, the sale_subscription dashboard explicitly uses some monetary aggregates where the currency is a compute (`sale.order.log.report.currency_id`). Change it to get it from the view table. https://github.com/odoo/odoo/pull/203901
This fixes an internal project scheduling test so it correctly checks when a user is overbooked in the Gantt view. The change helps keep project planning behavior reliable without changing day-to-day user workflows.
Original PR description
Before this commit, the test "/project_enterprise/tests/test_ui.py:ProjectEnterpriseTestUi.test_01_ui" fails in no demo because the task created before starting the tour is not planned for the whole gantt period displayed. Which means the user does not overwork as expected when the tour plans another task. This commit makes sure the task is planned during the whole period displayed in the gantt view to correctly check the gantt progress bar detects the user overworks. runbot-error-161930
14 changes
Resolved issues and error corrections
This update corrects how translated text is prepared in the Spanish TicketBAI electronic invoicing module. It prevents build or runtime errors related to language selection, helping localized reports and messages work reliably.
Original PR description
LazyTranslate objects cannot be used directly in the `Markup.format()` function as it won't be able to find the lang to use. We have to explicitly use `self.env._()`. Runbot build error: https://runbot.odoo.com/odoo/runbot.build.error/98431 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 fixes how recruitment candidate phone numbers are identified so the system uses the existing candidate phone field. It prevents errors in phone-related processing for recruitment records without changing the user workflow.
Original PR description
The default [`_phone_get_number_fields`](https://github.com/odoo/odoo/blob/e8bbb6e9d99bdf6a31290e0d41cc9abff376938a/addons/phone_validation/models/models.py#L16-L21) returns `mobile` and `phone` fields if they exist on the model, but they do not exist for `hr.candidate`, leading to [errors](https://github.com/odoo/odoo/blob/ddbc09607f23b0e9dd9e721bceeaee250e6339bd/addons/phone_validation/models/mail_thread_phone.py#L217) when asserting phone fields in the `mail.thread.phone` mixin. The only field that holds a phone number for this model is `partner_phone`. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Fixes an installation error that could occur when the Work Entries for Time Off module was installed after all Time Off Types had been removed. This helps administrators complete module setup without being blocked by missing optional configuration records.
Original PR description
Currently a `ParseError` arises when the user installs the `hr_work_entry_holidays` module after deleting all `Time Off Types` in the `Time Off` Configuration. Steps to reproduce: --- - Install…
Currently a `ParseError` arises when the user installs the `hr_work_entry_holidays` module after deleting all `Time Off Types` in the `Time Off` Configuration.
Steps to reproduce:
---
- Install `hr_holidays` module (without demo data)
- Time Off > Configuration > `Time Off Types` > Delete all
- Now install `hr_work_entry_holidays` module
Traceback:
---
```
Exception: Cannot update missing record 'hr_holidays.holiday_status_comp'
ParseError: while parsing /home/odoo/src/odoo/saas-18.1/addons/hr_work_entry_holidays/data/hr_payroll_holidays_data.xml:5, somewhere inside <record id="hr_holidays.holiday_status_comp" model="hr.leave.type">
<field name="work_entry_type_id" ref="hr_work_entry_contract.work_entry_type_compensatory"/>
</record>
```
The error occurs because the user deleted all `Time Off Types` and then installed the `hr_work_entry_holidays` module. which requires particular records.
This commit solves the above issue by using `noupdate="1"` and `forcecreate="False"` to bypass record creation if it violates checks.
https://github.com/odoo/odoo/blob/b794f0f332f473deb2c04eba60baf4761db3b508/odoo/tools/convert.py#L364-L366
sentry-5731062091
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis fix ensures translated text is correctly handled when inserted into formatted interface messages. It prevents translation-related errors in core functionality, improving reliability for multilingual users without changing visible features.
Original PR description
When formatting Markup object with LazyTranslate objects, we need to rewind a few frames back to find the lang to use. Runbot build error: https://runbot.odoo.com/odoo/runbot.build.error/98431 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
Point of Sale product cards are now consistently displayed in alphabetical order by their display names. This makes products easier to find for cashiers and creates a more predictable browsing experience.
Original PR description
In this commit: ------------------- - Changed the list with a sorted list without any conditioning of the search word based on display names. So, now all the time the products will be displayed alphabetically. Task - 4672224
This fixes a small visual issue in the calendar event popover where the selected Yes, No, or Maybe button could lose a border when hovering over the neighboring button. The change keeps the button state clear and consistent, reducing confusion for users responding to calendar invitations.
Original PR description
In the calendar application, when clicking on an event, a window opens. In this window, we can select “yes,” “no,” or “maybe.” When one of the buttons is selected and the mouse hovers over the button…
In the calendar application, when clicking on an event, a window opens. In this window, we can select “yes,” “no,” or “maybe.” When one of the buttons is selected and the mouse hovers over the button to its right, the border of the selected button disappears. This commit fixes this display issue to ensure that all four borders remain visible when hovering over the button adjacent to the selected one. Current behavior before PR: <img width="430" alt="Screenshot 2025-03-31 at 18 14 31" src="https://github.com/user-attachments/assets/803358b7-139d-44d3-a5b2-d381bd2fc998" /> <img width="434" alt="Screenshot 2025-03-31 at 18 14 35" src="https://github.com/user-attachments/assets/4a2ce979-1da5-4c19-8e82-0bfe651e9c27" /> Desired behavior after PR is merged: <img width="430" alt="Screenshot 2025-03-31 at 18 13 11" src="https://github.com/user-attachments/assets/c9faf40d-e913-481a-ac57-fc341091d56b" /> <img width="436" alt="Screenshot 2025-03-31 at 18 13 06" src="https://github.com/user-attachments/assets/12c0745f-a02a-4e59-99f3-4d6a2c791162" /> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Leave requests for employees on flexible working schedules now correctly exclude public holidays from the counted absence duration. This prevents employees from losing leave days when a public holiday falls within their approved time off.
Original PR description
### Steps to reproduce: - Create a flexible working schedule - Assign this working schedule to one of the employees - Create a public holiday for the flexible calendar - Create a leave for the flexible employee where the public holiday will be during his leave - Notice the duration of the leave ### Cause: This is happening because when calculating the leave duration for a flexible resource we are counting each day between 'leave.date_from' and 'leave.date_to' as the flexible employee should be available everyday. ### Fix: We are now checking if there is a public holiday in the middle of the leave and if so we exclude these days from the leave duration. opw-4568569
Saved filters that use dynamic values, such as the current user, no longer cause an error when opening JSON data views. This keeps default filters working reliably across sales and other screens that depend on them.
Original PR description
"/json" path not work if the current domain contains dynamic data like "uid", replace ast evaluation by safe_eval to pass the context
Steps:
- Open sales
- Save current filter as a custom default filter
- My quotations: [("user_id", "=", uid)]
- Switch to json path
Actual result:
- Internal server error
Expected result:
- No error, json data is loaded with the domain
opw-4648527This fix prevents two editing popups from appearing on top of each other when a user clicks a dynamic field. It makes the HTML editor easier to use by showing the QWeb overlay only when it will not conflict with the toolbar.
Original PR description
**Current behavior before PR:** - When clicking on a dynamic field, both the qweb overlay and the toolbar would appear simultaneously, causing an overlap. **Desired behavior after PR is merged:** - The qweb overlay will now only be shown when the selection is collapsed, ensuring that it does not overlap with the toolbar when it is visible. task:4243987
This fixes an editor navigation issue where the cursor could get stuck when moving up or down around a file banner. Users can now move through content more naturally with the keyboard, improving editing flow and reducing frustration.
Original PR description
Before this commit: - when a user placed the caret above or below a file banner and pressed the down or up arrow key, respectively, The caret would not move past the banner. - This unexpected behavior disrupted smooth navigation in the editor. After this commit: - We ensure that both the up and down arrow keys move correctly the caret across the banner, allowing seamless text navigation. task-4671755
The Discuss notification settings no longer show the unnecessary “Select duration” placeholder when muting all conversations. This makes the mute duration menu clearer by showing only real choices, reducing minor confusion for users.
Original PR description
Before this commit, when muting all conversations in the menu Configuration > Notification settings of Discuss app, the turn back until item had the option "Select duration". This item was intended as the default option, to let user know this is a widget to select an item. However, the option is pre-selected to "Until I turn it back on", and the widget is visually very obvious it can be changed to another option. Therefore the "Select duration" has no reason to exist, thus this is simply removed in this commit, Task-4208113 Before <img width="654" alt="Screenshot 2025-03-31 at 15 49 10" src="https://github.com/user-attachments/assets/0f642940-d42f-43e2-a48e-ac50bde3528e" /> After <img width="654" alt="Screenshot 2025-03-31 at 15 48 48" src="https://github.com/user-attachments/assets/1fcbbd4d-ae19-445c-afee-b18f894943b2" />
Portal users will no longer see the “Load templates” button in Knowledge when they cannot access any templates. This avoids confusion by only showing actions that are actually available to the user.
Original PR description
The `load templates` button was shown for portal users even though no template was accessible to them. This commit hides the button for portal users. Explanation: In the `knowledge.WysiwygArticleHelper` xml template, `isPortalUser` is used without having being instantiated in its related Component. Commit where `knowledge_article_html_field.js` was removed (previous scope for `isPortalUser` property for this feature): https://github.com/odoo/enterprise/commit/1e0f2950d613d6cd82d8889fb07bc04d6c91c466 Commit where `wysiwyg_article_helper.js` was introduced without the `isPortalUser` property (oversight): https://github.com/odoo/enterprise/commit/e001efc750d25d5dfcc681e42adf7a46edc7f37b task-4687833
This fix updates the field service sales walkthrough so its on-screen help uses the correct tooltip setting. It helps keep guided steps displayed properly for users following the tour, with no expected change to business workflows.
Original PR description
In this commit, `position` has been replaced with `tooltipPosition`, as explained in the commit message. https://github.com/odoo/enterprise/commit/b7fc47fec39885ed1f9f99040ceaabefa539bc7b
This fix avoids unnecessary reading of all sales spreadsheets when users work with sale order spreadsheets. It improves performance without changing what users can access or how sales order security rules apply.
Original PR description
Users don't need to be able to read all spreadsheet. It hurts performance. Task: 4656165