Daily updates from Odoo
Thursday, April 18, 2024
109 changes · master
New functionality added to Odoo
A new internal test module has been added to validate sales order creation across a broader set of sales-related features. This helps improve reliability of performance checks and creates a foundation for future end-to-end sales testing without changing customer-facing behavior.
When a payment journal is chosen, the payment method now updates automatically to match the journal’s default setting. This helps Mexican localization users reduce manual corrections and keep payment records consistent.
Original PR description
When you define a journal you are allowed to define the default payment method of the journal, but when you select the journal in the payment, the payment method is not changed. This commit allows to change the payment method defined in the journal when you select it and put it in the payment.
Enhancements to existing features
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
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
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
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
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 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 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 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.
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
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
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
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 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.
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
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
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
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: 2230540LinkedIn 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
The Mexican electronic invoicing setup now automatically enables the test environment when a company switches to test mode, and disables it again when returning to production. This helps prevent test transactions from being treated like live production activity and supports cleaner accounting validation.
Original PR description
This commit switch the 'l10n_mx_edi_pac_test_env' to True when switching to 'test' mode. When comming back to 'prod', the field is reset to False.
Static text embedded in dynamic interface attributes is now made available for translation. This helps users working in different languages see more complete and consistent translations across several Odoo apps.
Original PR description
Task:https://www.odoo.com/web#id=1956197&action=333&active_id=131&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.a1f975aa5104190ac8d2a35c90240f45
When employees create a timesheet entry from a grouped list view, they can now add a description at the same time. This makes timesheet records more complete and reduces the need to edit entries afterward.
Original PR description
Add the description field when creating timesheet from a grouped list view Task ID : 1958440
The setup bar visibility option is now managed through Enterprise invoicing settings instead of being shown in Community settings. This makes the option available only to Enterprise users and keeps the invoicing dashboard experience aligned with the installed accounting apps.
Original PR description
…n Acconting Settings upon installation of account_accountant module previously, it was available when 'account' module got installed Description of the issue/feature this PR addresses: Task: https://www.odoo.com/web#id=38737&action=333&active_id=131&model=project.task&view_type=form&menu_id=4720 Pad-ID: https://pad.odoo.com/p/r.0a035006ed129691ccddcd17e8525d5d Before this commit: account_hide_setup_bar option can be seen in community settings. After this commit: account_hide_setup_bar option has been added into enterprise settings. Task-ID: 38737 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update standardizes how user interface actions are passed between parts of Odoo, mainly by renaming and simplifying an internal event mechanism. It should make future improvements easier and more consistent across accounting, documents, helpdesk, IoT, mail, events, and related apps, with limited direct change for end users.
Original PR description
Task: https://www.odoo.com/web?debug=1#id=48682&action=333&active_id=133&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.8490ec0f0b238b75b008b1873aeb8da7
The Moroccan accounting reports now use a clearer one-tag-per-grid structure in tax reports. This improves report organization and helps ensure tax report lines are easier to maintain and interpret.
Original PR description
Task: https://www.odoo.com/web#id=22559&action=327&model=project.task&view_type=form&menu_id=4720
When users add a new line in the timesheet grid, the view now automatically focuses the newly added line for today. This makes it clearer where to enter time and helps reduce small data-entry mistakes.
Original PR description
Task link : https://www.odoo.com/web#id=1886353&action=327&model=project.task&view_type=form&menu_id=4720 Pad link : https://pad.odoo.com/p/r.2e7bf37d05066344e7b912dd9364b1e2 Purpose : It's indicate to fill the time on today line (last added). This commit is related to task ID : 1886353
This update renames internal grouping option identifiers across multiple Odoo apps to prevent naming conflicts and reduce confusion. Users should see more reliable filtering and grouping behavior in reports and views, with no major workflow changes expected.
Original PR description
Task: https://www.odoo.com/web#id=1866004&action=333&active_id=131&model=project.task&view_type=form&menu_id=4720 Pad : https://pad.odoo.com/p/r.1351e5f2f6caf32e2535db4d7e5f4bf9 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
The cohort report measure selector now displays the currently selected measure directly on the toggle button. This makes reports easier to read and reduces confusion when switching between measures.
Original PR description
Task: https://www.odoo.com/web#id=1878335&action=333&active_id=131&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.9021406072a1b25c016b5b4e4a470c94
Settings pages across several Odoo apps were adjusted to prevent fields from causing layout problems. This makes configuration screens cleaner and easier to use for users managing accounting, payments, currency rates, eBay sales, and VoIP settings.
Original PR description
layout issue in settings
The Helpdesk guided tour was updated to work with the newer drag-and-drop behavior. This helps keep automated walkthroughs and checks reliable after changes to mouse event handling.
Original PR description
TASK :- https://www.odoo.com/web#id=34248&action=327&model=project.task&view_type=form&menu_id=4720 PAD:- https://pad.odoo.com/p/r.b848abd671ec1d2d5b14963888d3d5a8 …drop method to support native mouse events
Resolved issues and error corrections
Australian payroll settings can now be updated by HR managers without requiring contact editing permissions. The change prevents access errors while limiting the sensitive setting to the appropriate user group.
Original PR description
The inverse `_set_super_payable_account` raises an access error if the user does not have write access on contacts. Since the HR manager does not require access rights for contacts, we set this field with a sudo and add a group to restrict access to specific users. https://runbot.odoo.com/runbot/build/61307134
Fixed an error that could occur in Point of Sale when settling a customer's dues from an empty order. This prevents an unexpected crash and lets staff continue the dues settlement flow reliably.
Original PR description
Steps: ========= - Install point_of_sale and pos_settle_due. - Open pos and don't add any items to the order. - Click on "settle dues" options on a partner - Observe traceback. Issue: ========= - Error Occurs while settle due account. Cause: ========= - There is no field of "paymentlines". Fix: ========= - Change "paymentlines" to "payment_ids". task-3859454
This fix prevents kit products from being handled like regular manufactured items in production-related reporting tests. It helps keep inventory quantities accurate and avoids misleading manufacturing accounting results.
Original PR description
community PR: https://github.com/odoo/odoo/pull/161020 fix test that were trying to use Kit BOMs for production opw-3681703
This fix updates the appointment feature to use the shared link-handling helper from the correct core location. It helps appointment pages preserve relevant page details in URLs, avoiding broken or inconsistent navigation after a related platform change.
Original PR description
The method keep_query was moved from base to http_routing at odoo/odoo@880954ebfc110 but it should have stayed in base as it is used by some module like auth_signup. Enterprise part of odoo/odoo#87489
This update removes a duplicate check in the spreadsheet bundle's currency loading test. It helps keep automated testing accurate and reduces the chance of false test failures, with no expected change for end users.
Original PR description
Remove the double assert
The “View on Google Maps” button now opens results that match the current map search instead of ignoring it. It also avoids showing duplicate map points when multiple records share the same location, making map results cleaner and more accurate.
Original PR description
The button "View on Google Maps" now care about the search If we have multiple records with the same latitude/longitude, we do not duplicate the points on Google Maps Task #2072186
The Mexican electronic invoicing flow now handles the Draft action correctly when several invoice records are selected at once. This prevents errors or inconsistent behavior during bulk invoice updates, helping finance users work more reliably.
Original PR description
Button Cancel Takes Several Recordsets so it has be properly fixed
This fixes a Helpdesk test setup issue that could cause failures when demo data is not installed. The test now sets the company calendar timezone consistently, helping ensure reliable validation across environments.
Original PR description
Task: https://www.odoo.com/web#id=2075719&action=333&active_id=965&model=project.task&view_type=form&menu_id=4720 PAD: https://pad.odoo.com/p/r.3a73dd45c487a31123fef6a3e689c991
This fixes how Mexican e-invoicing identifies journal entries that come from invoices after an underlying accounting field changed. It helps ensure invoice-related entries are included or excluded correctly, reducing errors in localization-specific electronic invoicing processes.
Original PR description
`invoice_id` is no longer a valid field in `account.move.line` object we have to use the new elements to identify a Journal Entry as coming from an Invoice.
The optional column icon in list views is now positioned correctly in the header. This small visual fix makes the list view cleaner and easier to use when managing visible columns.
Original PR description
Task: https://www.odoo.com/web?#id=2032196&action=333&active_id=1251&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.6c35636a1ef5ed06abd0cec54262621f
Social post cards now show their small statistics labels with the correct spacing. This makes engagement and campaign information easier to read in Social Marketing, CRM, and Sales views.
Original PR description
Since the whitespace is removed by the compiler, we have to put the small tags on the same line separated by a white space. Usually a padding is sufficient but not always. Task-3047477
Deleting document workspaces has been corrected so users no longer encounter unexpected validation errors. This helps keep document management workflows smooth when teams reorganize or remove unused workspaces.
The Sign Now wizard now displays signer entries without extra table borders or outlines. This restores the intended appearance after a styling change caused the signer list to look misaligned, making the signing setup screen clearer for users.
Original PR description
After some changes in the list renderer css, the one2many field signer_ids layout started having wrong layout. This commit removes the unwanted outlines and borders from the table generated by that field. task-2979060
Employee settings now show all time off types that require allocations when configuring extra time off on contract signature, rather than only those with currently valid allocations. This makes the setting clearer and usable across more company setups, including outside Belgian localizations.
Original PR description
Before: From employee settings, on 'Extra Time Off Allocation on contract signature' only those Time Off Types will show for which the valid allocations exist. Instead, show all the Time Off Types that requires allocations. task - 2658250
This fix ensures the project forecast view file is included when the timesheet forecast sales module is installed or updated. It prevents missing screen elements or configuration caused by the file being omitted from the module setup.
Original PR description
project_forecast_views.xml has not been added to __manifest__.py in this commit- https://github.com/odoo/enterprise/commit/dcb0127aecb5aefeb3d9e7deef2805c19986b2cd closes odoo/enterprise#22924
This fix ensures the 'Extra Time Off' salary benefit is visible on employee contract salary information. It helps HR teams and employees see the complete compensation package without missing time-off benefits.
Original PR description
task - 2687999
Barcode-related reports for locations and operation types are now printed separately from barcode commands. This fixes confusion in the printing flow and makes it easier for users to get the correct report when managing warehouse barcode operations.
Original PR description
…plit from the barcode commands We split both the operation from barcode commands and now we are print report separately. opw-2579195
This fix ensures salary package fields for fixed values and benefit values only accept numbers. It helps prevent invalid salary configuration data, reducing errors when preparing or reviewing employee contract offers.
Original PR description
make sure fixed value and advantage value fields are numbers Task id: 2339760
This fixes an issue in the website visitor view after a referenced field was removed. Push notification data now attaches to an existing part of the view, helping avoid display or setup errors for users managing visitor notifications.
Original PR description
Since page_ids have been deleted from visitor kanban view, all the xpath targeting this field must be modified to target another existing field in the view. Task ID: 2428362
This update corrects outdated or invalid configuration values across accounting, delivery, manufacturing, marketing, documents, and field service areas. It helps prevent setup errors and inconsistencies when records use values that are no longer supported or have moved to localization-specific modules.
Original PR description
See https://github.com/odoo/odoo/pull/54276
This fixes a display issue where overlapping items in the Gantt view could extend beyond the final day shown. The schedule view now keeps items within the expected date range, making planning timelines clearer and less confusing for users.
Original PR description
Overlapping pills could go past the last day of the gantt view (e.g. considering 8 days in a week).
This update fixes intermittent failures in point of sale hardware-related test flows for payments and weighing scales. It helps keep automated quality checks stable, reducing false alarms during development without changing normal user workflows.
This update corrects how NCM codes are shown for products in the Argentine electronic invoicing module. The code is now handled at the product variant level and displayed more consistently, helping users see the right classification information when managing products and invoices.
Original PR description
* move logic of ncm code from product.template to product.product * add ncm compute field in product.template just to show it when len(variants) == 1 (this compute is similar of how it works for default_code field) * ncm code it was showed lonely before the product category now is shown after the default_code field.
Creating a payslip from the Payroll app no longer triggers an error when no default employee contract is available. This prevents interruptions for payroll users and lets the process handle missing contract information more safely.
Original PR description
during creation of payslip from payroll app, traceback is there for singleton(to have minimum one record must be there or not more then one). but as we have no record to select, traceback is occured. after this commit isssue will be solved. task-2226403
This fixes broken invoice screens in the Argentinian and Colombian electronic invoicing modules after an accounting field was renamed. It helps ensure users can continue viewing and processing electronic invoices without errors.
Original PR description
move field of account.move renamed to move_type, hence adapting here as well
This fixes an issue in Studio where removing the last item from a form could accidentally move the chatter area into the form layout. Users can now edit forms without the communication panel being inserted in the wrong place.
Original PR description
task : https://www.odoo.com/web#id=2172297&action=327&model=project.task&view_type=form&menu_id=4720 pad : https://pad.odoo.com/p/r.179553b62760fecc5637449a822b0e7c before this commit, After removing the last element from the form view, chatter is appended into the view. after this commit: Chatter is prevented from getting into the form. task - 2172297
A small typo was removed from the Belgian payroll settings screen. This restores access to the general settings area, helping administrators configure payroll options without being blocked.
The promo code confirmation message on the online shop checkout is now centered after a coupon is applied. This improves the visual presentation and makes the feedback clearer for shoppers.
Original PR description
Task: https://www.odoo.com/web#id=1850446&action=333&active_id=131&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.da98be6386ef94463c5ec05f17d2753a
Gantt view rows that are marked as read-only can no longer be extended by users. This keeps grouped or non-editable tasks from being changed indirectly and makes the schedule view behave consistently with editing permissions.
Original PR description
Task : https://www.odoo.com/web?debug=assets#id=36732&view_type=form&model=project.task&action=327&menu_id=4720 Pad : https://pad.odoo.com/p/r.7e161c9900670f4208775f09adfdab59 Description of the issue/feature this PR addresses: In gantt view if a line is not editable, it should not be extendable. Current behavior before PR: In gantt view if a line is not editable,although it is extendable. Desired behavior after PR is merged: In gantt view if a line is not editable, it should not be extendable After PR is merged.
The website form editor dialog layout has been corrected so it displays properly for users editing forms on a website. This reduces confusion and helps users configure website forms without visual glitches interrupting their workflow.
Original PR description
UI issue - https://drive.google.com/file/d/1whzey6boSJz3-yMtHlANF_uJt9rBrCpK/view?usp=drivesdk - https://drive.google.com/file/d/1p9PDTa2K4Ma7GXxCSkg9jmq16I8Y2hST/view
This update ensures salary package configuration uses the right reference information and default cost frequency. It helps avoid incorrect setup values when managing employee contract salary details.
Original PR description
Issue : https://www.odoo.com/web#id=1876764&action=333&active_id=1278&model=project.task&view_type=form&menu_id=4720
This fixes a display issue where table headers could overlap content in PDF financial reports. Business users get cleaner, easier-to-read exported reports with no change to report data or workflows.
Original PR description
task link - https://www.odoo.com/web#id=1865558&action=327&model=project.task&view_type=form&menu_id=4720
The home menu background gradient has been corrected to display as intended. This is a small visual fix that improves the consistency and polish of the web client experience.
Original PR description
background gradient fix bug
This fix restores the correct layout for color picker options in kanban view dropdown menus. It improves usability in Helpdesk, PLM, and Quality Control by preventing broken menu displays when users manage kanban items.
Original PR description
BS4 Issue: https://drive.google.com/file/d/1d25XRcEkxoWVDiPTs6M5JAd-JuvarmtZ/view?usp=drivesdk
This fix ensures inventory users can open delivery orders from the barcode workflow when product lifecycle management is involved. It removes an access-related blocker so warehouse staff can continue their delivery operations without unnecessary interruption.
This update corrects demo data for manufacturing maintenance by removing a duplicate alias assignment on equipment categories. The system will now generate the alias automatically from the category name, preventing naming conflicts during setup or demo data loading.
Original PR description
Description of the issue/feature this PR addresses: Issue-ID: https://www.odoo.com/web#id=53978&view_type=form&model=project.task&action=333&active_id=131&menu_id=4720 Pad-ID: https://pad.odoo.com/p/r.8e416698b4ced1615e953ac50bfb30c2 Current behavior before PR: Desired behavior after PR is merged: Issue-ID: 53978 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Features or functions removed from Odoo
The signing app now uses the standard browser redirect behavior instead of an older helper. This is a minor cleanup that keeps the module aligned with modern browser standards while maintaining the same user experience.
Original PR description
This helper is now obsolete as most modern mainstream browsers now implement RFC 7231 [1], which dictates that browsers preserve the original fragment of the URL through redirects. Its use has been replaced by `werkzeug.utils.redirect` since browsers now automatically block/sandbox `data:` and `javascript:` schemes. Complement of https://github.com/odoo/odoo/pull/30805 [1] https://tools.ietf.org/html/rfc7231
Unused image assets were removed from the Mexican EDI landing pages and Timesheet Grid app store branding. This reduces repository clutter and slightly simplifies maintenance without affecting everyday product functionality.
Original PR description
COM PR: https://github.com/odoo/odoo/pull/61299
Code cleanup and technical improvements
This update removes obsolete code from the Chilean electronic invoicing point-of-sale module after customer editing was moved to Odoo's standard interface. It reduces maintenance overhead without changing the business workflow for users.
Original PR description
We have recently replaced the custom form for editing res_partner records that was used in pos with the default `view` component from web. ( commit 2c068a719617314a3c7c875af7f9027d0531652c ) In this commmit we remove code that is now useless.
The spreadsheet pivot table infrastructure has been reorganized so key plumbing can live in the shared o-spreadsheet project. This prepares Odoo for future spreadsheet pivot table capabilities while keeping existing Odoo tests in place to protect current behavior.
Original PR description
This commit is the enterprise counterpart of https://github.com/odoo/odoo/pull/159259. This commit prepares the ground to the introduction of the spreadsheet pivot table in github.com/odoo/o-spreadsheet. It's basically a move of the plumbing necessary to make a pivot works from odoo codebase to o-spreadsheet codebase. A note on this commit: - Tests are kept in Odoo Moving tests would require to make a dummy pivot in o-spreadsheet, which is not ideal. Let's write tests during/after the introduction of spreadsheet pivot. Task: 3748583
Point of Sale formatting logic has been streamlined so amounts and related values are handled through one consistent method. This reduces duplication behind the scenes and helps keep receipts, payment screens, and localized POS flows more consistent.
Original PR description
Before, we were using multiple functions in order to format the numbers. This pull request allow us to use a single method format which take for arguments: The Type of the format you want to apply The value The different options available for the given type Community pr: https://github.com/odoo/odoo/pull/85770
This change simplifies how CRM leads and helpdesk ticket conversion handle partner matching by removing an unnecessary shared component. It should not change day-to-day workflows, but it makes the underlying code easier to maintain and align with the wider CRM refactoring.
Original PR description
This refactoring commit follows the one from Community (From PR https://github.com/odoo/odoo/pull/35864) : Because it seems to be a mixin for unnecessary fields (redefined in inheriting models) holding a utility method we could move on lead model. - move _find_matching_partner to crm.lead - move action into crm.lead2opportunity.partner - move partner_id to each model that inherits crm.partner.binding Task ID: 2056759
This change removes an older phone validation component and standardizes the VoIP module on the newer shared phone handling approach. It reduces duplicate technical paths, making future maintenance more consistent without changing the expected business workflow.
Original PR description
…thread.phone This commit 7e8a02cd6e9f08e5ff45db804b357bc3537ff1f6 introduced the 'mail.thread.phone' mixin. The 'phone.validation.mixin' became at that point a less powerful version of it. This commit cleans the code and completely removes the 'phone.validation.mixin' to lessen entry points of phone validation methods and reduce mixins amount. Task#2092372
Engineering change orders and quality controls have been adjusted to work with the newer calendar view experience. This keeps planning and scheduling screens consistent with the latest interface changes, with minimal direct business impact.
This update removes obsolete internal markers that are no longer needed because Odoo now handles data conversion consistently across remote connections. The change simplifies maintenance across several business apps without changing everyday user workflows.
Original PR description
They are no longer needed as the serialization of several Odoo objects over JSON/XML rpc is now global Depends on https://github.com/odoo/odoo/pull/35595
This update modernizes internal automated tests by replacing older testing helpers and browser test naming. It helps keep the test suite maintainable and aligned with current browser testing tools, with no expected impact on day-to-day users.
Original PR description
Remove deprecated helpers and rename phantom_js to browser_js. Enterprise counterpart of https://github.com/odoo/odoo/pull/34011
This update adjusts how the Documents app connects shared behavior across its list, kanban, and inspector views. It should make the document interface easier to extend and maintain, with limited direct impact on day-to-day users.
The Sign app’s JavaScript files were reformatted using the correct linting setup. This is an internal cleanup that improves code consistency and maintainability without changing user-facing behavior.
Original PR description
On commit 375f8a4d6e446ef433eb9c2e0510a10addbe6c91, ESlint was used to clean the js files in sign. However, one setup from prettier was not used. This commit runs the correct lint configuration on the files.
The disallowed expenses reporting logic has been reorganized to make the accounting reports easier to maintain and support. This should help improve reliability for finance teams without changing day-to-day workflows.
Field service sales now calculate discounts automatically as part of the normal pricing process instead of relying on a separate manual trigger. This reduces internal complexity and helps keep sales order line discounts consistent without changing the visible workflow for users.
Original PR description
Task-ID-2180180
The systray menu has been rebuilt using Odoo’s newer interface framework to support future improvements. This is mainly an internal modernization, with related updates to enterprise and Studio menu behavior to keep user interactions working correctly.
Original PR description
PURPOSE Prepare future for OWL SPEC Convert Systray Menu into OWL TASK 2340574
The user menu in the main navigation and mobile interface has been rebuilt on Odoo's newer interface framework. This is an internal modernization that helps keep the product maintainable and ready for future improvements, with little expected change for day-to-day users.
Original PR description
PURPOSE Prepare future for OWL SPEC Convert UserMenu of Systray into OWL TASK 2329195
Odoo Studio code has been reorganized so business rules live in model components instead of controller entry points. This makes the module easier to maintain and reduces the risk of future changes causing unexpected behavior, without introducing a direct user-facing feature change.
Original PR description
**PURPOSE** To keep business logic separate, some controller code is moved to model. **LINK** 2007296
The company switcher has been reorganized so the mobile experience reuses the same menu behavior as desktop. This makes the interface more consistent across devices and should simplify future maintenance without changing core business workflows.
Original PR description
Enterprise part of the company switcher widget refactoring. The main idea is to reuse the "dropped menu" of the desktop widget as the mobile widget. Task 220560
Miscellaneous changes
- Compute the best resources for a slot only for distinct capacity info and improve performance when updating table booking from 1 to 12 capacities with appointment type with a lot of linked resources (tested on Table Booking without any event booked): Before: ~105s (local time) After: ~15s (local time) This also allows the first slot computation to be a little faster (4s => 3s) - Don't use intervals_overlap in _slot_availability_is_resource_available: ~15s => ~4s (local
Original PR description
- Compute the best resources for a slot only for distinct capacity info and improve performance when updating table booking from 1 to 12 capacities with appointment type with a lot of linked…
- Compute the best resources for a slot only for distinct capacity info and
improve performance when updating table booking from 1 to 12 capacities
with appointment type with a lot of linked resources (tested on Table Booking
without any event booked):
Before: ~105s (local time)
After: ~15s (local time)
This also allows the first slot computation to be a little faster (4s => 3s)
- Don't use intervals_overlap in _slot_availability_is_resource_available:
~15s => ~4s (local time)
It was called a lot because of the default resource calendar and the work intervals
computed from it.
- Single filtered on booking lines for _get_resources_remaining_capacity
Queries count (from profiler - local):
/appointment/4 : ~1500 => ~830
/appointment/4/update_available_slots (capacity -> 12) : ~7700 => ~455
/appointment/4/update_available_slots (capacity 12 -> 1) : ~1130 => ~430
/appointment/4/update_available_slots (capacity 1 -> 12) : ~7700 => ~455
Queries count (profiler - runbot):
/appointment/4/update_available_slots (capacity -> 12) : ~1190 => ~130
task-3640599
Forward-Port-Of: odoo/enterprise#59101**Current behavior:** On the pivot view for the budget analysis view, the percentage column total is the sum of each row's percentage. **Expected behavior:** This value is the mean of all percentages. **Steps to reproduce:** 1. In the Accounting app, create a budget that has a non-zero Achievement value in at least 2 rows 2. Go to *Reporting* -> *Budgets Analysis* and expand the y-axis to show the lines created, observe that the Achievement total is displaying the sum of all percenta
Original PR description
**Current behavior:** On the pivot view for the budget analysis view, the percentage column total is the sum of each row's percentage. **Expected behavior:** This value is the mean of all percentages. **Steps to reproduce:** 1. In the Accounting app, create a budget that has a non-zero Achievement value in at least 2 rows 2. Go to *Reporting* -> *Budgets Analysis* and expand the y-axis to show the lines created, observe that the Achievement total is displaying the sum of all percentages **Cause of the issue:** The percentage field is being aggregated by summation in the read_group() method of the `crossovered.budget.lines` model. **Fix:** Calculate the mean instead of the sum. opw-3761952 Forward-Port-Of: odoo/enterprise#60464 Forward-Port-Of: odoo/enterprise#59103
When sending an automatic followup, the wrong template is set. This is because of a typo when getting the followup line from the options. Steps: - Have 2 followup levels, 15 and 30 days with 2 different templates and automatic reminder - Have a customer with an invoice overdue by +15 days, and go to his followup report - In the action menu, select "Process Automatic Follow-ups" -> The template used is the one from the 2nd followup level instead of the one from the 1st level. opw-3858013
Original PR description
When sending an automatic followup, the wrong template is set. This is because of a typo when getting the followup line from the options. Steps: - Have 2 followup levels, 15 and 30 days with 2 different templates and automatic reminder - Have a customer with an invoice overdue by +15 days, and go to his followup report - In the action menu, select "Process Automatic Follow-ups" -> The template used is the one from the 2nd followup level instead of the one from the 1st level. opw-3858013 Forward-Port-Of: odoo/enterprise#60843
Within #45236 the sale subscription batching method was rewritten to allow invoices to be consolidated during the cron. However, batch_size was adjusted that caused the code to never actually batch. Because `batch_size` was reassigned to `batch_size + 1` before the search call, the batch check: `need_cron_trigger = len(all_subscriptions) > batch_size` Will always fail as `all_subscription` will never be a larger recordset than `batch_size`. Solution: Don't re-write batch_size and ins
Original PR description
Within #45236 the sale subscription batching method was rewritten to allow invoices to be consolidated during the cron. However, batch_size was adjusted that caused the code to never actually batch. Because `batch_size` was reassigned to `batch_size + 1` before the search call, the batch check: `need_cron_trigger = len(all_subscriptions) > batch_size` Will always fail as `all_subscription` will never be a larger recordset than `batch_size`. Solution: Don't re-write batch_size and instead do `batch_size and batch_size + 1` in the search directly. opw-3846540 Forward-Port-Of: odoo/enterprise#60050
Currently, an inherited view for `account.view_move_form` targets field `fiscal_position_id` directly with an xpath. While that works for standard modules, it is a very broad xpath that only succeeds in selecting the correct field because it appears before other ocurrences of identically named fields. This commit narrows down the xpath to make it explicit that we target the field located in `account.move`'s "Other Info" page. This fixes an ongoing issue with a customization (described i
Original PR description
Currently, an inherited view for `account.view_move_form` targets field `fiscal_position_id` directly with an xpath. While that works for standard modules, it is a very broad xpath that only succeeds in selecting the correct field because it appears before other ocurrences of identically named fields. This commit narrows down the xpath to make it explicit that we target the field located in `account.move`'s "Other Info" page. This fixes an ongoing issue with a customization (described in the task) while improving readability and extensability of `account_invoice_form_inherit`. Task link: [odoo/task#3837027](https://www.odoo.com/web#model=project.task&id=3837027) Task-3837027 Forward-Port-Of: odoo/enterprise#60462 Forward-Port-Of: odoo/enterprise#60358
Payment tokens that are created when SEPA Direct Debit transactions are confirmed were not linked to those transactions. This prevented subscriptions from saving the tokens as recurring payment method because they could not be found through the payment transactions. opw-3756773 See also: - https://github.com/odoo/odoo/pull/161561 Forward-Port-Of: odoo/enterprise#60562
Original PR description
Payment tokens that are created when SEPA Direct Debit transactions are confirmed were not linked to those transactions. This prevented subscriptions from saving the tokens as recurring payment method because they could not be found through the payment transactions. opw-3756773 See also: - https://github.com/odoo/odoo/pull/161561 Forward-Port-Of: odoo/enterprise#60562
For the custom engine report, _compute_formula_batch_with_engine_custom always uses None for the warnings in the function custom_engine_function, even if a good warnings argument is sent. Now it correctly use the warnings instead of None Forward-Port-Of: odoo/enterprise#60929
Original PR description
For the custom engine report, _compute_formula_batch_with_engine_custom always uses None for the warnings in the function custom_engine_function, even if a good warnings argument is sent. Now it correctly use the warnings instead of None Forward-Port-Of: odoo/enterprise#60929
Current behavior: When doing an order from self ordering on phone, there was an error because the fiskaly_uuid was not created directly when the user was creating the order. But it's created when the order is processed by the cashier. Steps to reproduce: - Setup fiskaly on your db (ask me if you need help) - Setup a pos to use QR Menu + payment in a DE company - Create an order from this PoS - Validate the order, you get an error opw-3773777 Forward-Port-Of: odoo/enterprise#59449
Original PR description
Current behavior: When doing an order from self ordering on phone, there was an error because the fiskaly_uuid was not created directly when the user was creating the order. But it's created when the order is processed by the cashier. Steps to reproduce: - Setup fiskaly on your db (ask me if you need help) - Setup a pos to use QR Menu + payment in a DE company - Create an order from this PoS - Validate the order, you get an error opw-3773777 Forward-Port-Of: odoo/enterprise#59449
STEP TO REPRODUCE: ================= * Go on Employee App * Select contracts menu item * Select two contracts * Click on actions * Select "signature request" You will have a traceback due to multiple selection. task: 3802377 Forward-Port-Of: odoo/enterprise#59447
Original PR description
STEP TO REPRODUCE:
=================
* Go on Employee App
* Select contracts menu item
* Select two contracts
* Click on actions
* Select "signature request"
You will have a traceback due to multiple selection.
task: 3802377
Forward-Port-Of: odoo/enterprise#59447Purpose: Purpose of this is to save changes on x2many field using studio. Task- 2167977
Original PR description
Purpose: Purpose of this is to save changes on x2many field using studio. Task- 2167977