Saturday, November 4, 2023
35 changes · 17.0
Resolved issues and error corrections
This update fixes issues in the Website editor, including a Safari problem that could prevent users from typing in menu URL fields and occasionally crash the browser. It also removes an unwanted white bar at the bottom of edited pages, making the editing experience smoother and cleaner.
Original PR description
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
Popovers opened inside dialogs now receive focus correctly, including fields that should be focused automatically. This improves keyboard navigation and avoids confusing cases where users cannot interact with the expected popover content.
Original PR description
This PR also includes `[IMP] web: soften the UI active element takeover` This is needed in order to make possible `[FIX] web: fix popover in dialog with useAutofocus`
This fix prevents certain filter conditions from being changed into a different shape when they are converted internally. It helps ensure rules using dynamic values continue to behave as intended, reducing the risk of incorrect filtering or evaluation.
The mobile website menu now adjusts to the visible browser area, so visitors can see the full menu even when browser controls take up screen space. This improves navigation on phones and helps prevent users from missing menu options.
Original PR description
Prior to this commit, on mobile, we couldn't see the entire offcanvas menu because the browser's UI was hidding part of it. To fix that, this commit adapts the height of the offcanvas menu using `dvh` unit. task-3582657 | Before | After | |--------|--------| | |  | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix keeps employee org chart display changes limited to the HR org chart, avoiding unintended effects on other hierarchy views. It also prevents users from creating circular manager relationships by dragging a manager under one of their own subordinates, protecting the org chart from disappearing or becoming unusable.
Original PR description
## [FIX] web_hierarchy,hr_org_chart: move specific changes in hr_org_chart Before this commit, some recent changes altered the generic view for Org Chart view of `hr.employee` model. The problem is…
## [FIX] web_hierarchy,hr_org_chart: move specific changes in hr_org_chart Before this commit, some recent changes altered the generic view for Org Chart view of `hr.employee` model. The problem is those changes also altered the other hierarchy view used in others models. This commit moves the recent specific changes to hierarchy view of `hr.employee` model to be sure to alter only the org chart view of that model. ## [FIX] web_hierarchy: detect cyclic before altering the parent field Before this commit, the user could drag the first employee displayed in the gantt and drop him on one of his subordinate. By doing that, the manager of that employee will be his subordinate and a cyclic will occur and no record will appear when the org chart will be reloaded because no employee will have no manager set. This commit fixes the issue by improving the cyclic detection when the user uses the drag and drop feature. That is, the action will be blocking when the system detects the user tries to drag and drop a manager to one of his subordinates.
The employee CV report layout has been adjusted so information lines up correctly. This makes printed or exported CVs easier to read and more professional for HR use.
Original PR description
task-3582107
The spreadsheet component was updated to the latest compatible version. This fixes an issue where some spreadsheet calculations could use outdated results, helping users see more reliable data in Odoo spreadsheets.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/3184728ea [REL] 17.0.2 https://github.com/odoo/o-spreadsheet/commit/74e28e1c9 [FIX] evaluation: fix incorrect invalidation
Time off balances now ignore future leave requests tied to accrual allocations when showing current availability. This prevents employees or managers from seeing misleading warnings that suggest someone has exceeded their currently available leave.
Original PR description
Before this commit, leaves linked to accrual allocations taken in the future would still be takin into account in the display, resulting in a warning if the leave excessed the amount that the employee currently had allocated. This leave removes any future leave to be taken into account if the leave type has any accrual allocation set for the employee.
The mail app now waits to load the out-of-focus message notification sound until it actually needs to play. This avoids unnecessary loading during normal use and can slightly improve responsiveness for users who never trigger the sound.
Original PR description
There is no reason to load this sound until it should be played.
The point of sale product screen now handles category images and input buttons more reliably across different screen sizes. Category images are hidden when space is limited, making the sales interface clearer and easier to use on compact displays.
This fixes an internal mismatch in how Point of Sale order setup logic is extended for employee and restaurant features. It helps prevent avoidable errors and keeps these POS features aligned with the core order process.
Original PR description
Prior to this commit, the patched setup functions of Order did not match the original signature.
Generating or importing serial numbers now replaces the matching old stock lines instead of leaving them behind. This prevents completed quantities from being overstated and saves users from manually deleting outdated lines.
Original PR description
When generating serial numbers or importing them, the old lines are still present and the quantity done gets raised by the quantity of the added lines. This forces the user to manually remove each old line one by one. This ensures that old lines are removed by the amount of newly created lines. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes several issues that could block or confuse leave request creation. It ensures leave can be created when French holiday localization is installed, supports requests for multiple employees, and shows clearer error messages for different leave creation scenarios.
Original PR description
This commits fixes 3 issues: - Traceback on the creation of a new leave: If the french holidays l10n is installed, creating a new leave was impossible due to an override of a method was not adapted to a change on the base method `_get_duration` - Impossibility to create a leave for more than 1 employee: the validity check was only done for the employee set in employee_id, which was resulting in a traceback if the leave was created for more than one employee. - Wrong error message: Before this commit, the error message given to the employee if the leave isn't possible to create was directed to an employee creating is own leave. As this is not the only way to create a leave, the message has been adapted to reflect every situation.
This fix ensures time off accrual plan levels calculate their value type correctly when additional levels are created. It helps prevent setup issues for HR teams managing multi-level leave accrual policies.
Original PR description
Before this commit, the `added_value_type` field wasn't properly computed in the `hr.accrual.plan.level` model resulting in some issues upon the creation of a second level.
Manufacturing order overviews now calculate readiness using the same reserved component quantities shown to users, including quantities reserved during multi-step manufacturing flows. This avoids confusing cases where components appeared reserved but the order still showed as not ready, and restores clearer wording in the PDF overview.
Original PR description
Previous to this commit, the qty reserved was only considering the currently reserved quantities in the MO, not the ones calculated and displayed in the MO Overview (i.e. including the quantities reserved in the picking during 2 step mrp). This would lead to showing reserved quantities but a "Not Ready" status, which is confusing and inconsistent. Now we pass the calculated component quantities to the method that calculates this state and ensure the calculation is consistent. Steps to reproduce: - enable 2 or 3 step mrp - create an MO with a component that is in stock at the stock loc - confirm MO and open "Overview" Also change "Quantity" back to "Reserved" in the pdf version of the MO Overview. This was a mistake change since this column name already exists and "Reserved" will be hopefully less confusing for users. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Domain fields now update their validation status correctly after edits in debug mode. Invalid folded domain fields are also shown more safely, avoiding errors and making the issue visible without disrupting the user.
Original PR description
First commit changes the behavior of the domain field such that it performs a quick validation of the domain after it has been edited in the debug input. This solves an issue where the isValid state was not properly updated after debug input edition. Second commit fixes an issue with the domain field where a traceback would be launched when an invalid domain is received. It also changes how invalid domains are displayed in foldable domain fields so that only the content of the domain selector component is displayed in this case. forward port of https://github.com/odoo/odoo/pull/139593
Validating time off now creates the related timesheet entries as expected, even when the time off type has no company set. This helps keep employee time records accurate and avoids missing timesheet data after leave approvals.
Original PR description
Befre this commit: timesheets are not being generated when validating time off After this commit: leave type form: in the absence of a company, we display the 'generate timesheets' boolean (in debug mode) and hide the project/task fields When generating timesheets from leave validation, we refer to the project/task set in the company of the employee if no company is set in the leave type
This update fixes several issues introduced by the recent calendar redesign, improving layout, spacing, scrolling, and clickability across desktop, tablet, and mobile views. It also restores smoother use of calendar-related features such as homeworking location buttons, event forms, sidebar filters, and sync controls.
Original PR description
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 update restores the delete button (trash can icon) that appears when users select a time slot during the "Share your availabilities" action in the appointment scheduling feature. The button had disappeared after a recent calendar redesign and is now working again, allowing users to easily remove unwanted time slots.
Original PR description
Before this commit, during the "Share you availabilities" action, when you select a time-window, the trash can overlay which suggests the time-window deletion was not shown. After this commit, the trash can overlay is back suggesting this deletion. Task-id: 3570053
This update fixes display issues in the Aged Receivable report where amounts weren't showing correctly, and improves the audit functionality for both Aged Payable and Aged Receivable reports. The changes use a cleaner, more maintainable audit system that makes financial reporting more reliable and auditable for accounts teams.
Original PR description
This PR contains two commits each of which has a different purpose : --- The first commit is a cleanup of the Aged Payable audit as it can be improved a lot by using the new "action_audit_cell"…
This PR contains two commits each of which has a different purpose : --- The first commit is a cleanup of the Aged Payable audit as it can be improved a lot by using the new "action_audit_cell" method callable on any report. It is also done in order to fix an unwanted behavior on the Aged Receivable report where no amounts would appear in the different cells of the report. Find more information about it in the first commit's message --- The second commit makes the Aged Receivable report auditable as well. The current behavior of the Aged Receivable is not to be auditable but the way the audit of the Aged Payable has been made makes it easy for the Aged Receivable to be auditable as well so let's do it. Find more information about it in the second commit's message. --- After both these commits are merged, the Aged Receivable report's cells show the amounts they are supposed to at every time, the Aged Payable report's audit system is cleaner and the Aged Receivable is now auditable.
This update improves the visual appearance and design consistency of the room booking application. The team reviewed and refined the user interface styling, layout, and form elements to ensure a more polished and cohesive user experience across the app.
Original PR description
This commit reviews the UI of the app and fixes issues related to the design consistency. task-3570261
This fix resolves a system error that occurred when users tried to view helpdesk tickets after changing a product's type in a related sales order. The issue happened because the system couldn't find the expected product information. We've updated the code to handle this situation gracefully, preventing the error and allowing users to access their tickets without interruption.
Original PR description
When a user changes product type of a service type product which is used in a sale order and then try to access helpdesk ticket linked to that sale order, the error is generated. Steps to reproduce:…
When a user changes product type of a service type product which is used in a sale order and then try to access helpdesk ticket linked to that sale order, the error is generated.
Steps to reproduce:
- Install helpdesk_sale_timesheet module.
- Create a sale order by selecting a customer and adding product 'Customer Care (Prepaid Hours)' (which is a service type product) and click on confirm button.
- Now create a helpdesk ticket in VIP SUPPORT and select the same customer and sale order which you have created.
- Now again go to same sale order and click on 'Customer Care (Prepaid Hours)' product and change its type to 'consumable' from 'service', a warning will occur close it and click on save button.
- Now click on helpdesk ticket smart button, the error will occur.
Error:
```
File "odoo/http.py", line 2139, in __call__
response = request._serve_db()
File "odoo/http.py", line 1715, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "odoo/service/model.py", line 133, in retrying
result = func()
File "odoo/http.py", line 1742, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 1943, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 191, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 717, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 34, in call_button
action = self._call_kw(model, method, args, kwargs)
File "addons/web/controllers/dataset.py", line 26, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 466, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "odoo/api.py", line 453, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "home/odoo/src/enterprise/saas-16.4/helpdesk_sale_timesheet/models/sale_order.py", line 37, in action_view_tickets
default_sale_line = next(sol for sol in sorted_line if sol.product_id.detailed_type == 'service')
StopIteration: null
```
The error is occurring because the iterable has reached to its end in next function when condition in it is getting False over here - https://github.com/odoo/enterprise/blob/1188db8cba436b887331bef8e07f6f1fafbe1982/helpdesk_sale_timesheet/models/sale_order.py#L37
To solve this error we are giving default value to next function.
sentry-4560590481
Forward-Port-Of: odoo/enterprise#49593This fix resolves an issue where visitors could not be opened directly from the station view in the kanban interface. Users can now properly access and view visitor information from the front desk station, improving the workflow efficiency for reception staff managing visitor check-ins.
Original PR description
task-3577104
This update fixes a critical issue in the account import feature where import options were not being properly configured, causing imports to fail. The fix ensures that field creation settings are correctly applied during the import process, allowing users to successfully import account and partner data without errors.
Original PR description
- It is necessary to extend the BaseImportModel to properly update `name_create_enabled_fields` in importOptions, instead of doing it in the import action. When the import is executed, the options are retrieved from the model and the `name_create_enabled_fields` thus remains empty, preventing a smooth import. - `this.current === "imported"` is no longer relevant for the import, so we need another solution to check the import state. task-3549609 Forward-Port-Of: odoo/enterprise#50088 Forward-Port-Of: odoo/enterprise#48786
This update corrects how taxable amounts are calculated in US payroll salary rules. The fix ensures that tax deductions and withholdings are computed accurately based on the proper taxable income amounts, which is critical for correct employee paycheck calculations and tax compliance.
Original PR description

This fix resolves an access error that was preventing users from placing drink orders through the frontdesk module. The issue has been corrected in the order processing system, allowing employees to complete drink orders without encountering permission errors.
This update hides the recurring leaves count field from the maintenance views in normal operation, keeping it visible only for developers in debug mode. This cleanup improves the user interface by removing unnecessary technical details from the standard maintenance screens.
Original PR description
except for debug mode
The 'Discard' and 'Save' buttons in the Create Workspace wizard were overlapping. This fix adds proper spacing between the buttons so they no longer collide, improving the user experience when creating new workspaces.
Original PR description
**Before this PR:** The 'Discard' button was colliding with the 'Save' button in the 'Create Workspace' wizard. **After this PR:** There will be proper space between both buttons. **Task**-3537818 Forward-Port-Of: odoo/enterprise#50059 Forward-Port-Of: odoo/enterprise#49701
A technical configuration flag was accidentally omitted from a function in the POS Preparation Display module during a recent update. This fix restores the missing API model designation to ensure the function works correctly with Odoo's system architecture.
Original PR description
Add api.model flag to a function. It was forgotten in a last commit.
This update fixes two critical bugs in the deferred accounting reports: one where invoices weren't appearing in the correct reporting period, and another causing system errors when deferral dates are identical. These fixes ensure accurate financial reporting and prevent application crashes when processing deferred expenses.
Original PR description
See commits :) Forward-Port-Of: odoo/enterprise#50092 Forward-Port-Of: odoo/enterprise#49965
Fixed an issue where hovering over milestones in the Project Gantt view caused an error when viewing the timeline in yearly format. The problem was that deadline data wasn't being properly formatted as a date, which only became apparent in the year view. This fix ensures milestones display correctly regardless of the selected time period.
Original PR description
**Steps:** - Open Project - Select any project - Add a milestone in a task - Switch to its Gantt View - Now in the view, change from month to year - on the mouseover, the error appears **Issue:** - On the hover of the mouse, an error appears when we are viewing in 'year', but it's working perfectly fine when it is displayed in days, 'week', or 'month'. **Cause:** - The 'deadline' is having the string data type hence we do not get the output. **Fix:** - Formatting the data type of 'deadline' correctly and converting it to DateTime. **Task:** 3422009 Forward-Port-Of: odoo/enterprise#44251
A keyboard shortcut used for urgent tickets in the helpdesk dashboard was conflicting with a menu shortcut due to recent system changes. This fix reassigns the urgent tickets shortcut to a different key combination to resolve the conflict and ensure both features work properly.
Original PR description
This commit changes the shortcut for the urgent tickets in the helpdesk dashboard view because this shortcut is now already used by the cog menu due to changes made in https://github.com/odoo/odoo/pull/140097. task-3560446 Forward-Port-Of: odoo/enterprise#49914
This fix ensures that resources with no scheduled shifts are properly displayed as empty lines when searched in the planning view. Previously, these resources would not appear in search results, making it difficult for users to see all available resources. The fix adds a missing configuration setting to the planning view in the sales planning and project forecast modules.
Original PR description
- impacted modules:
- sale_planning
- sale_project_forecast
Steps
=====
- Install module sale_planning
- Create a resource with no shift associated to it
- In the main planning view, search the name of this resource
Issue
=====
No empty line is displayed for this resource.
Cause
=====
The main action of planning is overridden in sale_planning and sale_project_forecast to change is context. The context key 'planning_expand_resource' was not present in those overridden contexts.
Fix
===
The context key is simply added in the context of the main action in those two modules.
Forward-Port-Of: odoo/enterprise#50034
Forward-Port-Of: odoo/enterprise#49993This fix resolves an issue where the customer (partner) field was missing when creating tasks directly from the Kanban board view in Field Service. Additionally, tasks were not being created in the correct stage. The fix restores the customer field visibility while keeping the project field hidden but functional for proper stage assignment.
Original PR description
Steps: - Open Field service - Select All task - Create task from kanban view - The partner_id field is missing and - Task isn't being created in the selected stage Issue: - When trying to create a…
Steps: - Open Field service - Select All task - Create task from kanban view - The partner_id field is missing and - Task isn't being created in the selected stage Issue: - When trying to create a task from the Kanban view using quick create, the 'partner_id' field is missing in the Kanban box - In quickcreate the task isn't being created in the selected stage Cause: - In the QuickCreate form view, replace the project_id field with regard to the raised issues Fix: - The partner_id field is already mentioned in the parent view, but project_id replaced that field in this view. After removing project_id, the parent view will be restored, and the partner_id will be visible - Before that the project_id is replaced from form view, it means we skip that field from the form view,it will not be considered as the project_id. But, we need the project_id for setting the default_stage_id in the Kanban view, But We don't need it to be visible in the form view, That's why project_id is invisible. task-3522178 Forward-Port-Of: odoo/enterprise#48653
This fix resolves an error that occurred when enabling Batch Transfers in Inventory settings with Mexican EDI Stock installed. Required fields were being lost when the system replaced the view header during batch transfer operations. The fix relocates these critical fields outside the header to ensure they remain available and functional.
Original PR description
To reproduce ============ - install Inventory then `l10n_mx_edi_stock` - on Inventory settings enable Batch Transfers -> Error Problem ======= the view can't find some fields added by `l10n_mx_edi_stock`, these fields were added on the header of the view but when enabling Batch Transfers, the header is remplaced in `stock_picking_batch.picking.form`, so these fields are lost. Solution ======== put these fields out of the header to avoid loosing them. opw-3562995 Forward-Port-Of: odoo/enterprise#49569