Friday, September 22, 2023
20 changes · master
Enhancements to existing features
New spreadsheet pivots, lists, and Odoo charts now automatically reuse existing filter field matches when they are based on the same model. This reduces repetitive setup for users and helps keep spreadsheet filters consistent across related reports.
Original PR description
- When a new pivot is added, and if the user has already defined field matching in a previous pivot, the new pivot will inherit the field matching from the previous pivot as default values. - If multiple pivots are added from different models, will check the model of the new pivot against previous pivots. If the model matches, the field matching from the matching previous pivot will be used. If no matching model is found, the field matching will be left empty. - Same will also done in case of list and odoo chart. taskId: [3373163](https://www.odoo.com/web#id=3373163&cids=2&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) 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
Email templates shown inside messages are now kept visually separate from the surrounding page. This prevents template formatting from being unintentionally changed, making email previews and message content more consistent for users.
Original PR description
Email templates are now rendered in shadow dom inside the messages. This fixes the issue where CSS styles of email templates were getting affected when they get rendered inside the message. Task-2978463 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Purchase teams can now store vendor discounts directly on vendor pricelists and have them automatically carried into purchase orders. This helps ensure purchase prices reflect agreed discounts consistently, including correct tax-excluded calculations and future pricelist updates from confirmed orders.
Original PR description
In this commit ============== - Added the discount fields to the vendor pricelist and PO line models, making them optional and hidden. - Implemented automatic filling of the discount field on the PO line when the unit price is sourced from the vendor pricelist. - Implemented a mechanism to automatically populate the discount field on the PO line when the unit price is fetched from the vendor pricelist. - Modified the pricing logic to ensure the discount is applied to the tax-excluded price. - PO confirmation process to check if a pricelist already exists for the vendor. If not, a new pricelist line is created, including the discount if it is present. task - 3380306
Online shoppers can now choose product extra options that were previously only available through Sales. This helps businesses offer richer product customization directly on their eCommerce storefront, improving the buying experience and reducing manual follow-up.
Original PR description
[A previous commit](https://github.com/odoo/odoo/commit/5ca1da8ab33d4dd6a9ed0b6737e5d19f1a3ac9d2) introduces a new attribute `display_type`, `multi`, which allows users to define extra-options to products. But this option was only available in Sales. This commit allows eCommerce users to use this new attribute in the online shop. task-3497046
Google Calendar integration can now synchronize a single selected event instead of requiring the whole calendar to be synced. This helps features such as appointments retrieve Google Meet links faster and with less unnecessary calendar data processing, while adding checks to confirm a user's calendar is ready for Google syncing.
Original PR description
Purpose ======= Add the possibility to only synchronize one specific event of a user calendar instead of syncing the whole calendar. See sub commits for more details. Task-3285601
The spreadsheet app has been updated to a newer version, adding useful statistics formulas and a tool to trim extra whitespace from data. It also improves copying, exporting, drag-and-drop behavior, and error display, making spreadsheets more reliable and easier to use.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/0b7527d5 [REL] 16.5.0-alpha.8 https://github.com/odoo/o-spreadsheet/commit/f8de9ab6 [IMP] Formulas: Add new statistics…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/0b7527d5 [REL] 16.5.0-alpha.8 https://github.com/odoo/o-spreadsheet/commit/f8de9ab6 [IMP] Formulas: Add new statistics formulas https://github.com/odoo/o-spreadsheet/commit/1a685a08 [IMP] data: add the trim whitespace feature Task: 3356367 https://github.com/odoo/o-spreadsheet/commit/1f5bb485 [REM] spreadsheet_edition: remove dead edit text https://github.com/odoo/o-spreadsheet/commit/7956f571 [REF] drag&drop: stop using CUT/PASTE commands Task: 3502194 https://github.com/odoo/o-spreadsheet/commit/e26eee16 [FIX] GridOverlay: Hovering over a figure should not open popovers Task: 3475001 https://github.com/odoo/o-spreadsheet/commit/33b04fb0 [FIX] deepEquals: fix simple type comparison Task: 3479451 https://github.com/odoo/o-spreadsheet/commit/f7e58774 [FIX] clipboard: copy/paste of CF in another sheet Task: 3479451 https://github.com/odoo/o-spreadsheet/commit/be185413 [IMP] demo: disable HTML quirks mode Task: 3506565 https://github.com/odoo/o-spreadsheet/commit/a529d61b [IMP] export: do not export defaulf style values Task: / https://github.com/odoo/o-spreadsheet/commit/4fe9e1a6 [IMP] build: add banner https://github.com/odoo/o-spreadsheet/commit/dd52c9b0 [FIX] build: restore commit hash https://github.com/odoo/o-spreadsheet/commit/c2640de1 [FIX] ErrorToolTip: fix error tooltip long text Task: 3328557
This change lets Odoo administrators define which screen layout should open first on mobile for a given action, instead of relying on indirect view ordering rules. It makes mobile navigation more predictable and allows desktop and mobile defaults to differ without workarounds.
Original PR description
Up until this commit, which view was displayed by default on mobile was somewhat of a lottery. Initially, only kanban views were considered as 'more adapted to mobile devices' and used as a main…
Up until this commit, which view was displayed by default on mobile was somewhat of a lottery. Initially, only kanban views were considered as 'more adapted to mobile devices' and used as a main fallback to display records who had a kanban view in the window action definition. The the concept of 'mobile-friendly view' was extended to map and grid so that these views could take precedence over the kanban view in specific circumstances (indsutry_fsm and timesheet_grid, both of which are enterprise edition apps) - basically they were marked as mobile-friendly not because they *are*, but because it was the only way to override the kanban override. But this comes with its lot of problems and limitations, namely that the mobile friendly view will be found based on the order of view modes for a window action, so if you have a window action with the view modes `kanban,map,tree,form`, you will never be able to have e.g. the kanban view shown on desktop by default and the map view on mobile. This commit introduces the notion of a 'default mobile view' on window actions so that one may decide on an *arbitrary* view mode to use on mobile for an action - without impacting the ordering of views on other models, etc. Task-3460374 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
Users can now duplicate multiple records directly from a list view using the action menu. This saves time for teams that need to create similar records in bulk and makes the list view workflow more complete.
Original PR description
Include the 'duplicate' action in the action menu in list view. The copy_batch method will call the copy method with a loop to keep any existing override. TASK-ID: 3456679 Description of the issue/feature this PR addresses: Allow to mass duplicate in the list view Current behavior before PR: No duplicate in list views Desired behavior after PR is merged: Duplicate recards from the list views --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Odoo now lets users enter their Adyen account URL prefix instead of manually building several API URLs. This reduces setup effort and helps prevent configuration mistakes when connecting Adyen payments.
Original PR description
Before this commit, users were required to compute the API URLs, which is specific to each Adyen account, themselves. After this commit, users will be able to copy their account prefix from Adyen to automatically generate the API URLs. task-3338126 See also: - https://github.com/odoo/upgrade/pull/4876
Users can now choose which website domain is used when sharing Documents workspaces or files. This helps businesses present shared links under the right brand or storefront while keeping the shared content accessible as before.
Original PR description
In some cases, it might be useful to be able to choose which domain you want to use to share a workspace or file(s) in Documents. For instance, you might have two eshops with high-ends products with…
In some cases, it might be useful to be able to choose which domain you want to use to share a workspace or file(s) in Documents. For instance, you might have two eshops with high-ends products with big margins on one hand and low-end products with low-margin on the other. For obvious reasons, you don't want people to see that as they could complain about it. For those reasons, when sharing documents or a folder, the user can now choose the domain of the shared URL by selecting on which website the link is shared. By default, the website of the company folder is selected. If there is no company on that folder or the company has no website, the current company website is selected (which might be "False"). The user can override the default choice. The base URL is determined by the website associated with the sharing. If the website is set and has a "domain", it is used as base URL. If not, the web.base.url of the config parameters is used. The shared URL is automatically updated when the website is changed. When deleting a website, all sharings associated with it are deleted as well. Note that no matter the website chosen, the shared documents/folder can be accessed with any domain configured on the server instance. Task-3325062
Odoo now uses a clearer and more predictable way to choose the right view on mobile devices. This improves the mobile experience for field service, timesheets, grid, and map workflows by showing mobile-appropriate screens where needed.
Original PR description
A new, deterministic mechanism to decide which view should be displayed in a mobile environment for window actions has been created. This allows us to remove the 'mobile-friendly' flag for grid and map views which were added to override the kanban views in some cases. The modules that use these views (timesheet_grid and industry_fsm) have been modified so that the proper mobile view is set on the window action where needed. Task-3460374
Subscription and SEPA Direct Debit payment screens now focus on payment methods rather than payment providers, making checkout and payment management clearer for customers. The update also cleans up related payment form behavior and tests, reducing the risk of payment flow inconsistencies.
Original PR description
**[CLN] payment(_\*): correct code styling inconsistencies** This commit mainly removes the extra indent level left over after commit https://github.com/odoo/enterprise/commit/96148dbf. --- **[FIX] payment(_\*): make a proper usage of promises** Several functions were explicitly encapsulating their return values in a `Promise` when it was unnecessary. --- **[IMP] payment_sdd, sale_subscription: replace providers with payment methods in payment forms** See the community PR for more details. --- task-2882677 See also: - https://github.com/odoo/odoo/pull/120446 - https://github.com/odoo/upgrade/pull/5103 - https://github.com/odoo/documentation/pull/5717
Belgian companies can now import CODA bank statements that use foreign IBAN bank accounts. This removes a previous import error and makes CODA processing more flexible for businesses with non-Belgian accounts.
Original PR description
Implements support for CODA files with foreign IBANs for Belgian companies. Previously, the CODA module could only handle Belgian IBANs, resulting in an "Error R1002: Foreign bank accounts with IBAN structure are not supported" when attempting to process CODA files with a non-Belgian IBAN This limitation hampered Belgian companies that have accounts with foreign IBANs. Task-3493359
Appointment organizers can now choose which videoconference link is sent when clients book an appointment: Odoo Discuss, Google Meet, or no link. This gives teams more control over the client booking experience and helps avoid duplicate calendar entries when Google Meet is used.
Original PR description
Purpose ======== Give full control to users on which link will be used for the events Odoo will generate when appointments are booked. Specifications ============ Add a selection field called "Videoconference Link" in the appointment form view under the appointment location. This field will allow the user to specify which videocall link to give to their clients when an appointment from this appointment type is booked. The default videocall link is the Odoo Discuss one. The user could also choose a Google Meet one or to not give any link at all. Task-3285601
This update replaces the term "advantage" with "benefit" across employee salary package screens, menus, payroll configuration, and related records. The clearer wording makes compensation options easier for HR teams and employees to understand without changing the underlying process.
Original PR description
In this commit, We have replaced the term advantage with benefit. We made changes to the following - Payroll configuration - Menu - Model name task-3374616
New spreadsheet pivots, lists, and charts now reuse existing field matching settings when they come from the same model. This saves users from repeatedly configuring the same filter connections and reduces setup errors when building reports.
Original PR description
- When a new pivot is added, and if the user has already defined field matching in a previous pivot, the new pivot will inherit the field matching from the previous pivot as default values. - If multiple pivots are added from different models, will check the model of the new pivot against previous pivots. If the model matches, the field matching from the matching previous pivot will be used. If no matching model is found, the field matching will be left empty. - Same will also done in case of list and odoo chart. taskId: [3373163](https://www.odoo.com/web#id=3373163&cids=2&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form)
Resolved issues and error corrections
The activity view now paginates records correctly when many items have multiple activities, so users see the expected number of records on each page. This prevents missing or confusing activity results when navigating large activity lists.
Original PR description
This solves the following problem: - Add 150 records with 2 activities each (ex. A call and a to do) - Go to the activity view (ex.: event through the systray) and clear filter - Only 50 of the 150 records are displayed (instead of 100) - Going to the next page, only 2 are displayed (instead of ~50) (will depends on the data already present) Technical notes: Not all activities were displayed because the search limit was applied on the activity search instead of searching all activity related to the records. The method fetchActivityData was doing half of the job because it was not assigning the activity data fetch on the server to the instance variable activityData, which was causing strange behavior when clicking on next page. To simplify and correct the code, that logic has been moved to that method instead of relying on the caller to do that assignation. Task-3508744
This fix ensures several field widgets refresh correctly when records are updated, preventing stale or incorrect information from being shown. It improves reliability in accounting, inventory, manufacturing, email marketing, and general web interface screens affected by recent model changes.
Original PR description
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 web editor now avoids a crash that could happen when users switch between records containing editable HTML content. This makes navigation between items such as tasks or Knowledge articles more reliable and prevents interruptions while editing or reviewing content.
Original PR description
How to reproduce: - open a record with an html_field (i.e. todo or a Knowledge article) - switch back and forth with the pager or the knowledge sidebar between 2 records Current behavior: - traceback…
How to reproduce: - open a record with an html_field (i.e. todo or a Knowledge article) - switch back and forth with the pager or the knowledge sidebar between 2 records Current behavior: - traceback `this._elementHookMap.get(element)` is undefined Expected behavior: - no traceback Technical explanation: When changing the editable content (i.e. `resetContent` when changing record), there is no guarantee that `_intersectionObserverCallback` (intersectionObserver) won't be called before `_updateHooks` (mouseMove/resize after a mutation occured). This is an issue because `this._elementHookMap` may not yet have a hook element related to the editable element which stops intersecting the document. If such a case occurs, the next `_updateHooks` should be called when the mutationObserver flags `_resetHooksNextMouseMove` to `true` and then after the next `mouseMove` (or after the next resize). Ignore the hook style update if there is currently no hook for an element which stops intersecting. Remove a redundant check in `_getMovableElements` task-3506666
Point of Sale orders shared between registers now include products even when the receiving register had not loaded them yet. This prevents incomplete orders and helps staff process cross-register sales accurately.
Original PR description
Prior to this commit if an order was sent to another pos with the cross order, if the product was missing in the target pos, the product will be missing in the order. This commit loads the products that are missing for the cross orders. Task-3504316