Friday, April 18, 2025
12 changes · 18.0
Resolved issues and error corrections
This update adjusts an internal holiday module test so it can create its required calendar setup with the right permissions. It helps keep automated testing stable without changing how employees or managers use the holiday features.
Original PR description
Creating a `resource.calendar` record requirest the settings group. This is only necessary for the setup of this test, so just create it in `sudo` (afterwards the calendar is only referenced to create events). https://runbot.odoo.com/odoo/error/145744
The Journal Items unreconciled filter now hides entries with no residual amount, since those entries cannot be reconciled. This reduces confusion for accounting users by making the filtered list match the expected reconciliation workflow.
Original PR description
Description of the issue this commit addresses: Items with a null residual are not reconcilable but when using the unreconciled filter implying that shown items have to be reconciled, those items are not hidden which is confusing. --- Desired behavior after this commit is merged: Using the Unreconciled filter on Journal Items will filter out items that have a null residual. --- task-4723956 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Fixes an issue that could cause an error when the system prepared placeholder names for multiple accounting entries at once. This helps avoid interruptions in accounting workflows when processing batches of records.
Original PR description
In the _compute_name_placeholder method, self.date is used inside the for move in self loop which causes a singleton error when self is a multiple records recordset. This commit replaces self by move to avoid the singleton error. no-task --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes a mobile usability issue where the Start or Launch button in a Project dropdown only worked when tapping directly on the text. The full button area now responds to taps, making timer actions more reliable on mobile devices.
Original PR description
Reproduce: - Switch to mobile view - Go to Project module - Click on the gear icon next to a task or project - Click the Start (or Launch) button in the dropdown - Try tapping anywhere on the button…
Reproduce: - Switch to mobile view - Go to Project module - Click on the gear icon next to a task or project - Click the Start (or Launch) button in the dropdown - Try tapping anywhere on the button (not just on the text) Description of the issue/feature this PR addresses: In the mobile view of the Project module, clicking the Start button from the dropdown menu only works if the user taps directly on the text. Tapping on the surrounding area within the button does not trigger the action—instead, it closes the menu without starting the timer. Root cause: The button inside the dropdown is wrapped in a `<span>` element, but its width does not extend across the entire span. As a result, only the text area is interactive, which causes usability issues on mobile where precise tapping is harder. Solution: Ensure the button inside the dropdown item spans the full width of its container by setting `width: 100%`. This allows the entire area of the button to be clickable, improving usability on mobile devices. Desired behavior after PR is merged: Tapping anywhere on the button (not just the text) now consistently triggers the timer as expected. opw-4561724
Exports now show translated labels for selection fields when the user's language is changed. This prevents users from seeing raw internal values in exported files, such as employee marital status in French.
Original PR description
Reproduce: 18.0 and 18.1 Switch your language to French Go to employee and export one record You will see not translated value of État civil Solution: Modified the convert_to_export function for selection field Description of the issue/feature this PR addresses: In the selection field selection list is defined by a method then instead of exporting the localized label, it exports the raw value this is backport of #192095 opw-4715430
Point of Sale sessions connected to an IoT box no longer show a brief loading icon every few seconds while checking device status. This makes the checkout screen feel smoother and less distracting for staff during daily operations.
Original PR description
Before this commit, when using a POS with an IoT box connected, there would be a brief loading icon flickering in the top right every 5 seconds. This is due to the call to get the latest status of the IoT devices. After this commit, the flickering is gone due to fetching the device status using the ORM service instead of the POS data service. task-4570905
This fix prevents an inter-company sales and purchase workflow from failing when a user lacks access to lot or serial number fields. It helps users complete related stock operations without needing unnecessary permissions.
Original PR description
`(stock.picking).move_ids_without_package.lot_ids` is gated on `stock.group_production_lot`, if the user doesn't have this group, the field is unavailable and trying to set it via the form fails. https://runbot.odoo.com/odoo/error/163100
Approving an employee leave no longer fails when another overlapping leave has already been refused. The planning holidays workflow now ignores refused leave records in this check, preventing an error and allowing valid approvals to proceed.
Original PR description
Currently, a traceback is occurring when trying to approve a leave having the same time off with the refused state of another leave. <b>To reproduce this issue:</b> 1) Install planning_holidays…
Currently, a traceback is occurring when trying to approve a leave having the same time off with the refused state of another leave. <b>To reproduce this issue:</b> 1) Install planning_holidays without demo 2) Enable flexible hours for the working schedules of an employee 3) Create two time-offs for an employee with the same date and time 4) Refuse the first one and try to approve the second one <b>Issue:-</b> ``` ValueError: Expected singleton: hr.leave(5, 6) ``` When there are more than one leave record with different states, leave_date will search the record based on the employee, date and time only. https://github.com/odoo/enterprise/blob/747482f34ca8210d89d81b3363ec5a8fc3a4ff6f/planning_holidays/models/resource_calendar.py#L16-L24 So indeed we get multiple records, and this leads to the above traceback when accessing values from the leave_data. <b>Solution:-</b> Make the domain of leave_data more robust by including the state containing no refused leaves. opw-4712858,4700495
The payroll test setup now has the required HR administrator access to create leave types during validation checks. This prevents internal automated tests from failing after demo data changes, improving reliability without changing user-facing payroll behavior.
Original PR description
`TestPayslipValidation.setUpClass` tries to create an `hr.leave.type` but that requires hr admin access. So add that. Issue likely became visible from the removal of demo data, though it only popped up on April 1st instead of March 27th or whenever the demo data change was merged. https://runbot.odoo.com/odoo/error/162257
This fix makes an automated test for rental period selection on the website more stable. It reduces random test failures, helping teams trust release checks without changing the customer-facing rental flow.
Original PR description
In this commit we fix the website_sale_renting_select_wrong_period tour that can cause undeterministic errors.
The UrbanPiper username setting was renamed internally so it no longer shares the same label as another localization setting. This prevents warning messages when the module loads, with no expected change to how users configure or use the feature.
Original PR description
The field `res.config.settings.urbanpiper_username` has the same label `Username` as the field [`res.config.settings.l10n_co_edi_username`](https://github.com/odoo/enterprise/blob/e0307b19d85f9cc3dba883f3fe8eab2a4cb23ebd/l10n_co_edi/models/res_config_settings.py#L8-L9) from module `l10n_co_edi`. Having multiple fields on the same model with the same label generates warnings when loading the module. The label is already changed in [`saas-18.1`](https://github.com/odoo/enterprise/blob/e0307b19d85f9cc3dba883f3fe8eab2a4cb23ebd/pos_urban_piper/models/res_config_settings.py#L11), and the [view](https://github.com/odoo/enterprise/blob/3f828af20e7936e6730d2f94b79aef755bd4b359/pos_urban_piper/views/res_config_settings_views.xml#L11) displaying the field uses an explicit label as well.
Fixed a display issue where switch buttons in the Documents app could show incorrect padding after using the activity view switch. This improves visual alignment and makes the interface look more consistent for users.
Original PR description
This PR fixes an issue where the switch buttons in the documents module had incorrect padding when clicking on the activity switch view button.This fix ensures proper spacing and alignment across the interface. Task-4680512