Friday, September 22, 2023
20 changes · master
Enhancements to existing features
Browser links that include selected company IDs are now easier to read. The separator between company IDs has changed so links no longer show encoded comma text, improving clarity when copying or sharing URLs.
Original PR description
Before this commit, cids in the url (in the hash part) were separated by a comma, which was encoded by encodeURIComponent as it is not considered as a safe character, resulting into "%2C" appearing in the url in between company ids. This was kind of ugly and made the url a bit hard to read. This commit uses "-" as separator for cids, which is a safe characters [1] to use in the url and which is thus left untouched by encodeURIComponent. AL request. [1] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent#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
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
Employee contract screens now use the term “Benefit” instead of “Advantage” for clearer, more familiar wording. This improves consistency in HR contract terminology and makes the interface easier for users to understand.
Original PR description
In this commit, I have made changes from 'Advantage' to 'Benefit' because I made modifications in the 'hr_contract_module'. This group is being utilized in 'hr_contract', so I updated the file accordingly. task-3374616
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
Payment forms now show available payment methods directly, instead of asking customers to choose a payment provider first. This makes checkout simpler, gives administrators better control over payment ordering and availability, and helps Odoo record the selected payment method for follow-up actions like refunds or saved payment details.
Original PR description
**[CLN] payment(_*): correct code styling inconsistencies** This commit mainly removes the extra indent level left over after commit odoo/odoo@8ec2e8cf807b3d3a8f84b8583887cb4b6a2828c1. It also cleans…
**[CLN] payment(_*): correct code styling inconsistencies** This commit mainly removes the extra indent level left over after commit odoo/odoo@8ec2e8cf807b3d3a8f84b8583887cb4b6a2828c1. It also cleans up purely cosmetic code styling inconsistencies. --- **[FIX] payment(_*): make a proper usage of async and promises** Several functions were: - called with `await` while there are synchronous; - declared as synchronous while they should have been asynchronous; - declared as synchronous but their overrides were async; - explicitly encapsulating their return values in a `Promise` when it was unnecessary. This commit also cleans up a few mistakes in comments and docstrings. --- **[REM] payment: remove unused payment method icons and SCSS rules** --- **[IMP] payment, \*: replace providers with payment methods in payment forms** Before this commit, the payment providers (e.g., Stripe, Adyen...) available for payment were displayed on the payment forms. The customer had to select one to process their payment. After that, the customer had to select their preferred payment method (e.g., Credit Card, Bancontact...) from a list of payment methods supported by the selected provider over which the website administrator had close to no control. This was making the payment forms confusing because the payment methods were displayed sometimes more than once, if at all, in a non-controlled order, and behind the selection of a payment provider that customers should not have to deal with. As the payment method was selected in an iframe or directly on the provider's website, the information on the selection payment method was not available in Odoo. This posed many problems, among which were the impossibility of assessing whether a specific feature (e.g., tokenization, refunds, manual capture...) was available, not being able to easily identify payment tokens through the payment method logo, listing available payment methods on the website, sorting and fine-grained configuration of the available payment method, subpar payment method-specific display on the payment form (e.g., PayPal that requires displaying a "Pay with PayPal" button), etc. In this commit, the payment providers are thus replaced by the payment methods on the payment forms. All contextually available (depending on the country, currency, requested feature...) payment methods are displayed one after the other on a single-level list and in the order configured by the website administrator. Each payment method is "powered by" (i.e., linked) to a single payment provider: the first one, by model order, to support it. This allows, for example, offering the PayPal payment method through Mollie, which charges low processing fees, while also offering Klarna through Stripe, which supports more payment methods but charges higher processing fees. While doing so, the two different payment forms, "Checkout" and "Manage", are also merged together in a new, configurable case-by-case, payment form that is entirely redesigned to offer a better user experience. After payment, the information on the selected payment method is saved on the transaction and eventual payment record and updated with the information received from the provider. --- task-2882677 See also: - https://github.com/odoo/enterprise/pull/40666 - https://github.com/odoo/upgrade/pull/5103 - https://github.com/odoo/documentation/pull/5717
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
Web links now show company identifiers with dashes instead of commas, making URLs easier to read and share. This is a small consistency improvement that supports related web changes without altering business workflows.
Original PR description
This commit is the counter part of odoo/odoo#136104 where we replace the comma separator of cids in the url by a "-".
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)