Thursday, April 18, 2024
155 changes
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
The event Twitter wall configuration screens were adjusted to keep working after a related website event registration option was removed. This prevents configuration layout issues and helps ensure the feature remains usable during upgrades.
Original PR description
Adapt xpath in order to handle the removal of the `menu_register_cta` in community . Community: - https://github.com/odoo/odoo/pull/158545 Upgrade: - https://github.com/odoo/upgrade/pull/5848 task-3820273
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
Indian payroll salary reports were adjusted to match a platform change in how report links are opened. This helps keep monthly and yearly salary report access reliable after the underlying reporting behavior changed.
Original PR description
Task : https://www.odoo.com/web#id=21893&model=project.task&view_type=form&menu_id=5195 Pad : https://pad.odoo.com/p/r.97f1361bd170f477b107f1b8836d4bd4
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
Several country-specific financial reporting modules are now placed under the Accounting category instead of broader localization categories. This makes these reporting features easier for accounting users to find and aligns their presentation with their purpose.
Original PR description
Task: https://www.odoo.com/web#id=2048019&action=327&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.39e3084be7880f57842e2dfa1b03a2c7
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
This update strengthens automated checks around rental, stock rental, subscription, and SEPA subscription flows. It helps reduce the risk of future changes disrupting important sales and billing scenarios, with no direct change to day-to-day user workflows.
Original PR description
Task : https://www.odoo.com/web?#id=2075587&action=327&model=project.task&view_type=form&menu_id=4720 Pad : https://pad.odoo.com/p/r.c0f83c791f9abd6f327578844df464dc
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 project forecasting sample data has been refreshed so demonstrations better reflect the latest forecasting tools. This helps users and sales teams see more relevant examples when exploring or presenting the feature.
Original PR description
purpose of this commit is to change the demo data as it is a bit outdated and doesn't showcase our new forecasting tools. So, improved demo data. Task: https://www.odoo.com/web#id=2024631&action=327&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.da7006e84213fe1bcaf4632d6d01af8d
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 sale renting test suite was updated so it no longer depends on demo data being installed. This helps ensure the rental sales module can be validated reliably in cleaner business environments and reduces false test failures.
Original PR description
<b>Task:</b> https://www.odoo.com/web?#id=2037858&action=333&active_id=131&model=project.task&view_type=form&menu_id=4720 <b>Pad:</b> https://pad.odoo.com/p/r.2ac4fef60bb8ce7ca804c044eab286de
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.
This update makes field service easier to plan and manage with clearer labels, better scheduling defaults, and more reliable timer behavior. It also lets helpdesk teams turn support tickets into field service tasks, improving follow-up when customer issues require on-site work.
Original PR description
Provides several improvements to the fsm applications such as - renaming - makig some project fields required - altering demo data - technical improvements - wizards to link material to tasks and projects
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
The dashboard test suite was updated to better account for different currency formatting rules, including negative sign placement, currency symbol position, and spacing. This helps ensure dashboard monetary values are validated consistently across locales and reduces false test failures.
Original PR description
<b> Task:</b> https://www.odoo.com/web?#id=35636&action=333&active_id=131&model=project.task&view_type=form&menu_id=4720 <b> Pad:</b> https://pad.odoo.com/p/r.11ed19a243459e5cbd148b9c1fe75b4d
This update makes payment workflows easier to start and understand from accounting screens, including batch payments, SEPA transfers, and SEPA direct debits. It also adds clearer guidance and configuration options so users can avoid errors and complete common payment tasks with fewer steps.
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.
This update makes Field Service easier to set up and use by improving onboarding, planning access, permissions, and sales order creation from tasks. It also adds task worksheets/reports that can be printed or emailed to customers, helping teams document completed work more clearly.
Original PR description
https://www.odoo.com/web?debug#id=1943792&action=333&active_id=965&model=project.task&view_type=form&menu_id=4720
This update renames internal company references to better match how users and the system already describe companies. It reduces confusion for developers and lowers the risk of misunderstandings in accounting, reporting, payments, assets, and online synchronization features without changing business workflows.
Original PR description
The goal is to be coherent with the user property. Actually, company_id and company_ids on the environment are no fields. Calling env.company_id returns a browse record, not an id.
Closed payslips can no longer be moved back to draft, helping preserve payroll history. Users can now create a linked correction payslip instead, while new checks prevent duplicate payslips for the same contract and period unless they are corrections.
Original PR description
Once a payslip is closed, we shouldn't be able to reset it to draft. Add a button: Payslip Correction -> this will create a new payslip in draft with a specific status or flag to say it is a correction and link between both payslips. Add unique constraint to payslip to avoid to have multiple payslips for the same contract during the same period (except if is a correction). id=1985537
Subscription products now use subscription variants to manage templates, pricing, and related details in one place. Sales teams can set subscription templates at order or line level, with optional restrictions to keep recurring product choices consistent and prices accurate.
Original PR description
[IMP] sale_subscription : modify models due to specs ------------------------------------------------------------------------- - Products are no longer linked to subscription_template. - Now,…
[IMP] sale_subscription : modify models due to specs ------------------------------------------------------------------------- - Products are no longer linked to subscription_template. - Now, products and subscription_template are both linked to a subscription_variant that simulate a many2many relation in a table with additional fields. - Price and other information are available in thhis subscription_variant table. They are visible on either the product, tab 'sales' or under the Subscription Variants menu in Subscription module. - Subscription_template can be set on sale_order as well as on sale_order_line. - Restrictions exist so that it is possible to set a subscription_template on a sale_order_line only if the product is a recurring product. Same for a sale_order. [IMP] sale_subscription : modify demo datas and adapt tests -------------------------------------------------------------------------------- - Adapt demo datas - Adapt test datas after changes done to model sale_order_line [IMP] sale_subscription : add sub_temp restriction setting ---------------------------------------------------------------------------- - Add a setting 'Restrict Subscription Template' - This setting locks the subscription_template on sale_order_line. Once the user choose a recurring product in a sale_order_line, its subscription template is fixed and he has to set it at the sale_order level. If he changes the subscription template on the sale_order, it is adapted on every sale_order_line containing a recurring product. [IMP] sale_subscription : price selection for subscription product ------------------------------------------------------------------------------------- - It is now possible to apply a pricelist_item on a particular subscription_template. - Overriding methods to do so. - Price for a recurring product in a sale_order_line is now depending on subscription_template that is chosen for that product in that sale_order_line. (remember, link is done in subscription_variant) - lst_price is hidden from product_template/product_product form, tree and kanban views since it isn't relevant to show it anymore. Indeed, the real prices for recurring product are set in corresponding subscription_variant for those products. [IMP] sale_subscription : prevent adding rec product on confirm SO ----------------------------------------------------------------------------------------- - Users are now unable to create a new Sale Order Line with a recurring product if the Sale Order is confirmed. - They are also unable to change the product of an existing Sale Order Line if the Sale Order is confirmed. [IMP] sale_subscription : add partner phone number --------------------------------------------------------------------- * Customer phone number is now available from Subscriptions : - in form view - in kanban view * It is either partner_id phone, mobile, or related company phone, mobile or nothing. In that order.
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.
This update improves the reliability of automated tests for the Documents app by using stable identifiers during test setup. It helps reduce false test failures and supports smoother ongoing maintenance without changing how users interact with the app.
Original PR description
task-2869408 community: https://github.com/odoo/odoo/pull/103835/
VoIP configuration details are no longer sent when using public Discuss, where VoIP features are not available. This reduces unnecessary data exposure and keeps public chat contexts focused on relevant information.
Original PR description
As VoIP assets are only available in backend, there is no point in sending VoIP config in the context of public Discuss. This commit adds VoIP configuration fields to the list of the fields that must not be sent outside of the backend. Community: https://github.com/odoo/odoo/pull/104729 Task-3053208.
HR users now see a warning when generating a salary simulation link for an employee who does not have an email address set on their home address. This helps prevent employees from completing the configurator only to encounter a signing error later because required signer email details are missing.
Original PR description
In case HR provides the simulation link to the employee via copy pasting the link from the wizzard, and employee does not have email set on home address, after filling in the configurator, it will raise an error that not all signers have valid email address. To avoid this behavior, we display warning in the wizzard. task -2971112
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
Knowledge articles now have a more polished cover picker that lets users reuse existing covers, upload new images, or choose images from Unsplash. Adding a cover can automatically suggest a relevant Unsplash image based on the article title, while privacy rules ensure users only see covers from articles they can access.
Original PR description
Purpose: ======== 1. Instead of using the standard "avatar" image picker for the covers, create a CoverSelector, based on ImageSelector used in the MediaDialog from web_editor which is prettier,…
Purpose: ======== 1. Instead of using the standard "avatar" image picker for the covers, create a CoverSelector, based on ImageSelector used in the MediaDialog from web_editor which is prettier, allows to reuse covers, and allows to select images from unsplash. 2. When the user clicks on "add cover" in knowledge, picks a random image from unsplash using the name of the article as search query. If unsplash credentials are not set or if service is down, falls back to the "change cover" behaviour, showing the CoverSelector allowing the user to pick an existing cover, to upload a new one, or to enter its unsplash credentials. Specs: ====== Create the components "CoverDialog" and "CoverSelector", based on "MediaDialog" and "ImageSelector" but adapted for knowledge's use-cases. The coverSelector only shows covers used in articles the user can access, so that covers of private articles remain private. Covers are saved in "ir.attachment" with "res_model=knowledge.article", allowing to not show covers in the ImageSelector in other apps, preventing users of other apps from deleting covers. They are also saved with "res_id = 0", which allows to not link covers with a precise article, preventing covers to be deleted if the associated article is deleted. When a new cover is uploaded, an url with an access token is generated and saved. This url is used to display the covers so that they can be shown in portal view, and so that users can see every cover (because attachments with res_id=0 and linked to a model are only accessible by the user that created the attachment) The binary field "cover" is replaced by a many2one field "cover_image_id" referencing the created attachment. This allows to reuse covers without needing to duplicate the attachment. Also added a field "cover_image_url" referencing the url of the attachment, which is used to display the cover. When a cover is removed from an article and is not used in any other article anymore, the associated attachment is deleted. Same if an article is unlinked and its cover is not used anymore. Extend "web_unsplash" controller and add a route that fetches a random image from unsplash using a query word, then uses "web_unsplash"'s route to save the image in ir_attachments. Add a method calling this route using the article name as query when clicking on the "Add cover" button. During the request, the button is hidden so that one can not click multiple times on it and send several rpc's. If the request returns an error (unsplash credentials not set, service unavailable, ...), opens the CoverSelectorDialog instead. Task-2852916
The IoT Bluetooth connection component was updated to stop using an outdated background process call. This removes unnecessary warning messages from logs, making system monitoring cleaner without changing user-facing behavior.
Original PR description
Before, in BTInterface.py we were using gatt.DeviceManager.run function which was calling GObject.MainLoop() function which was deprecated and was provoking a warning in the logs. This PR overrides the gatt.DeviceManager.run function to fix the deprecation warning and remove it from the logs. task-2414027
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
This update removes duplicate fields and tidies selected views in Manufacturing Work Orders and Timesheets. Users should see cleaner screens with less repeated information, making daily data entry and review slightly easier.
Original PR description
Enterprise counterpart of https://github.com/odoo/odoo/pull/52728
This update removes fields that were no longer used or could be replaced with simpler logic in accounting synchronization and project management areas. It helps keep the system cleaner and easier to maintain, with little to no expected impact on everyday users.
Original PR description
* Mainly unused related / computed fields * Fields of limited use which can be replaced by little code changes
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.
Users who index payroll contracts are no longer automatically added as followers of those contracts. This reduces unnecessary notifications and removes the need to manually unfollow large batches of indexed contracts.
Original PR description
current behavior : When a user indexes one or more contracts, they will automatically be set as a follower of those. Since a user usually indexes a lot of contracts at once, they will be spammed with notifications and will need to manually unfollow every contract. behavior after this commit : You are not added as a follower of contracts that you index.
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
The online bank synchronization screen has been reorganized to make its fields easier to understand and use. This improves day-to-day setup and review by presenting related information more logically without changing the underlying synchronization behavior.
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.
Users can now keep uploaded or created documents private instead of automatically sharing them with everyone who can access the workspace. This gives businesses more control over sensitive files, while also removing the older document locking feature and making workspace assignment optional.
Original PR description
PURPOSE : Allow users to restrict access to their Documents. Currently, as a document has to be in a workspace, it is available to the workspace's groups. We want to provide the user with a way to 'opt-out' of sharing uploaded/created documents. Folder_id not required anymore, addition of access field and deletion of locking feature Task=2257514
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
The plus icon shown on opened grouped list headers now uses the same color as the group header, making the interface more visually consistent. When users hover over the icon, it changes to the primary theme color for clearer interaction feedback.
Original PR description
Display "+" icon same as group header color TASK 2414138
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
The Documents chatter view now shows the date separator when messages are empty but attachments or activities are present, making it easier to distinguish activities while scrolling. The update also aligns internal field names for better consistency without changing the core user workflow.
Original PR description
**PURPOSE:** When scrolling down on the message list, the "today" separator becomes hidden and it's really hard to tell between messages and activities. **SPECIFICATIONS:** The separator will be displayed when the messages list is empty and attachments and/or activities displayed Also, applied proper names to the fields of chatter as per below: Field isActivityBoxVisible is replaced by isActivityListVisible Field hasActivities is replaced by hasActivityBox Introduce isActivityBoxVisible field that depends on activityBox and activitites **LINKS:** PR #15984 Task-2243529
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
Relevant actions now show directly as buttons in list views, making common tasks easier to find and launch. This improves day-to-day workflow access across accounting, assets, and payroll screens without changing underlying business processes.
Original PR description
… action set "Display in controlpanel" boolean on server action to display server action as button on list view. LINKS Task 2246383
The Belgian payroll accounting test no longer manually creates receivable and payable accounts for newly created companies. This relies on the automatic chart of accounts setup instead, reducing unnecessary test configuration and making the validation process easier to maintain.
Original PR description
Currently, there are instructions for creating receivable and payable accounts and setting those as company parameters for the newly created company from the test case. Those instructions seems for handling the missing receivables/payables warnings on res.partner, encountered during ongoing tour. With the help of functionality for loading CoA of selected country automatically at the time of company creation, now there is no need for configuring the receivable/payable company parameters on res.partner explicitly for the running test case.
Automated tour tests now include checks for how many database queries they perform. This helps teams spot unexpected performance costs earlier, reducing the risk of gradual slowdowns across Odoo features.
Original PR description
PURPOSE The number of queries keeps growing version after version. A change often requires additional queries and it is fine. However, in some cases, the developper simply doesn't realize its feature adds a lot of queries that may be unnecessary most of the time. The idea here is to add an assert (assertQueryCount) in python tests executing tours, to check the number of queries done by the tour. That way, everyone will be forced to acknowledge they added queries when they do. SPEC Add assertQueryCount on all tour in python tests Task 2199227
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
Studio now shows the full set of available widget choices when a user selects a boolean field in a list view. This makes it easier for users to configure fields correctly without missing display options.
Original PR description
before:
when user open listview in studio mode and select boolean field to change widget of field sidebar doesn't display all boolean widget list
after:
display all boolean widget list so user can change field's widget
Task Id: 2230540Odoo 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
LinkedIn social posting now shows a more helpful message when an image upload fails. This helps users understand what went wrong and take corrective action more quickly when publishing social content.
Original PR description
Purpose ======= Improve the error message when the image upload fail. Task-2206477
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