Daily updates from Odoo
Monday, September 1, 2025
14 changes
2 changes
Enhancements to existing features
The HTML builder gains a new overlay panel that brings visual styling controls closer to the content being edited. This should make common design adjustments such as backgrounds, shadows, and image shapes more discoverible and faster for users building pages.
Original PR description
WIP
Point of Sale users can now switch the IoT Box connection mode directly from the local, online, or offline status button. This makes it easier to recover or choose the best connection method when devices need to communicate through either local polling or websocket mode.
Original PR description
We used to allow longpolling again manually if the IoT Box was reachable (by pinging it), but we couldn't force the connection to use websocket if needed. We now switch between modes when clicking the local/online/offline button in PoS. Task: 5055024
1 change
Enhancements to existing features
This update adds support for using and testing Odoo's paper-muncher report rendering tool, including timeout handling for web-based report processing. It helps improve reliability when generating or validating printable documents.
10 changes
Enhancements to existing features
The knowledge editor's revision history dialog has been improved and its automated checks were updated. This helps ensure users have a more reliable experience when reviewing prior content changes.
Original PR description
* adapt and improve tests task-3560677
Managers can now use the appraisal campaign wizard to start appraisals for the employees they manage. This improves HR workflow by allowing managers to initiate reviews directly while keeping access limited to their own teams.
Original PR description
-Previously, managers could not access the appraisal campaign wizard to launch appraisals for their employees. -Wizard access is now available to all users, limited to the employees they actually manage. -Views were updated so all users can see the "Launch Campaign" button, but only managers can create campaigns for their subordinates.
Auto-planning now treats flexible workers according to their daily and weekly capacity instead of forcing them into a standard 8-to-5 schedule. This helps teams plan shifts and project tasks more accurately, including shared tasks and round-the-clock operations, while avoiding overbooking.
Original PR description
[IMP] planning,project: auto plan for flexible resources Before this commit: - auto plan, for planning and project, considers flex resources as regular resources working with a regular calendar from…
[IMP] planning,project: auto plan for flexible resources Before this commit: - auto plan, for planning and project, considers flex resources as regular resources working with a regular calendar from 8 to 17. for fully flexible resources, they are considered working the full range, without checking leaves, and the overload on the day itself, there is no daily limit in the calendar, but the day is limited to 24 hours. - when a task is assigned to many users, it's planned with its real allocated hours, but the real time to allocated is allocated_hours divided by the number of users. After this commit: - flex resources should not follow a regular calendar as flex calendars doesn't have attendances, they can work at any moment of the day without exceeding a number of hours per day and a number of hours per week (configured in the flex calendar). The auto plan plans shifts/tasks without exceeding daily/week rate and without following a regular calendar, a flex employee is considered working from 00:00 to 23:59 to cover more use-cases, such as restaurants, hospitals, firefighters. Same for fully flexible employees, the auto plan makes sure no overload on a range of time, example: it's not possible to do a shift/task of 4 hours between 8 and 10 (only 2 working hours available) - hours to plan for tasks = allocated_hours / number of users task-4822880
Spreadsheet pivot views can now group data using a chain of related fields, such as grouping leads by a customer's country. This makes spreadsheet reporting more precise and helps users analyze business data through richer categories without leaving the pivot configuration flow.
Original PR description
This commit adds support for grouping by a sequence of fields in the spreadsheet pivot view. It allows users to define a sequence of fields to group by, for example, grouping the Leads by the country of the customer (partner_id.country_id). Task: 4883357
After closing a VAT or tax return period, users can now email payment instructions, including payment details and a QR code, to selected colleagues. This helps route payment information to the right people and marks the return as paid once the instruction email is sent.
Original PR description
Before this commit - users who close the VAT period isn't necessarily the one who pay, they need to be able to send the VAT instructions on how to file the return. After this commit - user after closing the tax period from VAT return payment wizard can send email to selected users with vat payment details and qr code to ease tax return payment process - return state will be marked as paid once the mail is send task-4852346
VoIP now includes data for providers that have been successfully tested, making them easier for users to find and set up. This reduces configuration effort and helps businesses get VoIP services running more reliably.
Original PR description
This commit makes working providers more discoverable for users and ease the providers' configurations by adding those providers' data in VoIP be default. Task-4987919
Point of Sale scales now use a shared connection service that can switch between multiple communication methods if one fails. This improves reliability for weighing products and supports smoother operation across IoT setups.
Original PR description
We now use the iot http service to manage scales. This allows using both webrtc, longpolling or websocket when one protocol or the other is failing. This commit also refactors the IotHttpService to bring a new global `onMessage` method that handles only listenting for events with fallbacks. (e.g. waiting for an event with webrtc fails? Fallback using longpolling). Community PR: odoo/odoo#223795 Task: 5031975
New salary offers are now always connected to the relevant employee or applicant and limited to people in the current company. This helps prevent offers from being created with mismatched company or person details, improving data accuracy in the salary offer process.
Original PR description
When creating a new offer: - it is always linked to either an employee or an applicant, depending on the application used, - the employee/applicant domain is restricted to the current company, - the 'company_id' is automatically set to the active company based on the chosen employee/applicant. task-4981877
Manual advance invoicing for post-paid subscriptions now bills the complete billing period instead of stopping at the current date. This gives businesses more predictable subscription invoices while still accounting for products that may be delivered during the period.
Original PR description
Currently when users are manually invoicing a post-paid subscription in advance (before the next invoice date), the invoice is generated for the past period until today --> Only a partial period. This has been done to avoid users to invoice a future period during which some other products may be delivered.
taskid-4929802The GSTR document summary for GSTR-1 Table 13 is now part of the main Indian reports module instead of a separate add-on. This simplifies setup and maintenance while keeping the required compliance reporting available without extra dependencies.
Original PR description
Before: - A separate module `l10n_in_reports_gstr_document_summary` was introduced across all stable versions up to saas-18.4 to provide GSTR1 Table 13 reporting After: - From saas-18.5 onwards, the GSTR document summary functionality is merged directly into l10n_in_reports. Impact: - Consolidates functionality into a single module for easier maintenance. - Ensures GSTR-1 Table 13 compliance continues without additional dependencies. Related Upgrade PR https://github.com/odoo/upgrade/pull/8269 Original Module PR https://github.com/odoo/enterprise/pull/85473
1 change
Enhancements to existing features
This change adds support for official Turkish company information codes needed for compliant Nilvera invoice submissions. It prevents invoices from being sent when required codes are missing or empty, and ensures those codes appear consistently in both PDF and XML outputs.
Original PR description
Description of the issue/feature this PR addresses: Nilvera requires official codes on company contacts for submission to be compliant. Current behavior before PR: Invoices may be sent to Nilvera…
Description of the issue/feature this PR addresses: Nilvera requires official codes on company contacts for submission to be compliant. Current behavior before PR: Invoices may be sent to Nilvera without the required codes, resulting in non-compliance. Currently, only the VKN and TCKN codes are sent, while other required codes are not supported. Desired behavior after PR is merged: Official codes are added as non-deletable tags (non-mandatory ones archived). An error is raised when required tags are missing or empty. Invoices cannot be sent to Nilvera without valid codes. Codes are always reflected in both PDF and XML. [IMP] l10n_tr_nilvera: support for official information codes Added codes as tags from the official list and archived non-mandatory ones. These tags cannot be deleted, and an error is shown on attempt. Invoices are blocked from being sent to Nilvera if either MERSISNO or TICARETSICILNO is missing, or if assigned but without a value. Codes are reflected in both PDF and XML. task-4992049 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#223182