Thursday, April 18, 2024
102 changes · master
Enhancements to existing features
Users can no longer duplicate payslips, preventing accidental creation of multiple payslips for the same employee and pay period. This helps reduce payroll errors and keeps employee payroll records cleaner.
Original PR description
If a user duplicate a payslip, this payslip will have the same period and the same employee; it will create multiple payslips for the same period for the same user. It's why, the duplicate option is removed. task-3820229
Discuss now shows breadcrumbs, making it easier for users to move back through their navigation path. This improves usability by helping users keep context and return to previous areas more quickly.
Original PR description
This commit adds breadcrumbs to Discuss page, so that users can easily browse backwards. [Community PR](https://github.com/odoo/odoo/pull/153802) Task-3734245
Quality teams can now use Next and Previous buttons while reviewing worksheet-based quality checks. This lets users move between all quality control points without leaving the quality check wizard, making inspections smoother and faster.
Original PR description
This PR adds "Next" and "Previous" buttons to the quality checks flow in case the control point was of type "Worksheet". Therefore, users now can review quality points of type "Worksheet" and move between quality control points of all types without exiting the quality check wizard. Task-3635995
This update improves performance by reducing unnecessary links between user accounts and contact records. It helps large databases handle user searches and access checks more efficiently, with related updates across appointment, payroll, invoicing, subscriptions, and mail activity tests.
When a project’s sales order line is corrected, uninvoiced timesheet entries are now moved to the new line automatically. This reduces manual cleanup and helps ensure future billing is tied to the right sales order line.
Original PR description
Description of the issue/feature this PR addresses: There is no easy way to re-assign the time sheets to the correct SOL (changing the task's SOL does not change the non-invoiced time sheets automatically) Current behavior before PR: On a project, if a user put a wrong sale order line, and after that he changes this SOL, the timesheet line will not be moved. Desired behavior after PR is merged: On a project, if a user put a wrong sale order line, and after that he change this SOL, all non invoiced timesheet line will be moved to new line. TaskId: 2144703
Project planning now shows how many hours were originally planned for a task and how many have already been forecast, making workload planning easier. Forecast entries are also linked directly to their related tasks, helping teams navigate between planning and task details more quickly.
Original PR description
Currently, when forecasting resources for a task, there is no clear overview of the number of hours initially planned and what was already forecasted. This makes planning difficult. In addition, there is no direct link between the task and the forecast. id=1985510
Inventory users can now find transfers by searching for a product's barcode, not just product names or other product details. This makes it faster to locate relevant transfers when working with scanned items or barcode-based warehouse processes.
Original PR description
Task: https://www.odoo.com/web#id=2144636&action=327&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.25fbfdd24f92cda9559acded08742e61
Event teams can now view events on a map and manage attendee check-ins more flexibly from the barcode interface, including registering attendees for other ongoing events. The update also corrects how initial event dates are calculated, helping schedules display more reliably.
Original PR description
TODO
Helpdesk users can now turn wrongly routed customer inquiries into CRM leads from the ticket, carrying over customer contact details and assigning sales ownership. The update also ensures lead-to-ticket actions only appear for users with the right Helpdesk access, reducing confusion and permission issues.
Original PR description
Purpose ======= Some business inquieries end up in the Helpdesk pipeline by mistake. There is no direct way to convert those tickets into leads. In addition, there is an access right issue on the…
Purpose ======= Some business inquieries end up in the Helpdesk pipeline by mistake. There is no direct way to convert those tickets into leads. In addition, there is an access right issue on the current 'convert to ticket' button displayed on leads if the user doesn't have the Helpdesk > User access right level. Specifications ============== In Helpdesk ----------- - Add a 'fa-star Convert to Lead' button in non-primary on Helpdesk tickets - Only visible if: - the user has at least the Sales > Own Documents only access right level - the CRM app is installed - the 'Leads' feature is active - Open a modal with the following fields when clicking on the button: - Customer (should be prefilled with the info from the ticket) - Sales Team - Salesperson - If the user confirms, convert the ticket into a lead: populate the title, description and customer info (name, email, phone, mobile) based on the ticket - Add a Phone and a Mobile fields below the Customer Email one on helpdesk tickets In CRM ------ - The 'Convert to ticket' button on leads should only be displayed if the user has at least the Helpdesk > User access rights - Change the icon in front of the button to fa-life-ring - Put the 'Lead to Tickets' module in autoinstall when CRM + Helpdesk are installed TaskID: 2083049
Fleet access is now better aligned with employee and fleet roles. Fleet administrators retain full visibility, fleet users get appropriate vehicle access, and employees can view their assigned car and request eligible models from their profile.
Original PR description
Pad: https://pad.odoo.com/p/r.d4f0b5078c80af04780c7dfb1853c446 Task: https://www.odoo.com/web?#id=2144728&action=327&model=project.task&view_type=form&menu_id=4720
Field Service tasks now better support products tracked by lot or serial number, including selecting or removing the right tracking number from the task view. Stock movements also respect source locations, avoid removing already delivered items, and validate related multi-step deliveries when the task is completed.
Original PR description
Purpose ======= When a Field Service task is marked as done, the stock pickings linked to the SO are automatically confirmed. This flow works fine with a basic stock configuration, but it doesn't handle products tracked by Lots / Serial Numbers or multi-warehouse/locations set-ups. Specifications =============== 1. Products tracked by lots or by serial number Display products tracked by lots or by serial number among the products selectable from a task. Manage SN from this kanban view, open a modal to select/remove a corresponding serial number. If a lot/sn is set through the modal, set the same value on the stock.picking. 2. Avoid to remove already delivered products. 3. Source Location Add a 'Source Location' field on the fsm task, it must be consistent with SO and picking. 4. Multi-step routes: each picking should be validated when validation of FSM Task. TaskID: 2081191
This update brings the Chilean payroll localization and related HR contract screens in line with Odoo 12. It refreshes payroll setup data, salary structures, contract details, and reporting components so payroll teams can continue using the localization after the version upgrade.
Belgian payroll now keeps a record of all generated 281.10 and 281.45 tax sheets for employees. This helps payroll teams retain better documentation and access historical tax forms more reliably.
Original PR description
TaskID: 2034472
This update modernizes how several Odoo Enterprise apps handle and display exceptions, aligning them with changes in the core platform. It helps keep banking, payments, delivery, sales, manufacturing, and reporting flows reliable after the underlying error mechanism changed.
Original PR description
Complements https://github.com/odoo/odoo/pull/40669
Loyalty program discounts now behave consistently when an order contains products with different tax rates. This improves checkout accuracy and helps ensure discounts are calculated fairly and predictably for customers and retailers.
Original PR description
https://www.odoo.com/web#id=1981188&action=333&active_id=1737&model=project.task&view_type=form&menu_id=4720
Payroll processing is made more flexible by reducing its dependency on time off and work entry apps. Businesses can now manually enter worked days on payslips and still have salary amounts recalculated correctly, making payroll easier for users who only need payslips and accounting entries.
Original PR description
Payroll depend on time off and work entries, it limits people or fiduciaries who just want to generate payslip and make accounting entries. All amount of work days are computed on the payslip. So we can enter manually worked days and all amounts will be recomputed based on monthly salary and structure (for paid and unpaid work entry type). id=2092248
The timesheet app now shows favorite projects first and adds a “search more” option when additional projects are available. This helps users quickly pick common projects while still making it easy to find less-used ones without cluttering the dropdown.
Original PR description
Task: https://www.odoo.com/web?debug=1#id=49283&action=333&active_id=131&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.8a1da41bad626871ba09689432f33434
The eCommerce dashboard now uses the same website-based filtering as the Orders menu, so order figures are more consistent across views. This makes the dashboard more reliable for comparing online sales activity by website.
Forecast planning is easier to monitor with clearer hour totals on tasks and forecast forms. Creating forecasts is also smoother, with fewer validation issues and better project pre-filling when working from a specific project.
Original PR description
This PR brings some small improvements in Forecast : - add Forecasted Hours and Remaining Hours fields in respectively Task and Forecast form views to improve the monitoring of the ratio between planned and forecasted hours. - fix a validation error happening when creating forecasts through the grid view out of the working schedule of an employee. - pre-fill project field during the creation of new forecasts when coming from a particular project. Task-1985510
Helpdesk ticket statistic buttons now take users directly to the related coupon, return, or repair when there is only one item. When there are multiple related items, users still see the list, with creation and import options removed to keep the view focused on existing records.
Original PR description
…desk ticket's stats buttons. If there is only 1 Coupon / Return / Repair, clicking on the stat button now opens the form view of the Coupon / Return / Repair. If there are stricly more than 1 Coupon / Return / Repair, clicking on the stat button nows open the current list view. Removed the Create & Import buttons from the current list views. Task-2017554
Employees now see only their own documents when opening Documents from their employee record, improving privacy and reducing confusion. The HR document structure is also updated with clearer tags for employee documents, payslips, certifications, and fleet-related files, while the appraisal tag is removed.
Original PR description
[IMP] documents: added new tags in hr folder. … In this commit - 1) Restrict the employee. Now he/she can only see his/her documents when from the stat button on employee form, the employee goes to the dms. 2) Added new tag in HR folder of DMS - 2.1) Employees Documents 2.2) Payslips 2.3) Certifications 3) New folder in DMS - 3.1) Fleet 3.1.1) Vehicles Documents 3.1.2) Fine 4) Removed the appraisal tag. task-1933708
This update improves the Planning app experience by making employee names clearer, adding role color selection, and ensuring project information works correctly in recurring and published schedules. It also fixes email headers and planning template creation so scheduling communications and setup are more reliable.
SEPA payment processing now better supports invoices that use payment terms, where the total amount may be split across multiple due dates. This helps businesses collect or send the right payment amounts when invoices are scheduled in instalments.
Original PR description
Task 1986641
Adds financial report templates for U.A.E. accounting localization, helping businesses prepare country-specific financial statements in Odoo. The update also improves report presentation by showing negative amounts as positive where appropriate.
Original PR description
task: https://www.odoo.com/web#id=1931322&action=327&model=project.task&view_type=form&menu_id=4720 pad: https://pad.odoo.com/p/r.64d6ba9feeff21cf1188b520ee4d2ef4 linked community PR: https://github.com/odoo/odoo/pull/31541
Signing templates are now easier to create and edit from related document workflows, guiding users to the proper Sign app setup while still allowing quick template adjustments. Sign requests can also be completed even when no signature fields are required, letting recipients confirm agreement with the document content without getting blocked.
Original PR description
<b>Task:</b> https://www.odoo.com/web#id=1963939&action=333&active_id=131&model=project.task&view_type=form&menu_id=4720 <b>Pad:</b> https://pad.odoo.com/p/r.4f311bab7638b5430aa2d384641c4b3c
Payroll teams can now rely on more automatic generation and validation of employee benefits and related work entries. This reduces manual steps in the payroll flow, helps prevent delays or missed validations, and improves visibility through calendar, Gantt, and payslip workflow updates.
Original PR description
…n and validation
Timesheet list views now open with useful default grouping, making entries easier to scan and compare. My Timesheets are grouped by project and task, while validation lists are grouped by employee and project so managers can review work more efficiently.
Original PR description
Task:https://www.odoo.com/web#id=1824569&action=333&active_id=131&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.4fbdcc4d0249f83ce23817bbbd5739f3
This update adds VAT registry reporting for Italian localization, helping businesses produce clearer VAT register information in Odoo. It improves compliance workflows by aligning reporting output more closely with expected Italian VAT registry formats.
Original PR description
[WIP] Ref:  Current:  See OCA module: https://github.com/OCA/l10n-italy/tree/14.0/l10n_it_vat_registries
Knowledge users can now export articles as PDF files, making it easier to share, archive, or print content outside Odoo. The update adds the necessary report layout and rendering support so exported articles keep a readable format.
Document users can now reorder workspaces in the search panel, making it easier to organize frequently used areas around team priorities. This improves navigation and helps teams keep their document workspace list aligned with their workflow.
Knowledge pages now avoid showing unrelated website elements like overlays and live chat, creating a cleaner reading experience. Visitors who try to open unpublished articles are sent to the login page, and promotional portal messaging is resized or hidden when there is not enough screen space.
Original PR description
Purpose ======= Improve the UI and the redirection for logged in users. Specifications ============== Hide the website overlay and the livechat button from knowledge since it should not appear nor be accessible. Redirect anonymous users on the login page if they are trying to access an unpublished article. To prevent a broken UI look, adapt the size of the portal users virality message or hide it if it's too small (hiding on all screens under 1600px wide). Task-2936605
The Social app and its social network connectors have been updated to a newer interface framework for managing streams, posts, comments, and media previews. This should improve maintainability and provide a more consistent user experience across Facebook, Instagram, LinkedIn, Twitter, and YouTube integrations.
Email templates across several Odoo apps are now easier to find, read, and adjust from settings. Users also get clearer access to update related layouts such as headers and footers, making business communications simpler to maintain without technical help.
Original PR description
taskID 2944770
The Planning analysis report now gives managers clearer visibility into employee capacity, utilization, billable versus non-billable assignments, and time off. This helps teams spot overbooked or underused resources, assess profitability balance, and better understand how planned hours are distributed.
Original PR description
Improve the Planning analysis report by providing additional measures on: 1) the capacity and utilization of resources -> goal: easily identify who is still available or who has been allocated too much work 2) the ratio of billable vs. non-billable hours assigned -> goal: making sure that a resource is profitable and that the work he is assigned is well balanced 3) the time off taken by the employees -> goal: help the user understand the distribution of hours Because these measures are quite complex to implement, we will be creating a new report for this task instead of relying on planning.slot. See task-2742620 See odoo/odoo#84551
The rental product configurator in Sales has been migrated to Odoo's newer interface framework. This supports the broader Sales app modernization and should help keep the rental sales experience consistent and easier to maintain.
Original PR description
Part of the migration of the sales app to the owl framework. This PR concerns the migration of the product configurator. See odoo/odoo#98838 Task - 2961593
New employee contract and company car ordering flows now use the selected work location to apply the right defaults. This helps assign the correct fleet manager for new cars and makes work location information available in recruitment reporting.
Original PR description
When ordering a new car, the fleet manager will be set to the default fleet manager of that work location. TaskID: 2704398
Users can now open shared spreadsheets even when they do not have permission to view some embedded pivot or list data. Instead of repeated access error popups, the spreadsheet remains usable and related issues are collected in a side panel, while unavailable filters are disabled.
The manufacturing cost report now also supports unbuild orders, giving users better visibility into costs when products are taken apart. This helps businesses analyze manufacturing-related costs more consistently across build and unbuild operations.
Original PR description
Enterprise counterpart of the PR odoo/odoo#80381 Adapts the manufacturing order cost report to the unbuild order. task-2662731
Rental pricing can now be configured by the minute, making it better suited for short-duration services such as electric scooter rentals. This gives businesses more flexibility to charge accurately for very brief rental periods.
Original PR description
Some buisness requires a rent by minute for example electric scooter
The expense app now displays information more cleanly on mobile devices, reducing awkward text wrapping and placing values more clearly under their labels. The empty “My Expenses” screen also uses a clearer mobile-specific message, making the app easier to understand for employees on the go.
Original PR description
aim of this commit: improve the user experience on mobile for the expense module after this commit: - some wild word-wrapping removed - data display more coherent (data under its label) - message changed when "my expenses" is empty on mobile
Field service task and project screens now offer clearer labels, better search and grouping options, and additional graph and pivot views for personal tasks. Scheduling and worksheet template information is easier to manage, with required date ranges and key changes tracked in the task history.
Original PR description
* industry_fsm{_report}, industry_fsm_sale, project_enterprise, worksheet PURPOSE: Generic improvements for field services SPECIFICATIONS: - tasks editable list view: use the date range widget for…
* industry_fsm{_report}, industry_fsm_sale, project_enterprise,
worksheet
PURPOSE:
Generic improvements for field services
SPECIFICATIONS:
- tasks editable list view: use the date range widget for the 'start date' and
'end date' fields
- Add a graph and pivot view to the 'my tasks' menus
- Rename 'By user' to 'by worker' and 'by worksheet' to 'by worksheet template'
- If either one of the planned_date_begin or planned_date_end fields are set
then the other one should be required
- Field partner_phone will be visible whether the partner_id field is set or not
if is_fsm is true
- Stat buttons 'Worksheet' and 'Products' will be visible whether the partner_id
field is set or not if is_fsm is true
- For tasks, track the field 'worksheet_template_id, planned_date_begin,
planned_date_end' in chatter
- Remove create option for the field 'worksheet_template_id'
- For worksheet template's list view, fields: company_ids, worksheet_count and
color will be optional and displayed bydefault
- rename from 'default worksheet' to 'default worksheet template'
For tasks search view,
- Add search items: stage, project, worksheet template, parent task, sale order,
tags, and reorder it.
- Add filters: followed tasks, my projects, starred, tasks late,
tasks in overtime, rated tasks
- Add a 'customer' and 'sales order' group bys
- Rename a group by 'Responsible' into 'Assigned to'
- Add group by task above 'start date'
- Remove the 'company' group by and reorder the groups accordingly
For projects search view,
- Add a quick search on worksheet template and company
- Hide the 'sales order' quick search in field service
- Add a group bys: worksheet template and company
Task-2585357DHL shipments can now use delivery-specific descriptions and declared values instead of fixed or incomplete defaults. This helps provide customs with more meaningful shipment details and ensures shipping costs are included where relevant.
Original PR description
In this commit: ================================= Added two new fields in stock picking related to shipping 1. `shipment_description` 2. `shipment_declared_value` Before this commit: ================================ The value of shipment description was static `MY DESCRIPTION` which might be rejected by customs so in the delivery, we have added field to set the description value default by taking the category name of the first product from the sale order line. The value of declared value was the total amount of movelines which was not including shipping cost so in this commit, in the delivery we set the value of declared field to total amount of sales order. task-id: 2611210
Warehouse users can now scan a package barcode directly in the Barcode app. From the main menu, this shows the package contents; from Operations, it finds the relevant transfers and opens the matching one automatically when there is only one result.
Original PR description
Before this commit: Scanning a package was not a supported operation in stock_barcode. After this commit: Scanning a package in the main menu will show its content. Scanning a package in the "Operations" view will filter the pickings that operate on the scanned package (or open the picking directly if exactly 1 is found). task-2648993
When a helpdesk ticket is created from the website, any contacts included in the CC field will now receive an automatic email notification. This helps keep vendors, consultants, or other copied parties informed from the start without manual follow-up.
Original PR description
**PURPOSE** People sending tickets via your website might add their vendors or consultant to the CC field. An automatic email should be sent when a new ticket is created. **SPECIFICATION** The partners who were added in cc will be notified by mail when a new ticket is created. Task-1974030
Planning conflict warnings now appear only when overlapping assignments exceed the available allocation. This reduces unnecessary warnings for valid schedules and helps planners focus on real overbooking issues.
Original PR description
Made changes as small as possible only changed a query just a little to get sum of of allocated time percentage for overlaping slots pretty much works same as it does before only only added a computed non stored variable for the view only changed the condition that the warning shows up Task ID : 2310218
Planning emails sent to internal users now open the specific time period covered by the shared planning, rather than defaulting to the current week. This helps recipients get directly to the relevant shifts and reduces confusion when reviewing schedules.
Original PR description
The 'view planning' link in emails sent to internal users should point to the time-frame of the planning that's been sent,instead of the current week task ID 233547
Warehouse users can now print package barcode labels directly from barcode picking lines, including packages created during put-in-pack actions. Operations can also be configured to automatically print package labels as PDF or ZPL, making packages easier to scan and reuse across stock moves.
Original PR description
Adds a button next to the `result_package_id` in the barcode line to download this package barcode as PDF. The purpose is to be able to print the package barcode created by a put in pack, so the user can scan it to reuse it on other lines. task-2333834
The Documents app now handles attempts to make two workspaces parents of each other by automatically resetting the older parent-child link. This prevents users from hitting a validation error and keeps workspace organization consistent when relationships are changed.
Original PR description
Currently, when we create 2 workspaces and try to set a parent of each other it will raise the constrains as 'You cannot create recursive folders.' So in this commit, when we try to set the recursive parent/child on workspace it should reset the parent/child on latest workspace instead of raising the validation. For Ex: - Create FOLDER 1 - Create FOLDER 2 - Set FOLDER 1 as parent workspace for FOLDER 2 - when we set FOLDER 2 as parent workspace for FOLDER 1 then FOLDER 1 is unsetted as parent for FOLDER 2 and become the child of folder 2. LINKS Task https://www.odoo.com/web#id=2250634&action=4043&model=project.task&view_type=form&cids=2&menu_id=4720
DHL shipping methods can now be configured to avoid printing the additional archive document that accompanies label batches. This helps businesses reduce unnecessary paper use while keeping the document available when carriers require it.
Original PR description
Each set of labels generated by DHL generates an "Archive Document", which is an additional label listing the generated labels. This document may be required by some carriers (DHL Express), but is a waste of paper in other cases. The field "RequestArchiveDoc", defaulting to "Y", allows to enable or disable the printing of this document. A new field on the DHL shipping methods allows to toggle this option. This commit has the "ecofriendly 🌳" label.
Calendar appointment communications have been improved so users can follow updates for specific appointment events. Businesses can now better manage who receives notifications when appointments are booked or cancelled, helping teams stay informed with less manual follow-up.
Original PR description
wip
Planning now shows conflict warnings only when overlapping shifts exceed 100% total allocation. This makes warnings more accurate for complex schedules with multiple overlapping shifts and reduces unnecessary alerts for planners.
Original PR description
…percentages > 100 Allocated percentages must be taken into account to determine if shifts are in conflict. The previous code relied on a basic DB query to find the conflicts. It worked only in case of two overlapping shifts. With three shifts (8am-12pm, 10am-2pm, 12pm-4pm), it might be possible but complicated to find the number of conflicts. The new algorithm is complex but robust (2+ shifts are well computed). Moreover it does not perform any DB call and the less database calls, the better. A variable is specifically declared for the form with store=True only to display the number in the form banner. Task ID : 2310218
Marketing campaign lists now focus on campaigns that are actually relevant, reducing clutter from campaigns created in other marketing tools. Links from social posts and push notifications also open with the right campaign filter already applied, helping users find related content faster.
Original PR description
This commit improves the way we define the relevancy of an utm campaign. Before this commit, we filtered out campaigns with a "is_website" flag that we set as True whenever a campaign was created through the default_get of utm mixins. However, it came to our attention that creating a marketing campaign from marketing_automation would still pollute the list of campaigns that we considered relevant. So, instead of setting the is_website flag as true and confusing people with its naming, I replaced the field with another boolean "is_relevant" and based the filtering on that new field. LINKS: TaskID: 2414694 PR: #xxxxxx
CRM reporting screens are easier to use with updated dashboard and pipeline analysis helpers. Sample data was removed from lead generation cohort and dashboard views, helping users work with cleaner, more relevant reporting views.
Original PR description
in this commit some reporting usability improvements are done in crm, the action helper for the dashboard and pipeline analysis are updated now and the sample data of cohort and dashboard views of lead generation are removed. task-id: 2393253
Report designers can now enable an option in the Studio sidebar to show elements that are normally invisible. This helps advanced users customize reports more easily by making hidden content visible during editing.
Original PR description
**PURPOSE** To ease more advanced report customization, the report designer should have a 'show invisible elements' property **LINK** task - 2037446
Grouped lists can now open selected sections by default using a new unfold setting, instead of expanding every group automatically. This makes pipeline-style views easier to scan while giving teams more control over what users see first.
Original PR description
PURPOSE This task introduces a new 'unfold' boolean option on the listview tag. The goal is to allow grouped listview to have their groups unfolded by default. This is especially useful on models where records progress through the stages of a pipeline. Example: lead/opportunities or project tasks we also need to depreciate the existing 'expand' option on We want to be able to choose which grouping we want to unfold by default. The current 'expand' will unfold any grouping of the treeview. SPECIFICATION Add a new 'unfold' boolean option on if 'unfold'=True, groups are unfolded by default False by default TASK 2391255
Odoo Studio now consistently targets the exact part of a view being edited, reducing the risk that changes apply to the wrong field when similar fields appear more than once. This improves reliability for view customization and simplifies the underlying logic for future maintenance.
Original PR description
Commit caa6d30ceeeb099dd389224164d06a2a728ba8b4 tried to make absolute xpaths available as much as possible while leaving as fallback relative xpaths, this approach however was "stable-friendly" and…
Commit caa6d30ceeeb099dd389224164d06a2a728ba8b4 tried to make absolute xpaths available as much as possible while leaving as fallback relative xpaths, this approach however was "stable-friendly" and pretty naive and in fact created problems (with subviews mostly) that were subsequently hotfixed by b780c8dcd6e2011f72850ea9591baa090509a584 by simply using relative xpaths for subviews even if an absolute xpath was given. This commit makes it so that absolute xpaths are the only option for any studio operation, this gets rid of the ambiguity of relative xpaths especially since as of this patch, it is totally valid to have the same field multiple times in certain views (form, at the very least), and since most if not all relative xpaths are based off of the field's name, whenever performing an operation that uses a multi-occurrence field as its anchor, the resulting operation may apply on the wrong occurrence of the field. Not only does this patch prevent / fix these issues from happening, it also simplifies a lot of the server side and shifts the burden to the client, since it is the client that must supply the correct information as to which node/field/element must be operated on, despite this there is still a net code reduction because the server has to perform way less guesswork. This patch is also a precursor to a refactoring of the view normalization step for studio, which itself depends on a lot of heuristics / hacks (that are very complex and bloated) *because* there is ambiguity within relative xpaths and having to deal with a mix of relative and absolute xpaths, by simply shifting to absolute xpath only, a lot of this complexity can be removed (because we're using the lowest common denominator: all xpaths can be absolute, but not all can be relative). Task-ID: 2279352
Planning users can now click an employee avatar in the Gantt view to open a chat with that employee. This makes it faster to contact team members directly from the schedule without switching screens.
Original PR description
PURPOSE it should allow the user to chat with employee by clicking on their avatar from the gantt view (like the many2one_avatar_employee widget currently allows in form, tree, and kanban views) SPECIFICATION it should open the chat once user click on employee avtar from the planning gantt view LINKS Task: 2272544 PR https://github.com/odoo/enterprise/pull/11283
Planning now alerts managers when they assign shifts to an employee who is already on approved leave. The warning shows whether the leave applies to a single day or a date range, helping avoid scheduling conflicts and improving coordination between Planning and Time Off.
Original PR description
PURPOSE
When employee is on leave and manager try to assign the role at that time, display the alert
'Employee is on the leave'.
SPECIFICATIONS
It seems that a lot of users completely miss out on the integration between
Planning and Time Off. An extra warning stating that an employee is on
holiday at a given time would reinforce the feature.
This is the main goal for this commit.
To do that, we raise the alert in following cases:
1. Spans across several days:
"This employee is on leave from mm/dd/yyyy to mm/dd/yyyy."
2) If it is for any particular day:
"This employee is on leave on this day."
LINKS
PR #8631
Task: 2176484Tooltips have been redesigned to be clearer and easier to read across dashboard and enterprise web views. This improves the day-to-day user experience by making contextual information more visible and accessible.
Original PR description
PURPOSE The style of tooltips need to be improved for better vision. SPECIFICATION After improving in style, tooltips became more better for visualization and for users too. LINKS Task-2266829 PR https://github.com/odoo/enterprise/pull/11381
Mobile barcode scanning now fills in a product field directly when there is only one matching result. This removes an extra selection step for common scans, making mobile data entry quicker while keeping the existing choice screen when several products match.
Original PR description
Before, When we scan product barcode from mobile, it open search view with that scanned product and then we have to select product. Now, Scanned product directly filled in form view. Task : https://www.odoo.com/web#id=2150991&action=333&active_id=1520&model=project.task&view_type=form&menu_id=4720
Studio now offers a direct button to create a new model from the menu bar, instead of requiring users to go through the edit menu flow first. This makes it easier and more intuitive to add secondary models to an existing app.
Original PR description
PURPOSE
Assume a user that wants to create secondary models in an existing app.
Currently, he needs to go through the 'Edit menu' button in the systray.
He can then create a new menu of type 'new model'.
But it is awkward to go through the edition of a menu item to create a new model.
The menu item is the 'door' to get to the model, it doesn't really make sense create the door before creation the room it leads to.
The goal of this task is to get the user a clear flow for the creation of his new secondary models.
SPEC
add a 'new model' button next to 'edit menu'
this button opens the modal to create new model
this is a reduced version of the 'new menu' modal
the rest of the flow is identical to the creation of a new menu item
> this new button is simply a shortcut to get to the new model creation
TASK 2225267This update keeps the mobile web experience compatible with Odoo versions before 13.0 while reflecting related partner module changes across enterprise add-ons. It helps customers on older setups avoid disruption when using mobile features and related business workflows.
The Studio translation screen is simplified by hiding less useful columns and using clearer labels. Translations are now grouped by language by default, making it easier for users to review and manage translated content.
Original PR description
Purpose of this commit is to improve the translation view for the studio, for improvement - remove transifex and translated field from the tree view - rename 'Internal source' by 'Source Term' and 'Translation value' by 'Translation' in tree view - add 'Language' as a default group by in search view task: 2209354
Images added to reports through Studio are now accessible when portal users print reports, even if the related product is unpublished. This helps ensure customer-facing documents display product images consistently.
Original PR description
PURPOSE When dropping an image field in a report for a product image, the image URL does not be accessible by the portal while user printing the report if the product is unpublished. SPECIFICATIONS Image field should be accessible in the reports, when dropping an image field. LINKS PR https://github.com/odoo/enterprise/pull/9639 Task 2028938
Odoo Studio now offers a direct menu bar option to create a new model. This reduces the number of steps users need to take, making customization faster and easier.
Original PR description
**PROBLEM** Currently, web studio has an option in menu bar: edit menu. Through which a user can edit menu and create new menu for a new model. Here the problem is, create new model option is not given directly, for that user has to go to edit menu > new menu > new model. It does not make sense whenever user wants to create a new model directly. **SOLUTION** So, for a better user experience, there should be an option at menu bar to create 'new model'. **PURPOSE** By this commit, this option has been added to the menu bar and now on wards user can directly use that option to add new model without following too many steps. **LINK** Task - 2225267
Ending a VoIP call linked to an activity will no longer automatically mark that activity as done if the user is still editing it. This prevents users from losing the chance to review or finish their notes after a call, while keeping the existing automatic close behavior for read-only activities.
Original PR description
PURPOSE when editing activity while a call linked to activity is running in edit mode, then do not delete an activity after hangup phonecall. SPECIFICATIONS do not delete activity on hangup call when the activity is in the edit mode. Only in the read-only mode of activity, it should delete activity. LINKS PR https://github.com/odoo/enterprise/pull/9473 Task 2000224
The Point of Sale loyalty module has been migrated to Odoo's newer interface framework. This helps keep loyalty screens, reward buttons, receipts, and points displays easier to maintain and more consistent with the rest of the POS experience.
Original PR description
Migrate the old module to owl.
Map marker popups now display field values using the same widgets and formatting users see elsewhere in Odoo. This makes information such as dates, related records, and tag lists easier to read and more consistent in map views.
Original PR description
Task: https://www.odoo.com/web#id=2158887&action=327&model=project.task&view_type=form&menu_id=4720
This improves payroll contribution registers so companies can decide which related partner should be charged based on fields such as the employee, work address, or company. It makes payroll setup more adaptable for benefits like healthcare where the responsible service or partner may vary by organization structure.
Original PR description
**Description of the issue/feature this PR addresses:** - Contribution registers might have very flexible rules to determine the partner to charge - Currently there is no (encouraged) way to to…
**Description of the issue/feature this PR addresses:** - Contribution registers might have very flexible rules to determine the partner to charge - Currently there is no (encouraged) way to to define thos partners on different target models (eg. employee, work address, company, etc) **Current behavior before PR:** - Cannot define contribution register "Healthcare" while setting the healthcare service on the employee **Desired behavior after PR is merged:** - Be able to define a healthcare service field on the any target model reachable from the slip line thourgh a specially named field. - Provide hooks to select the correct target model on which to look for such specially formatted field. - Map the register_group selection to target models (reachable from the slip line) Note: Please do not close if not immediately accepted as this PR is meant to be carried on and maintained actively until this semantic will be resolved this way or another. @tivisse -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr @xoe-labs
Calendar screens in Planning, Enterprise web views, and Studio were adapted to work with Odoo’s newer interface framework. This helps keep scheduling and view-editing features compatible, maintainable, and ready for future improvements without changing core business workflows.
Original PR description
To prepare the future, we want to convert everything in Owl. Task ID: 2149408
Customers are now informed when making a subscription payment that their default payment token will be saved for future recurring charges. This helps set clearer expectations during checkout and supports smoother subscription renewals.
Original PR description
Task: https://www.odoo.com/web#id=2026350&action=327&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.ac39fe4f8fe3013381215d9e2f785204
When an employee contract’s start or end date is changed, work entries that now fall outside the updated contract period are automatically removed. This helps keep payroll and attendance-related records accurate without requiring manual cleanup.
Original PR description
…ation After modifying start or/and end date on a contract, we remove already generated work entries that are outside new period. taskID: 2179816
This update changes quantity-related fields to use each product's unit-of-measure rounding rules automatically. It simplifies configuration and helps keep quantities consistent across invoicing, manufacturing, work orders, quality checks, and rentals.
Original PR description
<b>Task:</b> https://www.odoo.com/web?#id=1914025&action=333&active_id=131&model=project.task&view_type=form&menu_id=4720 <b>Pad:</b> https://pad.odoo.com/p/r.fd8004fdaac8024a291546f4b95f8a87
Helpdesk ticket descriptions can now use rich text formatting instead of plain text. This gives teams more flexibility to structure customer issues clearly with formatting similar to project descriptions.
Original PR description
Purpose ======= Currently, the ticket description is a simple text field. An HTML one would give a bit more flexibility/freedom, and it would be consistant with Project. Specification ============= Change the description field on helpdesk.tickets into an HTML field TaskID: 2183174
This update improves how Field Service works with projects and planning-related apps, avoiding unnecessary project app behavior when Field Service or timesheet tools are installed. It also makes Field Service stages easier to manage by showing empty stages and automatically linking new columns to Field Service projects.
Field service teams get clearer task information, easier navigation to customer locations, and faster product quantity updates directly from service orders. Sales-created tasks now use the delivery address, project quotation settings are better aligned, and signed worksheets are automatically attached for easier follow-up.
Original PR description
Pad:https://pad.odoo.com/p/r.a11c18b817bbe9d3040ef556efedc751 Task:https://www.odoo.com/web#id=2125111&action=333&active_id=1251&model=project.task&view_type=form&menu_id=4720
Odoo Studio now makes kanban card customization easier and more consistent, including better placement options, clearer dropdown controls, and support for displaying activities when available. These updates reduce confusion for users designing kanban views and help prevent invalid changes on reporting views that cannot accept new fields.
Original PR description
Task: https://www.odoo.com/web?#id=1908520&action=333&active_id=131&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.71454298e1275263edae6a6a256c76a4 - added 'Display activities' - sidebar default active tab 'Add' - increased the size of card and zoom x-browser compatibility - set display="full" by default - card drop down icon changed and the design of dotted rectangle when selecting drop down (at top right corner of the card) is set properly - added tool tip 'Enable options' on drop down at top-right corner of card - updated confirmation prompt (when clicking on drop down at top-right corner of card) - the hook is displayed properly when hovering inside the card and not displayed when hovering outside the card - the order of special hooks are set (order: tags, priority, image, activities)
Products that are not marked for sale will no longer show sales price and tax-related fields. This makes product forms clearer and helps users avoid entering sales information where it is not relevant.
Original PR description
Task: https://www.odoo.com/web#id=1936865&action=333&active_id=131&model=project.task&view_type=form&menu_id=4720 Pad : https://pad.odoo.com/p/r.fc5c0297881d02ad8c331d1e7e24356b Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: -- I confirm I have signed the CLA and read the PR guidelines at [www.odoo.com/submit-pr](http://www.odoo.com/submit-pr)
The IoT device manager now lets users select which devices should connect to Odoo, improving control over connected equipment. This helps businesses avoid unwanted device connections and makes setup more manageable for IoT-enabled workflows.
Original PR description
task: 1939339
This update streamlines the salary contract flow by sending only the information needed during contract simulations. Large contract documents are now loaded only when the employee signs, reducing unnecessary waiting and improving responsiveness.
Romanian financial reports now use clearer labels and updated calculation rules to avoid confusing or incorrect totals. The change also keeps report tags aligned when only the reporting module is upgraded, reducing upgrade-related reporting issues.
The payment follow-up configuration is now managed in the Enterprise accounting settings, matching where these features are actually available. Users get clearer choices between basic payment follow-up and advanced follow-up levels, reducing confusion during setup.
Original PR description
task : https://www.odoo.com/web?#id=1835367&view_type=form&model=project.task&action=327&menu_id=4720 pad : https://pad.odoo.com/p/r.92ab3a0cd31b26ffb6efa4f5090f559e
German localization now lets partners carry a dedicated DATEV identifier for exports. This helps businesses produce DATEV export files with the expected partner reference, improving compatibility with German accounting workflows.
Original PR description
- Task : https://www.odoo.com/web#id=1942108&action=333&active_id=131&model=project.task&view_type=form&menu_id=4720 - Pad : https://pad.odoo.com/p/r.670aaebe2de03e93e3a721737204f8ab
Manufacturing users can now export Bill of Materials structure and cost reports to CSV or Excel. This makes it easier to share, analyze, and archive production cost information outside Odoo.
Original PR description
Task : https://www.odoo.com/web#id=1875706&action=327&model=project.task&view_type=form&menu_id=4720 pad: https://pad.odoo.com/p/r.fed3d65fa6e79b78859b25689cf7596c
Customers now receive an email once template creation is completed for their invoices. This keeps clients informed about the status of invoice processing setup without needing manual follow-up.
Original PR description
To send back email to the client when template creation is completed for their invoices
The salary contract signing flow now prevents employees or candidates from signing contracts that fall below the legal minimum salary. This helps the business reduce compliance risk and avoid processing invalid employment agreements.
Odoo Studio now lets users move pages while editing views, making it easier to reorganize forms without technical help. This improves customization workflows by reducing friction when adjusting page layouts.
The IoT setup wizard now shows an error message when it cannot find an IoT device. This helps users understand why setup cannot continue and reduces confusion during device configuration.
Original PR description
Task : https://www.odoo.com/web#id=1892436&action=333&active_id=131&model=project.task&view_type=form&menu_id=4720 Pad : https://pad.odoo.com/p/r.aaea03380ccf474d138f63311eb7bbec
The IoT device screens are easier to use, with clearer device information, a link to the IoT home page, and visible device counts. Manufacturing quality workflows using IoT pedals also get clearer visuals and helpful tooltips, reducing confusion for operators.
Original PR description
Task : https://www.odoo.com/web#id=1893534&action=333&active_id=131&model=project.task&view_type=form&menu_id=4720 Pad : https://pad.odoo.com/p/r.f16818eb60a563d5b67639f0efc5003b
Users editing a timesheet activity can now access more project choices from the project dropdown, including projects that are not marked as favorites. This makes it easier to select the right project or quickly create a new one without leaving the activity screen.
Original PR description
…own of project selection in 'Edit Activity' screen. Task: https://www.odoo.com/web#id=49283&view_type=form&model=project.task&action=327&menu_id=4720 Pad: https://pad.odoo.com/p/r.8a1da41bad626871ba09689432f33434
Vietnamese financial reports now include clearer English report labels, Vietnamese translation support, and updated tax reporting sections. This helps businesses in Vietnam better track VAT, import/export taxes, special consumption VAT, and fixed asset VAT in their accounting reports.
Original PR description
Task: https://www.odoo.com/web?debug#id=35681&view_type=form&model=project.task&action=327&menu_id=4720 Pad: https://pad.odoo.com/p/r.07a39d910d6a7824ba667a2fffee67a7
Accounting settings now align invoice policy behavior with whether Anglo-Saxon accounting is used. This helps companies apply the correct invoicing approach based on their accounting configuration, reducing setup confusion and improving consistency.
Original PR description
task: https://www.odoo.com/web#id=1859073&action=333&active_id=131&model=project.task&view_type=form&menu_id=4720 pad: https://pad.odoo.com/p/r.ebf70bc20ce350cd63c30c025fd6ea3e
Vendor bill payment guidance is now easier to see once bills move beyond draft, helping accounting teams identify what should be paid. The Account Group menu is also available without debug mode, making configuration easier to access for authorized users.
Original PR description
Task : https://www.odoo.com/web?debug#id=48064&view_type=form&model=project.task&action=327&menu_id=4720 Pad : https://pad.odoo.com/p/r.944550e8ea3992b82dbd101788f8882c
Financial reports now use the exchange rate from the requested reporting date, rather than today's rate. This improves accuracy for balance sheets and comparisons involving foreign currencies, helping reports better reflect the period being reviewed.
Original PR description
[IAS 21 The Effects of Changes in Foreign Exchange Rates ](https://www.ifrs.org/issued-standards/list-of-standards/ias-21-the-effects-of-changes-in-foreign-exchange-rates/) > For translation into the…
[IAS 21 The Effects of Changes in Foreign Exchange Rates ](https://www.ifrs.org/issued-standards/list-of-standards/ias-21-the-effects-of-changes-in-foreign-exchange-rates/) > For translation into the functional currency or into a presentation currency, the following procedures apply, except in limited circumstances: > > - assets and liabilities are translated at the exchange rate at the end of the period; > - income and expenses are translated at exchange rates at the dates of the transactions; and > - resulting exchange differences are recognised in other comprehensive income and reclassified to profit or loss on disposal of the related foreign operation. In https://www.ifrsbox.com there are some conclusions on [`Consolidation with Foreign Currencies`](https://www.ifrsbox.com/foreign-currency-consolidation-example-ifrs/)  In the case of Equity there are some advices:  Taking into account those advices we can stick to closing rate for the Equity Items. Thus leaving without changes the `Assets = Liabilities + Equity` equation So far this PR only fixes the problem for Reports which are asked at a specific date like `Balance Sheet`: <img width="538" alt="balance_sheet_-_odoo" src="https://user-images.githubusercontent.com/7598010/42010234-b7e28264-7a5b-11e8-8503-74c92c52fd9b.png"> For reports based on date ranges like `Profit & Loss` nor this PR neither odoo/enterprise (any version) addresses this issue <img width="574" alt="profit_and_loss_-_odoo" src="https://user-images.githubusercontent.com/7598010/42010343-356e1a22-7a5c-11e8-80fb-10736f3b4f50.png"> However this could be achieved by properly addressing the issue when constructing the sql queries in method [`_query_get_select_sum `](https://github.com/odoo/enterprise/blame/master/account_reports/models/account_financial_report.py#L466-L497) though early PoC's using sql have proven to be tricky to achieve. So far we have some PoC's using some combinations of SQL and other workarounds which we are glad to share with you only to check for the results they provide nor by the way they were obtained. (PoC's to be submitted as another PR. [TO_BE_UPDATED]) At this point this PR works when not asking for comparisons in the reports. If comparison is asked the values will be fetched using the closing rate at date of first requested report which is wrong as stated by the Standard. Best Regards UPDATE: ------- With latest commit https://github.com/odoo/enterprise/pull/2347/commits/275d3a785d645a48697da33266222041074050dd we are able to fetch reports with Date Range like `Profit & Loss`. For Date Range Reports we could be able to make comparison though there is a bug with the comparison dates of the ranges, because in some cases the dates that are send to make the comparison is not consistent with the other ranges. [comparison.sql.txt](https://github.com/odoo/enterprise/files/2144767/comparison.sql.txt) This was fetched from a comparison report [no_comparison.sql.txt](https://github.com/odoo/enterprise/files/2144768/no_comparison.sql.txt) This was fetched for the same period with no comparison. If you compare this two files you will realize about the difference. In the report is shown like this: <img width="503" alt="my_report_-_odoo" src="https://user-images.githubusercontent.com/7598010/42028647-d3cd6ac2-7a9a-11e8-9b49-7b37deb486eb.png"> So far, the only remaining issue is fetching non-Date-Range Reports with Comparisons. And the issue with the start date for comparison reports, *not a issue related to this one* Regards. UPDATE (2): ----------- I have checked thoroughly the issue with the periods in the comparison and it is no longer present in master. Though it is still present in 11.0. UPDATE (3): ----------- For a ledger like this in a company with USD as functional currency. <img width="1374" alt="journal_items_-_odoo" src="https://user-images.githubusercontent.com/7598010/42081869-93c1ee70-7b54-11e8-8e93-d809847c5f91.png"> And a Consolidating Company with EUR as functional currency and exchange rates for each currency as:   Following the IAS 21 the expected values for the reports in the presentation currency (EUR): - For Assets: <img width="766" alt="my_receivables_-_odoo" src="https://user-images.githubusercontent.com/7598010/42082410-e09f243c-7b55-11e8-90d6-ebd0712a6594.png"> - For Incomes: <img width="773" alt="my_incomes_-_odoo" src="https://user-images.githubusercontent.com/7598010/42082366-ca332a7c-7b55-11e8-9a68-0fbc3855c473.png"> These are their counterparts in the functional currency of the Consolidated Company (USD). - For Assets: <img width="763" alt="odoo - usd - receivables" src="https://user-images.githubusercontent.com/7598010/42082687-a5dc086e-7b56-11e8-87ec-0c2881269f9c.png"> - For Incomes: <img width="769" alt="odoo - usd - incomes" src="https://user-images.githubusercontent.com/7598010/42082700-af9095fa-7b56-11e8-843d-81a307933bc3.png"> These are the AIS21 non-complaint reports without using this PR: - For Assets: <img width="772" alt="odoo - receivables - non-complaint" src="https://user-images.githubusercontent.com/7598010/42083445-ec5e65aa-7b58-11e8-95cc-bf9860cf35de.png"> - For Incomes: <img width="774" alt="odoo - incomes - non-complaint" src="https://user-images.githubusercontent.com/7598010/42083453-f1c5f882-7b58-11e8-899f-7a089a64f78a.png">
The VoIP setup option is no longer shown as an install or uninstall checkbox, avoiding confusion and preventing errors when users try to remove VoIP from settings. VoIP settings now appear in their own section within General Settings, making them easier to find and manage.
The update improves the app switcher display so icons or elements are hidden correctly when opened from different screens. It also improves Helpdesk portal behavior by letting ticket followers view shared tickets and redirecting users without access instead of showing an error.
Original PR description
<b>Task:</b> https://www.odoo.com/web?#id=30985&view_type=form&model=project.task&action=333&active_id=131&menu_id=4720 <b>Pad</b> https://pad.odoo.com/p/r.18d7ec360149b3c15787c62f35a45301
The grid view is now easier to use on mobile devices by showing only today's entries by default and hiding wider week or month range options. This makes mobile timesheet entry clearer and more practical for employees working from phones.
Original PR description
Task: https://www.odoo.com/web#id=32285&view_type=form&model=project.task&action=333&active_id=131&menu_id=4720 Pad: https://pad.odoo.com/p/r.2a5bd6ff6ded7d8803afb3fcc3936ed1
This update makes the employee salary package flow easier to access through the portal and reduces reliance on the website app. It also improves form reliability by saving required personal information correctly and cleans up the related page behavior and code quality.
Original PR description
Task: https://www.odoo.com/web#id=35805&view_type=form&model=project.task&action=333&active_id=131&menu_id=4720 Pad: https://pad.odoo.com/p/r.4a99bd891ee1a0d1071eda296dadee03
Coupon promotions can now apply discounts across multiple products instead of being limited to a single item. Discount reward lines are also named more clearly, such as showing a 10% discount, making promotions easier to understand on sales orders.
Original PR description
…eward line product create product with name like 10% discount task:https://www.odoo.com/web?#id=33737&view_type=form&model=project.task&action=333&active_id=131&menu_id=4720 pad:https://pad.odoo.com/p/r.c09cd9b908a6cfe460d9aa21ccedf140
Settings pages have been adjusted to display correctly on phones and other small screens. This reduces overlapping text, misaligned icons, and cramped fields so users can configure apps more easily on mobile devices.
Original PR description
Task : https://www.odoo.com/web#id=2150992&action=333&active_id=1520&model=project.task&view_type=form&menu_id=4720 Pad : https://pad.odoo.com/p/r.62f98fc53c42e62af074c7307ebb7894