Daily updates from Odoo
Tuesday, June 16, 2026
32 changes
2 changes
Enhancements to existing features
This update streamlines the synchronization of point-of-sale (POS) transactions with Fiskaly for both retail and restaurant orders. It optimizes the flow by sending complete transaction data only upon order validation, reducing unnecessary updates and improving efficiency. This change ensures accurate and timely reporting of sales data to Fiskaly.
Original PR description
In this commit: ------------------ - Maintain separate Fiskaly transaction flows for retail (short tx) and restaurant (long tx) orders as discussed with the Fiskaly team. - `Initialize order…
In this commit: ------------------ - Maintain separate Fiskaly transaction flows for retail (short tx) and restaurant (long tx) orders as discussed with the Fiskaly team. - `Initialize order transactions` with an empty payload when the `first product` is added. - Start `receipt transactions` with an empty payload when the `first payment line` is added. - For retail flows, no intermediate order updates are sent to Fiskaly before finalization. - For restaurant flows, create additional transaction updates during kitchen synchronization. Ensure already synchronized products are not resent, and only newly added or updated quantities are included in the payload. - `Finalize order and receipt transactions` with complete order lines and payment details when we validate the order. task: 6208963 Reference: <img width="1863" height="1285" alt="de_tss_flow" src="https://github.com/user-attachments/assets/9140788e-7948-4a08-9f11-27197b22ca8b" /> Forward-Port-Of: odoo/enterprise#120529 Forward-Port-Of: odoo/enterprise#117526
This update adds a time limit to the Odoo profiler, preventing excessively long query analysis. The system now automatically tracks and commits profiling data at regular intervals, improving performance and reducing the impact on user experience. This ensures the profiler remains responsive and efficient.
Original PR description
Modify the query collector so that it add an entry before the query runs and updates the time after it runs. use the async collector periodic sampling to commit the profiler after a time limit. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#268750 Forward-Port-Of: odoo/odoo#215034
4 changes
Enhancements to existing features
This update enhances the synchronization of financial transactions with Fiskaly for both retail and restaurant orders. It streamlines the process by sending complete transaction data only upon order validation, improving efficiency and accuracy. This change ensures smoother integration with Fiskaly's systems.
Original PR description
In this commit: ------------------ - Maintain separate Fiskaly transaction flows for retail (short tx) and restaurant (long tx) orders as discussed with the Fiskaly team. - `Initialize order…
In this commit: ------------------ - Maintain separate Fiskaly transaction flows for retail (short tx) and restaurant (long tx) orders as discussed with the Fiskaly team. - `Initialize order transactions` with an empty payload when the `first product` is added. - Start `receipt transactions` with an empty payload when the `first payment line` is added. - For retail flows, no intermediate order updates are sent to Fiskaly before finalization. - For restaurant flows, create additional transaction updates during kitchen synchronization. Ensure already synchronized products are not resent, and only newly added or updated quantities are included in the payload. - `Finalize order and receipt transactions` with complete order lines and payment details when we validate the order. task: 6208963 Reference: <img width="1863" height="1285" alt="de_tss_flow" src="https://github.com/user-attachments/assets/9140788e-7948-4a08-9f11-27197b22ca8b" /> Forward-Port-Of: odoo/enterprise#120218 Forward-Port-Of: odoo/enterprise#117526
This update automatically populates the company registry information in Odoo for Swedish businesses based on their VAT number. Swedish VAT numbers always start with 'SE' followed by digits, and this change uses that pattern to accurately identify and fill in the company registry. This improves data accuracy and streamlines accounting processes for Swedish customers.
Original PR description
Organization number is part of the VAT number Official reference: https://www.skatteverket.se/foretag/moms/kopavarorochtjanster/inkopfranandraeulander/kopavarorfranandraeulander.4.3a7aab801183dd6bfd380005738.html > I Sverige börjar alla VAT-nummer med bokstäverna SE (landskoden) och avslutas med siffrorna 01. Om du har en enskild firma följs landskoden av de 10 siffrorna i ditt personnummer. Om du har ett bolag eller en förening följs landskoden av de 10 siffrorna i organisationsnumret. VAT-numret skrivs utan bindestreck. which translates to > In Sweden, all VAT numbers begin with the letters SE (the country code) and end with the digits 01. If you are a sole proprietor, the country code is followed by the 10 digits of your personal identification number. If you are a corporation or an association, the country code is followed by the 10 digits of your organization number. The VAT number is written without a hyphen. Forward-Port-Of: odoo/odoo#269590
This update enhances the payment confirmation screen in the Point of Sale (POS) system. Now, customers see a 'Processing...' indicator during payment finalization and a visual checkmark with the amount paid upon successful completion. This provides clearer feedback and a more polished user experience.
Original PR description
In this commit : - Show "Processing..." text while payment finalization is running - Show animated success checkmark and "Amount Paid" once processing completes - Remove warning notification when clicking during processing - Extract shared checkmark animation into reusable template - Update tour tests to verify the success state Task:6246377 Forward-Port-Of: odoo/odoo#269428 Forward-Port-Of: odoo/odoo#267635
This update changes the color of the 'To Review' status badge on employee records from grey to orange. This improves readability, particularly in dark mode, ensuring that HR staff can quickly identify and address employees needing review.
Original PR description
The 'To Review' status on employees uses a grey badge ('secondary'), which has poor contrast and is nearly invisible in dark mode.
Update the 'review_state' field options to change '2_to_review' to 'warning' (orange). This ensures the badge is readable in both light and dark modes.
Task: 6289919
Forward-Port-Of: odoo/enterprise#1202683 changes
Enhancements to existing features
This update automatically populates the company registry information in Odoo for Swedish businesses using their VAT number. Swedish VAT numbers always start with 'SE' followed by digits, and this change leverages this pattern to streamline data entry. This improves accuracy and reduces manual effort for users operating in the Swedish market.
Original PR description
Organization number is part of the VAT number Official reference: https://www.skatteverket.se/foretag/moms/kopavarorochtjanster/inkopfranandraeulander/kopavarorfranandraeulander.4.3a7aab801183dd6bfd380005738.html > I Sverige börjar alla VAT-nummer med bokstäverna SE (landskoden) och avslutas med siffrorna 01. Om du har en enskild firma följs landskoden av de 10 siffrorna i ditt personnummer. Om du har ett bolag eller en förening följs landskoden av de 10 siffrorna i organisationsnumret. VAT-numret skrivs utan bindestreck. which translates to > In Sweden, all VAT numbers begin with the letters SE (the country code) and end with the digits 01. If you are a sole proprietor, the country code is followed by the 10 digits of your personal identification number. If you are a corporation or an association, the country code is followed by the 10 digits of your organization number. The VAT number is written without a hyphen. Forward-Port-Of: odoo/odoo#269590
This update integrates with the new Gmail Chrome and Firefox extension to automatically capture email data (sender, recipients, etc.) related to timesheet activity. Odoo then uses this information to provide more relevant suggestions and tracking for timesheets, improving project management insights.
Original PR description
[IMP] timesheet_grid: Gmail watcher In this commit, Odoo now consumes data from the new Gmail Chrome and Firefox web extension, which captures the from, to, cc, and bcc fields of read and composed emails and sends them to Activity Watch. Odoo retrieves these events, extracts the emails, searches for partners linked to projects and/or tasks, and adds them to suggestions as keyEvents. task-5956040
This update ensures that all user-provided descriptions for invoice lines are accurately exported in UBL format. Previously, the system only supported a single description tag, but this change now correctly handles multiple descriptions, preventing data loss and improving the accuracy of UBL invoices.
Original PR description
1) Previously, we were supposing that only one <cbc:Description> tag could be found on InvoiceLine item. After checking the UBL XSD, I found we could have multiple Description tags for one item. 2) The import order of <cbc:Name> and <cbc:Description> on the invoice line now has been changed to be more accurate and prevent loss of information. The export has been adapted to this change too. Now, we export the actual description written by the user. task-6153895 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#261949
23 changes
Enhancements to existing features
This update enhances the flexibility of the Hong Kong payroll localization by streamlining salary rules based on categories. This allows for easier creation of new reporting rules and supports custom salary structures, improving accuracy and adaptability for tax reporting requirements.
Original PR description
This task aims to improve flexibility in the Hong Kong localization by reworking the salary rules and declarations so that we make full use of categories. IRD declarations are now built purely by summing categories, allowing to easily add new rules while targeting specific report cases. We also remove the hardcoded reference to specific salary structures when possible, opening support for custom structures to be reported as well if their rules use the pre-defined categories. task-6100375
This update simplifies the integration with Monster by moving the Monster ID information from employee types to contract templates. This change allows each localization to manage its own Monster settings, reducing complexity and improving flexibility. The system now reads Monster IDs from contract templates instead of employee types.
Original PR description
**Version:** - master This PR introduces improvements to **hr_recruitment_integration_monster** module, focuses on removing the dependency of this module from employee module: - Moved monster_id field from hr.employee.type to hr.version (contract template). - Removed the data file from monster integration module as no generic hr.version data files exist in base hr module. - Each localization is now responsible for setting monster_id values on their own contract templates. - Updated the job posting logic to read monster_id from contract template instead of employee type. **Task-6190560**
This update enhances the Odoo Enterprise website configuration tool, streamlining the process for businesses to customize their online presence. Specifically, it adapts the website generator hook to a new description screen and adds a welcome message for the AI assistant, improving the user experience.
Original PR description
This PR is linked to the community PR #odoo/262484 improving the website configurator. Improvements: - Added a custom first-message subtitle for the AI assistant after the configurator. - Adapted the Enterprise website generator hook to the new description screen. task-5910875
This update adds dropzones to controller pages within the Enterprise module, improving the user experience for tasks like appointments and helpdesk requests. Standardizing dropzone messages ensures a more consistent and intuitive workflow for users interacting with these features.
Original PR description
*: appointment, website_appointment, website_helpdesk This commit introduces the missing dropzones for controller pages and standardizes the dropzone messages. task-4430461 Community: https://github.com/odoo/odoo/pull/233738
This update enhances the Time Off dashboard's usability by dynamically filtering time off requests based on the user's team and department. This provides a clearer and more relevant overview of employee time off, improving efficiency for HR and managers. It also updates the Gantt and Calendar views for a better user experience.
Original PR description
Purpose: - Improve usability and clarity of the Time Off dashboard and overview by enhancing UI layout, adding meaningful data (units, statuses), and applying some default behaviors. This PR includes: - Extended the Overview SearchModel to dynamically apply 'My Team' or 'My Department' filters based on the current user's hierarchy. - Apply the behavior to both Calendar and Gantt overview views. Related Community PR: https://github.com/odoo/odoo/pull/263006 task-6132977
This update integrates the Belgian flat-rate payroll system with job categories within Odoo. Previously, flat-rate calculations were separate; now, they are linked to specific job roles, ensuring accurate payroll processing for employees in Belgium. This improves reporting and compliance with local tax regulations.
Original PR description
Task-6128111
This pull request updates the design of the frontdesk interface to ensure it looks consistently good across different devices and screen sizes. The changes focus on improving the overall user experience and responsiveness, particularly in key areas like the host selection screen. A new feature was also added to detect custom background images.
Original PR description
Follow-up of: - https://github.com/odoo/enterprise/pull/119827 - https://github.com/odoo/enterprise/pull/120380 --- This PR review the overall frontdesk design to improve responsiveness and…
Follow-up of: - https://github.com/odoo/enterprise/pull/119827 - https://github.com/odoo/enterprise/pull/120380 --- This PR review the overall frontdesk design to improve responsiveness and consistency across views. task-6022341 | master | this PR | |--------|--------| | <img width="1021" height="765" alt="image" src="https://github.com/user-attachments/assets/d981f222-e3ce-42ae-9846-8eb05378fb46" /> | <img width="1022" height="769" alt="image" src="https://github.com/user-attachments/assets/4c49206b-3022-40bc-9ce6-e8e374156c6d" /> | | <img width="1025" height="767" alt="image" src="https://github.com/user-attachments/assets/1b929595-c8fb-4863-9c02-2c4d8cd00376" /> | <img width="1023" height="766" alt="image" src="https://github.com/user-attachments/assets/750b4423-be14-4974-bdde-4a8e332e6f29" /> | | <img width="1020" height="764" alt="image" src="https://github.com/user-attachments/assets/45cdad54-0654-4d86-a844-4b004400bab9" /> | <img width="1017" height="758" alt="image" src="https://github.com/user-attachments/assets/c848e800-5b4f-4a70-a718-d1d6d48ae411" /> |
This update adjusts the number of badges displayed on shift templates to a maximum of 4. Previously, the limit was lower, which could restrict the visibility of important scheduling information. This change improves usability and ensures all relevant details are easily accessible for shift planners.
Original PR description
This commit changes the maximum visible badges limit to 4 for shift templates. task-3705263
This update introduces a new wizard that simplifies the process of splitting journal items, such as bills, into individual lines for asset creation. Previously, users had to manually split large lines, which was time-consuming. This automation streamlines workflows and improves efficiency for creating assets from multiple transactions.
Original PR description
This commit allows the user to manipulate move lines dynamically. It is often the case that when you have a bill line of 10 items you want to create assets for every single item in that line. Right now you need to split the line manually into 10 different lines and then create assets from them. The split wizard automates this flow. task-6222463
This update improves the report editor by displaying a clear warning in the sidebar if a report block is shared with another user. This helps ensure collaborators understand who is editing a report and prevents potential conflicts. It's a simple but important enhancement for team collaboration.
Original PR description
In the report editor, the sidebar show if the currently editing block is shared. If so, the name and a warning is shown in the sidebar. TASK-6144417
This update improves the timesheet timer by prioritizing recently used projects, tasks, and helpdesk tickets. This reduces the time users spend searching for relevant records and streamlines the timesheet entry process. The change maintains existing prefill functionality for a seamless experience.
Original PR description
Before this PR --- The systray timer used the default search ordering, making users repeatedly search for projects, tasks, and helpdesk tickets they had recently tracked time on. After this PR --- The systray timer now ranks projects, tasks, and helpdesk tickets according to recent timesheet activity. Frequently used records are surfaced first while preserving the existing prefill behavior, making timer selection faster and requiring fewer manual searches. task - 6216535 Forward-Port-Of: odoo/enterprise#118299
This update introduces a new boolean field in fleet vehicles to manage CO2 emission calculations. When selected, it intelligently copies CO2 values from similar vehicle models (diesel or gasoline) if available, or multiplies the default value by 2.5. This ensures more accurate tracking of vehicle emissions.
Original PR description
[IMP] l10n_be_hr_payroll: false hybrid:
1 - false hybrid boolean field is added to the fleet_vehicle_model
1.1 - I added it to fleet_vehicle as a related field
1.2 - It is displayed in fleet_vehicle_model view conditionally
2 - When Plug-in diesel is selected and false_hybrid is ticked as true
2.1 - Look to other diesel model with same name and if there are any, take its default_co2 and use it in this model
2.2 - If not, multiply the current default_co2 by 2.5
3 - When one of the Plug-in gasoline/full-hybrid is selected and false_hybrid is ticked as true
3.1 - Look to other gasoline model with the same name and if there are any, take its default_co2 and use it in this model
3.2 - If not, multiply the current default_co2 by 2.5
task - 6146410This update simplifies the naming of new fields created within Odoo's Studio interface. Previously, fields received random, complex names, making them difficult to manage. Now, fields are named with a consistent 'x_studio_[field_type]_[n]' format, ensuring clarity and ease of identification.
Original PR description
Currently, a new field created with Studio will have a randomly generated name (ie: `x_studio_integer_field_p1a_c0s291499`). This commit simplifies the generation as follows: `x_studio_[field_type]_[n]` with `n` being an increment to avoid duplicates. (ie: `x_studio_integer_1`). task-6241678
This update enhances the timesheet and attendance app's systray by allowing users to access both check-in options based on their permissions. A new user role has been added to control access, and the systray now dynamically displays relevant check-in options depending on the user's rights, improving usability.
Original PR description
1 - Normally, when the timesheet app is installed systray was always only including the timesheet, it was hiding attendance lines
1.1 - Now, it can include timesheet, attendance and both
2 - New right "User" is added to attendance (check-in and access are both okay but cannot modify anything in attendance)
3 - Check-in separation
3.1 - If no right for timesheet + attendance check in, no systray in the app
3.2 - If no right for attendance but at least User: own timesheets only right for timesheet, timesheet check-in is possible
3.3 - If no right for timesheet but at least User right for attendance, only attendance check-in possible from systray
3.4 - Else, both check-in options are put into the systray UI.
task - 5942545This update adds a confirmation popup when users reset manually modified salary rules. This ensures users understand the potential impact on database salary rules, preventing unintended consequences and improving data accuracy. It's a small change designed to enhance data integrity.
Original PR description
A new confirmation popup will be displayed to the user in case they reset a manually modified salary rule in order to inform them of the effects of that reset on the salary rules in the DB. Task: 6222776
This update enhances the softphone's call reporting feature by now displaying records from all partners within the same 'family' (defined by the same commercial partner ID). Previously, it only showed calls related to the individual partner. This change provides a more complete view of customer interactions.
Original PR description
voip_* = voip_crm, voip_helpdesk, voip_project, voip_sale, voip_sale_subscription In this commit, we call all partners with same commercial_partner_id are from the same partner family. In softphone "Go to" button, we now count and show records from all its family instead of only the records from itself. Task-[5437327](https://www.odoo.com/odoo/5778/tasks/5437327)
This update enhances the Odoo Enterprise payroll system to better comply with Hong Kong regulations regarding employee continuous status. New warnings are now triggered when employees approach key milestones (3 or 4 qualifying weeks) to ensure accurate reporting to eMPF and avoid legal issues. The warning color has also been updated for increased visibility.
Original PR description
Improve the 'Validated Payslip Not Reported To eMPF' by fixing the deadline to the 10th of the month, allowing a more accurate warning. Also change the color class of the warning to 'warning', as it is quite an important deadline to meet for legal compliancy. --- Under HK law, an employee earns continuous status if they maintain an unbroken streak of 4 "qualifying weeks". A week legally qualifies if the employee worked: - 17+ hours in that specific week, OR - 68+ hours in total across that week and the 3 preceding weeks. We are adding two new warnings to notify users about non-continuous employees that are approaching the continuous status: - One when the streak of "qualifying weeks" reach 3 - One when the streak reached 4 or more
This update enhances the accuracy of salary calculations for Belgian employees, specifically addressing potential negative net pay issues. It includes a new input for salary adjustments and ensures that salary rules correctly consider maximum seizable amounts, providing a more reliable payroll process.
Original PR description
- added a new input for salary adjustment of type Assignment of Salary (Prior) - reordered the rules for salary adjustments and changed the calculation to ensure that it doesn't result in a negative net - for Attachment and Assignment of salary, the amount now follows the Seizable Amount Percentages salary rule parameter (the max seizable amount is considered in the salary rules instead of showing a warning) - added a link to the payslip in the salary attachment chatter when a payment is recorded task-id: 5478677
This update now automatically logs the reasons why orders aren't synchronized with Lazada. Previously, determining the cause required manual investigation of order details. This enhanced logging provides clearer insights into synchronization issues, streamlining troubleshooting and improving overall order processing efficiency.
Original PR description
Before this commit, the only way to know why an order was not synchronized was to inspect the order details and infer the reason from the code. This commit now logs those reasons. Forward-Port-Of: odoo/enterprise#120511 Forward-Port-Of: odoo/enterprise#120212
This update streamlines the process of managing synced calendar accounts by removing unnecessary options and simplifying the user interface. The change improves usability by focusing on the core functionality of syncing events, addressing a previous complexity that rarely benefited users.
Original PR description
The user settings contained a wizard for disconnecting a synced account. This task simplifies it, removing some of the unnecessary options. A part of the wizard relating to re-sync policies was removed - the use cases where it would be useful are minimal, and letting the user decide which events to sync and which not to could lead to inconsistencies in the events Task-5346620
This update streamlines the inventory counting process by automatically focusing on the quantity field when a user edits a product barcode. Previously, operators had to navigate through multiple steps to enter quantities, now it's reduced to just a single input. This improves efficiency and reduces wasted time during inventory operations.
This update centralizes geolocation logic across Odoo, making it easier to use in various views like Gantt charts. It now dynamically updates maps with partner locations and routes, enhancing functionality and data accuracy. This change improves the overall user experience by streamlining location-based features.
Original PR description
Currently, geolocation is tied to the Map view. However, this may be used by other views later on (e.g., in Gantt to display travel times between field service interventions). Hence, this commit…
Currently, geolocation is tied to the Map view. However, this may be used by other views later on (e.g., in Gantt to display travel times between field service interventions). Hence, this commit moves all geolocation-related logic (address/coordinate lookups, partner geocoding, and routing) out of the `MapModel` and into a new `Geolocation` util in `web_enterprise`, allowing any view to take advantage of it. The `Geolocation` class exposes methods for (1) searching coordinates from an address, (2) reverse-geocoding coordinates to an address, (3) geolocating partners (and updating the records server-side), and (4) fetching routes. It dynamically switches between MapBox and OSM APIs based on token availability and/or returned errors. When using OSM, it internally throttles requests through an async queue to comply with the one-request-per-second limit imposed by the nominatim API. On the contrary, MapBox allows us to perform all requests in parallel. Further, this commit turns the map view totally asynchronous, meaning that it is directly rendered, and as partners become geolocated, the view is updated with pins/routes, and record groups are created in the side panel. task-6200247
This update allows businesses in Belgium to generate separate monthly payruns for employees, streamlining payroll processing. The new 'Multi Pay' button generates payruns for specific date ranges, creating detailed records for each month. This improves reporting and compliance for Belgian companies.
Original PR description
[IMP] test_l10n_be: separated months for payslips in payrun empty for now... task - 6253506