Daily updates from Odoo
Thursday, November 27, 2025
11 changes · master
Enhancements to existing features
This update revamps the project budget section on the dashboard, providing a clearer view of forecasted, actual, and difference amounts for expenses, revenue, and combined totals. Highlighting the difference amounts with color improves usability and helps project managers quickly identify budget variances.
Original PR description
The budget section of the project dashboard now displays budget types: ``` ╔═══════════════════════╦══════════╦════════╦════════════╗ ║ ║ Forecast ║ Actual ║ Difference ║…
The budget section of the project dashboard now displays budget types: ``` ╔═══════════════════════╦══════════╦════════╦════════════╗ ║ ║ Forecast ║ Actual ║ Difference ║ ╠═══════════════════════╩══════════╩════════╩════════════╣ ║ Expense ║ ╠═══════════════════════╦══════════╦════════╦════════════╣ ║ Office Setup ║ $3,500 ║ $1,200 ║ $2,300 ║ ╠═══════════════════════╬══════════╬════════╬════════════╣ ║ Total Expense ║ $3,500 ║ $1,200 ║ $2,300 ║ ╠═══════════════════════╩══════════╩════════╩════════════╣ ║ Revenue ║ ╠═══════════════════════╦══════════╦════════╦════════════╣ ║ Client Project Alpha ║ $1,000 ║ $6,800 ║ $700 ║ ╠═══════════════════════╬══════════╬════════╬════════════╣ ║ Website Redesign ║ $2,300 ║ $2,000 ║ $300 ║ ╠═══════════════════════╬══════════╬════════╬════════════╣ ║ Total Revenue ║ $2,400 ║ $8,800 ║ $1,000 ║ ╠═══════════════════════╩══════════╩════════╩════════════╣ ║ Both ║ ╠═══════════════════════╦══════════╦════════╦════════════╣ ║ Subscription Services ║ $2,200 ║ $1,900 ║ $300 ║ ╠═══════════════════════╬══════════╬════════╬════════════╣ ║ Total Both ║ $2,200 ║ $1,900 ║ $300 ║ ╚═══════════════════════╩══════════╩════════╩════════════╝ ``` The difference amount is also highlighted with an appropriate color based on its budget type, improving clarity and usability. task-4497632
This pull request adds comprehensive Hoot tests for the UrbanPiper integration, ensuring the functionality works as expected. Additionally, minor fixes were implemented to improve stability and data handling, specifically related to receipt printing and timer display accuracy.
Original PR description
## 1. Hoot test
in this commit:
- add HOOT tests for components, model, screen, and service
- added test for methods in `order_info_popup` and `order_display`
- include tests for `pos_order`, `ticket_screen`, and `pos_store`
- add utility to generate UrbanPiper-filled order
## 2. minor fixes
in this commit:
- kept serialized data for receipt printing
- ensure timer does not display negative values
- correct variable usage in ticket screen to fetch proper props for display order
- revamp `getTime` method to use l10n time format
task: 5048312
Forward-Port-Of: odoo/enterprise#100524
Forward-Port-Of: odoo/enterprise#93780This update improves payroll calculations for Dutch employees by accurately incorporating income tax and social security premiums. This ensures compliance with Dutch regulations and provides employees with correct payslip information, improving accuracy and reducing potential payroll errors.
Original PR description
Compute accurate payslips for the Netherlands task-4306973
This update enhances Odoo's database performance by introducing SQL aliases across various models and reports. Using aliases simplifies complex SQL queries, leading to faster data retrieval and improved system responsiveness. This change primarily focuses on internal optimizations within the database layer.
Original PR description
https://github.com/odoo/odoo/pull/234156
This update simplifies the Argentine VAT Book PDF report by removing the standard header and footer. This change aligns the report format with legal requirements in Argentina, ensuring compliance with official ledger book standards for VAT Book documentation.
Original PR description
**l10n_ar_reports:** This PR adds a new option in the cog menu of the generic report to print the VAT Book PDF without a header or footer. **account_reports:** Currently, there is no option to exclude the header from the PDF. This PR introduces a new `extra_context` parameter in the `export_to_pdf` method, allowing additional context to be passed and used as a condition when generating reports. task-5221428
This update adds new menus – Activity Types and Activity Plans – within the Appraisal configuration, streamlining the setup process for managing appraisals. This change enhances usability and ensures consistency across the HR modules, simplifying user workflows.
Original PR description
To improve usability and ease configuration in the Appraisal app, this commit adds two new submenus under the Appraisal configuration menu: **Activity Types** and **Activity Plans**. This change improves consistency across HR modules and simplifies setup for users managing appraisal-related activities. Task-5223262
This update allows users to directly create a Sales Order from a paid appointment booking within the Odoo backend. Previously, users could only create the appointment without linking it to a sales order. The new feature provides a streamlined process with visual cues and a wizard for limited customization before order creation.
Original PR description
*:appointment_account_payment NEED ==== Before this change, users could not make a manual link between meetings and a sale order, as is the case when booking a paid appointment. This means that when…
*:appointment_account_payment NEED ==== Before this change, users could not make a manual link between meetings and a sale order, as is the case when booking a paid appointment. This means that when in the back-end, the user can create a meeting for a paid appointment but cannot link it to a SO(L). SOLUTION ======== In order to centralize the management of appointments, in terms of quick overview and creation, we want the user to still be able to create new appointments from the gantt view, even in this use case. Therefore, we do not implement a product configurator, like we did in Event for instance. Instead, we simply give a visual feedback, being a top left triangle on the gantt pill, when the meeting is linked to a paid appointment, but not to any SO(L), meaning a payment may be due. Then, on the form view of the calendar event, we add a button to create a SO (when no SOL is linked, at least one partner beside the organizer is set, and other conditions are met, see show_so_creation_button) This button opens a new wizard, that allows some limited customization before creating the SO: the user can choose between attendees (beside the organizer's) and also toggle a confirmation of the SO on creation. The appointment and the total reserved capacity are also reminded there. Finally, the user can either create the SO or create and open it, in order to inspect (and eventually modify) the created record. Task-5012248
This update adjusts the maximum number of attendees allowed per appointment booking to 20. Previously, the limit was lower, which could restrict the capacity of certain bookings. This change improves the usability of the appointment scheduling feature for businesses.
Original PR description
Change the default value of allowed max capacity to 20. Task-5022849
This update enhances the LWF Summary report by adding company identification and correct date formatting, ensuring accurate and traceable reporting. The report now correctly aligns with Indian payroll workflows and restricts access to non-Indian companies, improving data integrity and user experience.
Original PR description
Before: - The Labour Welfare Fund Summary report header only displayed the main title. - Company information was missing, making reports less identifiable. - Labour Identification Number was not…
Before: - The Labour Welfare Fund Summary report header only displayed the main title. - Company information was missing, making reports less identifiable. - Labour Identification Number was not included in the report output. - Gratuity Calculation Report" was listed after "Labour Welfare Fund Report". - Updated sequences so Gratuity appears before Labour Welfare. - The LWF report displayed raw dates, resulting in inconsistent date formatting. - The report wizard opened even when the active company was not Indian. - LWF data was generated only from paid payslips, blocking use-cases where payslips were only validated. After: - Added company name below the report title for clearer identification. - Displayed the Labour Identification Number in the header section. - Updated sequences so Gratuity appears before Labour Welfare. - Dates in the report header are now properly formatted as dd/mm/yyyy. - The wizard checks the user’s active company and blocks access unless it belongs to India. - LWF lines now include payslips in both validated and paid states, ensuring timely report generation Impact: - Enhances clarity and traceability of the LWF Summary report. - Ensures users can easily identify which company and LIN the report belongs to. - Provides accurate report output, prevents usage in non-IN companies, and aligns data generation with actual payroll workflow. Task: 5000307
This update restricts the number of attendees displayed in email invitations to a maximum of 20 to prevent overly long lists. When more than 20 attendees are invited, the email will indicate '… and X more’ to manage communication clarity. This improves email readability and reduces potential issues with large attendee counts.
Original PR description
In order to avoid extremely long attendee lists, which can sometimes have hundreds of entries, limit the number of attendees shown in the various calendar.event and calendar.attendee mail templates to a maximum of 20. If more than 20, add '... and X more' where X is the number of attendees left beyond the displayed 20. COM PR: odoo/odoo#234386 Task-5059389
This update integrates previously separate benefit calculations into the core salary rules for Hong Kong payroll. This change ensures more accurate and compliant payroll processing by aligning benefit payments with overall salary structures. It improves the system's ability to handle complex HK payroll regulations.
Original PR description
this commit converts benefits into salary rules. task-5122333