Daily updates from Odoo
Sunday, September 7, 2025
10 changes
Enhancements to existing features
Helpdesk teams can now start and manage product returns more easily from tickets, with clearer links between returns and the related customer issue. The update improves return creation, address selection, and visibility controls so teams spend less time correcting return details.
Original PR description
- make return button always visible - create new return when confirming a return for this new picking - link return with helpdesk ticket - create `Ticket` stat button in return form - add visibility rules for the `Ticket` stat button - select the customer delivery address if he set it - exclude `receipts` from the `Delivery to Return` domain - fix delivery generation when creating return - make the return line warning disabled in case no picking is selected - added test file to ensure the code flow Task-4781404
Resource-based appointment calendars now use resource filters instead of attendee filters. This makes it easier for staff to find relevant bookings without searching through attendee lists, improving calendar usability for resource scheduling.
Original PR description
Purpose ======= Removing the attendee filter on the resource based appointment calendar view as filtering on resource based events using the attendees is tedious. Add a filter on the linked appointment type resources instead. Specification ============= The attendee filter isn't adequate when talking about resource based bookings. The bookings aren't displayed if you don't set one of its attendee in the filters and looking through attendees using the "+ Add attendee" widget in the sidebar is not a viable solution. Technical ========= Removing all the 'filters', 'write_model', 'write_field', 'filter_field' and 'avatar_field' attributes from the 'partner_ids' field as using any of those automatically add the field in the filters (they are OR-ed to add the filter info in the calendar arch parser). Task-5059001
Task templates are now stored separately from day-to-day tasks, reducing confusion and preventing templates from appearing in normal task workflows. This makes task lists cleaner and helps teams avoid accidentally using or editing templates as real work items.
Original PR description
_*= industry_fsm_report,industry_fsm_sale,industry_fsm_stock, timesheet_grid, project_enterprise, project_helpdesk, website_appointment_sale_project ### Challenge: Previously, both regular tasks and…
_*= industry_fsm_report,industry_fsm_sale,industry_fsm_stock, timesheet_grid, project_enterprise, project_helpdesk, website_appointment_sale_project ### Challenge: Previously, both regular tasks and task templates were stored in the same `project.task` model and distinguished using the `is_template` field. This caused unnecessary domain filters and confusion across features where task templates were not expected. Every task-related action required an explicit domain to exclude task templates. If the domain was missing, both records would appear, leading to confusion and potential misuse. ### In this improvement: - We introduced a new model `project.task.template` for storing task templates. - All existing tasks with `is_template=True` have been moved to the new model. - Removed the chatter from project.task.template to keep the interface clean and reduce unnecessary activity logs. - Archived task templates older than 3 months as part of routine system cleanup **Example (Before):** **Model**: `project.task` | Name | Allocated Hour | Worksheet | Subtask | Priority | Template | |------------------|----------------|-------------------|-------------|----------|----------| | Task A | 20 | Default Worksheet | Subtask 1 | High | False | | Template Task B | 20 | Default Worksheet | Subtask 2 | Low | True | ------------- ### **Now:** **Model**: `project.task` | Name | Allocated Hour | Worksheet | Subtask | Priority | |---------|----------------|-------------------|-----------|----------| | Task A | 20 | Default Worksheet | Subtask 1 | High | **Model**: `project.task.template` | Name | Allocated Hour | Worksheet | Subtask | Priority | |------------------|----------------|-------------------|-------------|----------| | Template Task B | 20 | Default Worksheet | Subtask 2 | Low | This separation ensures clearer architecture and avoids accidental inclusion of templates in task operations. task-4919945
Several business dashboards now use newer spreadsheet capabilities such as geo charts, carousel views, and improved sorting. This makes key CRM, payroll, marketing, purchasing, rental, and subscription metrics easier to explore and present.
Payroll users now see worked days and salary inputs in separate tabs instead of a combined worked days and inputs tab. This makes payslip review easier by placing additional salary items in the dedicated salary input area across affected payroll localizations.
Original PR description
We split the worked days & inputs tab into worked days and the salary input tab which already exists.
Location forms now show a barcode preview when a barcode is set, making warehouse setup easier to verify. The obsolete scrap-location flag was replaced by the existing Inventory Loss location type, reducing duplicate configuration and simplifying location organization.
Original PR description
- Removed the `Is scrap location` field and replaced it with the `Inventory Loss` location type because `Is scrap location` is useless when we already have an lcoation type of inventory Loss. - A barcode preview is now displayed on the location form view when a barcode is set for the location. TaskId: 4728397
The invoice OCR can now recognize when an uploaded document is a receipt. When a receipt is detected, the system updates the document type automatically, reducing manual corrections and helping accounting teams process documents faster.
Original PR description
The OCR can now detect whether a document is a receipt. If it is, it will automatically update the `move_type` accordingly. task-[4776275](https://www.odoo.com/odoo/project/2068/tasks/4776275)
The appointment calendar now focuses resource-based bookings on appointment resources instead of attendees, making it easier for staff to find the right bookings. Related calendar and Gantt booking screens were also streamlined so users can create, edit, and manage appointments with clearer capacity handling.
Original PR description
Purpose ======= Removing the attendee filter on the resource based appointment calendar view as filtering on resource based events using the attendees is tedious. Add a filter on the linked appointment type resources instead. Specification ============= The attendee filter isn't adequate when talking about resource based bookings. The bookings aren't displayed if you don't set one of its attendee in the filters and looking through attendees using the "+ Add attendee" widget in the sidebar is not a viable solution. Technical ========= Removing all the 'filters', 'write_model', 'write_field', 'filter_field' and 'avatar_field' attributes from the 'partner_ids' field as using any of those automatically add the field in the filters (they are OR-ed to add the filter info in the calendar arch parser). Task-5059001
Belgian credit time is now managed through work entry types in working schedules instead of a general part-time setting on employee versions. This makes Belgian payroll setup better aligned with local legal rules and clarifies how HR teams create credit time arrangements through the schedule change wizard.
Original PR description
task-4578909
This update changes how tax report lines handle reverse-charge and similar tax tag scenarios, reducing the risk of amounts being shown with the wrong sign. It improves the reliability of accounting and statutory reports across multiple country-specific reporting modules.
Original PR description
See community commit for more details