Daily updates from Odoo
Thursday, October 23, 2025
30 changes · master
New functionality added to Odoo
VoIP users can now see calls in a calendar view, making it easier to plan and track scheduled call activity. This improves visibility over upcoming communications and helps teams manage follow-ups more effectively.
Original PR description
Task-5025572 Community: https://github.com/odoo/odoo/pull/224255
Enhancements to existing features
The equity transaction form has been reorganized to make key information easier to read and enter. Transaction, beneficial owner, and valuation records now have clearer names, and tracked security prices show the correct currency symbol for easier review.
Original PR description
This commit 1. Reorders fields on transaction form 2. Gives better display names for transactions, ubos, and valuations 3. Fixes the tracking of transaction security_price not having currency sign task-5144766 Forward-Port-Of: odoo/enterprise#97644
Multi-company financial reports can now group lines by account code before individual account. This makes it easier for users to compare and review accounts consistently across companies.
Original PR description
If the report has a line that contains a group by `account_id` and if the report is multi-company, we allow the user the group per `account_code` before `account_id`. task-5092712 Forward-Port-Of: odoo/enterprise#94920
The payroll payment report popup now shows a meaningful title instead of the generic “Odoo” label. This makes it clearer to users which payroll action they are performing and reduces confusion across supported payroll localizations.
Original PR description
When users clicked the Payment Report button, the popup window opened with the generic title, Odoo. This was confusing because it provided no context about the action being performed. This change introduces a dedicated action so that the wizard displays a meaningful title. task-5052018
HR salary configuration now lets users archive personal information fields, benefits, and resume items they do not want to use. This helps companies keep their preferred setup after upgrades, instead of removed items reappearing automatically.
Original PR description
…its and resume Some want to remove some personal info fields they don't want in their salary configuration but, after an upgrade, those fields are put back. These changes allow the archiving of personal info, benefits and resume so that users can configure what they want without worrying about an upgrade making the records come back. There was no need to add the active field in the personal_info and salary_resume models, since they were already included. I just had to add them in the views in these cases. task-4901052
Payslip action buttons have been renamed to use clearer wording. This makes payroll screens easier to understand by changing “Compute Sheet” to “Compute” and “Recompute whole sheet” to “Recompute whole payslip.”
Original PR description
. payslip compute sheet buttons renamed from "Compute Sheet" to "Compute" for better clarity . action button "Recompute whole sheet" renamed to "Recompute whole payslip"
Salary rule descriptions on payslips now wrap onto multiple lines instead of being cut off. This makes payroll information easier to read both on-screen and in printed or PDF payslips.
Original PR description
Ensures full description is visible on both the payslip view and PDF by wrapping text instead of cropping it. task-5034372
UrbanPiper test orders can now be launched directly from the POS frontend debug widget instead of the backend configuration page. This reduces tab switching and makes it easier for teams to validate the UrbanPiper order flow during setup or troubleshooting.
Original PR description
Before this commit: --------------- The UrbanPiper test order action was only accessible from the backend POS configuration form. This required opening two separate tabs to test the UrbanPiper order flow. After this commit: --------------- - The "UrbanPiper Test Order" action is now available directly in the frontend debug widget. - Removed the test order button from the configuration page. <img width="1308" height="108" alt="image" src="https://github.com/user-attachments/assets/706d0a88-4b52-42da-88cc-4bf2f80fab7a" /> Task-4977992
Icon resources are now loaded through a shared bundle in the affected apps, helping keep the interface consistent and easier to maintain. This is a minor technical improvement with low direct impact for everyday users.
Original PR description
Follow-up of https://github.com/odoo/odoo/pull/224663 See community PR for details: https://github.com/odoo/enterprise/pull/94023#issue-3387954727
The payroll employee view now consistently places the External Codes section at the end of the payroll area. This makes the screen layout more predictable for users and avoids the section appearing among other payroll fields depending on system loading order.
Original PR description
Made sure that the External codes Group appear last in the payroll view. Previously the `external_codes` group was added with `position="inside"` on the `payroll_group`, which caused it to sometimes appear in the middle of the payroll fields depending on the load order of inherited views. This commit changes the inheritance to use `position="after"` on `payroll_group`, so that `external_codes` is consistently inserted at the end of the payroll section. task - 5109281
The payroll and salary configuration screens now use the clearer label "Employee Record" instead of "Version" for employee-related records. This makes the wording easier for HR users to understand and aligns chatter messages with the updated terminology.
Original PR description
Rename "Version" to "Employee Record" in selection option of type `hr.version` and in chatter message. task-5074160
This update improves how Documents Spreadsheet keeps user-entered information during spreadsheet interactions, reducing the chance of losing or overwriting work. It also updates automated checks for charts and list views to ensure the behavior remains reliable.
Original PR description
Enterprise counter-part of https://github.com/odoo/odoo/pull/227449 This commit contains adaptation of tests. task-4756754
The AI website live chat now retrieves conversations through the dedicated chat channel system instead of a more generic messaging route. This is an internal improvement that should make the live chat integration cleaner and easier to maintain without changing the user experience.
Original PR description
This commit replaces the use of the `mail.thread` model to retrieve a channel with the direct use of the `discuss.channel` model.
The German tax report has been reworked after removing the balance column, so related calculations and report logic continue to align with the new layout. This keeps the report clearer and helps ensure German tax reporting remains accurate for businesses.
Original PR description
After removing the balance column, we need to refactor the code that depends on it task-5046641
The VoIP call history screens have been adjusted to work better on smaller devices, making recent calls easier to read and use on mobile. The update also improves visual alignment of phone details and status indicators for a cleaner, more consistent experience.
Original PR description
**Purpose:** - The form view was broken on mobile, making it difficult to read and interact with. - The list view was not usable on smaller screens, so a kanban (fake list) view was required for a better mobile experience. - The country flag was misaligned with the phone number in views. - The state badge was not vertically centered in the list view. **Specification:** - Fixed the form view layout for mobile while keeping the desktop layout intact. - Added a kanban view to improve readability and usability on small screens. - Updated “Recent Calls” redirection to open in kanban view on mobile and in list view on desktop. - Fixed alignment of country flag with the phone number. - Fixed vertical alignment of the state badge in list view. **Task**-5060875
BACS payments can now use UK account numbers and sort codes directly, instead of relying only on IBAN details. This makes setup more practical for UK bank accounts and removes an unnecessary journal field from Direct Debit mandates to keep payment handling clearer.
Original PR description
BACS was only supporting IBAN account type and extracting account number and sort code from it. Added support for BACS to handle account number and sort code(clearing number field) separately. Removing Journal fields on bacs.ddi, ss there's no reason that we have payment_journal_id field on the mandate, as all related journal logic is in the payments themself. task-4630586
The ESG emissions workflow now opens emitted emission records through a dedicated form, making navigation more consistent regardless of the source record. It also prevents users from choosing a physical calculation method when the required unit of measure is missing, avoiding save errors.
Original PR description
task-5152778
Resolved issues and error corrections
The ESG dashboard now uses colors that adapt correctly to dark and light mode, making its graphs easier to read. On mobile, initiative cards also give more room to key action buttons by hiding the total button.
Original PR description
Before this commit, the color chosen for the graphs in the ESG dashboard does not take into account the dark/light mode and so they does not have the right color when the user is in dark mode. This commit makes sure the graphs are well rendered in dark mode. task-5138512 Forward-Port-Of: odoo/enterprise#97646
The salary calculation now prevents gross salary from being shown as a negative amount. This avoids confusing or invalid payroll figures and ensures salary results stay at a sensible minimum of zero.
Original PR description
This commit fixes an issue where the gross salary was computed as negative. It makes no sense to have a negative gross salary. This commit min the computation to 0. task-5175923
This update fixes a display issue in Timesheets where text could overlap into timer button areas when using the monthly view with larger text size. It improves readability and prevents visual clutter in total and footer rows.
Original PR description
Steps to reproduce: - Open timesheets and change to Month scale. - Increase text size a little bit. - Scroll to the right side Issue: - You can see runover text being visible in timer button cell of Total row and Footer row. Reason: - It is due to z-index problem as z-index-* is deprecated from https://github.com/odoo/odoo/pull/165568 (from saas-17.4+). Fix: - Replace it with Bootstrap z-index class notated as z-*(-1 to 3) task-4949182 Forward-Port-Of: odoo/enterprise#96371
Fixed an issue where using Set Account during bank statement reconciliation could create an invalid matching rule and block the action. Users can now reconcile statement lines with similar references more reliably without seeing a regex validation error.
Original PR description
Currently, when a user uses the 'Set Account' button to reconcile a statement line, the system may also create a reconciliation model for fees for the given journal/account combination, based on the…
Currently, when a user uses the 'Set Account' button to reconcile a statement line, the system may also create a reconciliation model for fees for the given journal/account combination, based on the previous statement line reference pattern. To extract a patter from the references, the system computes the normalised longest common substring. This will be used as regex matching pattern of the newly created reconciliation rule. However, the common substring may end up with '\\', which is not a valid termination of a regex, leading to the error: `Invalid operation. The regex is invalid.` Steps to reproduce: - Have an account '646000 Test Account' - Create a Bank statement with label 'TEST REFERENCE BNK 2024' - Set Account 646000 - Create a Bank statement with label 'TEST REFERENCE BNK.OTHER' - Set Account 646000 Issue: Error `Invalid operation. The regex is invalid.` will raise blocking the action [opw-5086638](https://www.odoo.com/odoo/project.task/5086638) [opw-5062965](https://www.odoo.com/odoo/project.task/5062965) [opw-5123963](https://www.odoo.com/odoo/project.task/5123963) [opw-5166160](https://www.odoo.com/odoo/project.task//5166160) [opw-5159871](https://www.odoo.com/odoo/project.task/5159871) [opw-5160108](https://www.odoo.com/odoo/project.task/5160108) [opw-5109454](https://www.odoo.com/odoo/project.task/5109454) [opw-5086638](https://www.odoo.com/odoo/project.task/5086638) ... Forward-Port-Of: odoo/enterprise#97865
Sales users can once again enter allocated hours when planning shifts from a sales order. This fixes a missing field in the planning dialog, helping teams schedule service work with the correct expected duration.
Original PR description
Steps to reproduce: - Create a Sales order with planning services. - Click on To Plan stat button. - Click on empty cell Issue: - Plan dialog is opened but has missing allocated_hours field. Reason: - In this commit https://github.com/odoo/enterprise/commit/d21bd4b694ec63ba83bea077714a8fe928d6e014 allocated hours was merged with start_datetime using a widget and thus removed from view. - But in planning list view we hide start_datetime when we schedule shifts from sales order. Fix: - Add back allocated_hours conditionally to be visible when we schedule shifts as in other cases start_datetime is present. task-5117776 Forward-Port-Of: odoo/enterprise#96391
This update fixes how PFA amounts are calculated in Belgian payroll, helping ensure payroll results are accurate. It also reorganizes the related logic and adds test coverage for 13th-month payroll scenarios to reduce the risk of future calculation errors.
Original PR description
task-5103485
Corrects the display of spreadsheet filter tooltips when dark mode is active. This prevents the tooltip from appearing only partially styled and keeps the spreadsheet experience visually consistent until full dark mode support is available.
Original PR description
The fitler tooltip was displayed halfay in dark mode, while the rest of spreadsheet does not support dark mode yet. Task: [5162869](https://www.odoo.com/web#id=5162869&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) Forward-Port-Of: odoo/enterprise#97478
This fixes an issue where employees could not edit the personal information section in the salary configurator when the website editor component was not installed. The update restores access to the affected fields, helping HR salary configuration flows work reliably across setups.
Original PR description
Before this commit, when website was not installed (or more precisely html_builder), the salary configurator was not editable anymore due to ::before section that took the whole page. This was due to the changes made in https://github.com/odoo/odoo/pull/229554/. The style rule regarding relative positioned sections was move from html_editor to html_builder as this was a more website specific (or html_builder specific) rule. The fix should then be done in modules that used that rules but that does not depends on html_builder. The commit applies relative position to the personal info section ans force the ::before to let the pointer go through it to access underlying inputs. Task-5154145 Forward-Port-Of: odoo/enterprise#96644
Helpdesk SLA reports now let users add the SLA status grouping back after removing it. This avoids needing to reload the report view and makes reporting easier to adjust during analysis.
Original PR description
Currently, when the user opens the sla reporting view, if he removes the default grouping of sla_status, he has no way to get it back unless he reloads the view completly. This commit fixes this issue by adding the sla_status field to the group_by options. task-5076401 Forward-Port-Of: odoo/enterprise#95261
The last appraisal button is available again for employee profiles. This restores a shortcut that was accidentally removed, helping managers and HR users quickly access the most recent appraisal.
Original PR description
The action on res.users to see the last appraisal has been removed by this PR https://github.com/odoo/enterprise/pull/88518. This commit reintroduces the action in hr.employee.public. task-5166704 Forward-Port-Of: odoo/enterprise#97113
Chilean electronic vendor credit notes can now be imported correctly from DTE files. This prevents valid credit notes from being rejected as invoices, helping accounting teams process supplier adjustments without manual workarounds.
Original PR description
### Steps to reproduce Go to Accounting -> Vendor Bills Attempt to import a valid vendor credit note by dragging-dropping the DTE file in the list view. Notice how the vendor credit note gets created with an error: ``` Error importing attachment 'DTE.xml' (type=l10n_cl.dte): This specific error occurred during the import: You can not use a credit_note document type with a invoice ``` ### Analysis `_l10n_cl_import_dte` should set the move type to credit note when the document type code is '61', but does not. This was broken by 42744fcecdbd36e See https://github.com/odoo/enterprise/commit/42744fcecdbd36ea0101070c68299227a9f204a6#diff-044bc1ef3ea4878783a064258b4436b44b3064c5196c22d0d104daee8fde4501L294 ### Solution Correctly set move_type to `in_refund` if the document type code is '61' Linked issue https://github.com/odoo/odoo/issues/232348 task-none Forward-Port-Of: odoo/enterprise#97694
This fixes how VoIP contact searches combine phone keypad search terms with other contact filters. Users should see more accurate contact results instead of searches that are too restrictive and often return no matches.
Original PR description
t9_search should be ORed to the subdomain, which in turn should be ANDed to the domain. Currently, both the subdomain and the t9_search are ANDed to the domain, resulting in a "subdomain AND t9_search" condition, which is not correct and unlikely to match anything. Forward-Port-Of: odoo/enterprise#97811 Forward-Port-Of: odoo/enterprise#97731
Code cleanup and technical improvements
This update applies standard code quality checks to the VOIP area. It helps keep the codebase consistent and easier to maintain, with no expected change to day-to-day user behavior.
Original PR description
Forward-Port-Of: odoo/enterprise#97755