Daily updates from Odoo
Thursday, May 23, 2024
22 changes · master
Enhancements to existing features
Users can now choose a marketing campaign template directly when creating a new campaign, or start from scratch if preferred. This makes existing templates easier to discover and use, while also allowing standard marketing users to create campaigns from templates without admin help.
Original PR description
Add a template selection dialog modal:
Marketing campaign templates had been added, but they were inaccessible
once a campaign had been created.
This commit adds a dialog modal that replaces the usual behavior when
trying to create a new campaign with the "New" buttons.
The modal allows choosing a template from a list, including a "Start
from scratch" (empty campaign) option.
The old helper is simplified: it no longer displays marketing campaign
templates.
New files are created to accomodate the new Controller classes used to
display the modal in all Kanban, List and Form views.
The files created by the precedent commit would clog up the main JS
folder, and are therefore moved to dedicated subfolders.
Rectify SVG template icons:
The SVG files for each FontAwesome icon used in the template picker
helper were either too wide or too narrow.
This corrects these icons; the missing FA license mentions have also
been added.
task-3603400VoIP users can now place an active call on hold and resume it directly from the softphone. The mute control has also been clarified so it now mutes the user's microphone, making call handling more intuitive.
Original PR description
We finally have a button to hold/unhold during a call. Also, since we can now hold a call, the Mute button now will now mute your microphone instead of muting your speaker. Task-3670392
Search screens in several Odoo apps now use updated date filter options and improved filtering behavior. This makes reports and operational views more consistent and easier to use across areas such as Helpdesk, Payroll, Planning, Rentals, Stock, and Knowledge.
Original PR description
This PR updates various search views following the change to date filters in the community counterpart. It also brings some changes in search views using the new features brought by those changes. Community: https://github.com/odoo/odoo/pull/156746 Task-3692123
Knowledge search now helps users find articles based on the text inside documents, not only by title. This makes it faster for teams to locate information in large or poorly organized knowledge bases and reduces time spent opening multiple articles manually.
Original PR description
Knowledge is a wonderful tool for collecting, organising and sharing documents with colleagues. However, Knowledge lacks an effective search feature allowing people to search within the content of…
Knowledge is a wonderful tool for collecting, organising and sharing documents with colleagues. However, Knowledge lacks an effective search feature allowing people to search within the content of their documents. The existing search feature only searches for documents with a specific title. If the users don't know which document contains the information they need, they can waste time reading a bunch of articles before finding what they want. This can be time consuming and frustrating when there are a lot of documents in the knowledge base and when the articles are not well organised. To help people to quickly find the information they need in the knowledge base, we will improves the command palette search algorithm. The search algorithm will now be able to find documents containing the search terms inputted by the user. Technical --- The new search algorithm uses the PostgreSQL's built-in full-text search feature. This feature will do all the heavy lifting for us: It will be able to strip the html tags from a document, quickly find article matching with the given search terms, highlight the matching terms in the document, etc. To index the documents, we will define a custom text configuration that is independent of the user's language: It will not discard any words and will not apply any stemming methods to the documents and the search query. It will also ignore the HTML tags stored in the article body. To reduce the query runtime, the search algorithm limits the number of candidates to consider (see: the "cut_off" parameter) and pre-selects relevant candidates incrementally: The algorithm first selects articles matching with the title and the body of the article. If there are not enough matches, the algorithm will select articles matching with the title only. If there are still not enough matches, the algorithm will select the articles matching with the body only. After that, the algorithm ranks the selected articles using a scoring function and returns the most relevant ones. This should ensure that the results we get are relevant and that the query response time is acceptable. Benchmark --- To evaluate the efficiency of the new search algorithm, we loaded in Knowledge 100, 1000 and 10 000 articles coming from an online encyclopaedia using a populate script. The script will nest these articles under one another to form a tree with a branching factor of 5. The articles will be written in English and will be placed in the workspace of Knowledge. We then randomly selected 100 different words from the loaded articles and we searched them using the new search algorithm. We then measure the query response time and we calculate the average, the standard deviation, the minimum and the maximum response time. Response time: - Admin user: | N | AVG | Std Dev | Minimum | Maximum | |-------|-----------|---------|----------|-----------| | 100 | 188.92ms | 172.5 | 18.4ms | 540.31ms | | 1000 | 406.56ms | 316.31 | 28.54ms | 1236.47ms | | 10000 | 1467.31ms | 901.12 | 138.56ms | 3670.40ms | - Demo user: | N | AVG | Std Dev | Minimum | Maximum | |-------|-----------|---------|----------|-----------| | 100 | 184ms | 165.41 | 25.86ms | 571.79ms | | 1000 | 457.69ms | 275.76 | 76.02ms | 1456.63ms | | 10000 | 1504.90ms | 662.64 | 600.57ms | 3199.80ms | **Observation**: The response time can vary greatly depending on the number of times the search terms appear in the documents. The more often the search term is used, the more results there will be and the slower the query will be. - The minimal response time observed is when the search term appears in the body of a single article. - The maximal response time observed is when the search term appears in the body of many article but does not appear frequently in the titles. Index disk usage: | N | Index name | Size | |-------|-------------------------------|--------| | 100 | knowledge_article__name_index | 229kB | | 100 | knowledge_article__body_index | 2318kB | | 1000 | knowledge_article__name_index | 1458kB | | 1000 | knowledge_article__body_index | 8536kB | | 10000 | knowledge_article__name_index | 5447kB | | 10000 | knowledge_article__body_index | 32MB | Column disk usage: | N | Column name | Size | |-------|-------------|--------| | 100 | body | 855kB | | 1000 | body | 6799kB | | 10000 | body | 71MB | Legend: - N: Number of articles stored in the database Reference: PostgreSQL documentation: https://www.postgresql.org/docs/15/textsearch.html task-3071299
Restaurant staff can now manage table bookings directly from the point of sale interface. This reduces the need to switch to the back office, helping teams handle reservations faster during service.
Original PR description
In this commit we introduce the ability to book tables directly from the pos ui, by opening the gantt view of `appointments` in a dialog. This means that users will no longer need to navigate to the backoffice to manage appointments. Task: 3861885
New Point of Sale users can now quickly start with ready-made business scenarios such as Furniture, Bakery, Clothing, Bar, and Restaurant. This improves first-time setup by creating relevant sample configurations and data, while demo installations automatically include all scenarios for easier evaluation.
Original PR description
The goal of this task is to improve onboarding experience of new users. The idea is that when a user start an odoo instance without demo and installed the point_of_sale module, the user is welcomed…
The goal of this task is to improve onboarding experience of new users. The idea is that when a user start an odoo instance without demo and installed the point_of_sale module, the user is welcomed with options to create configuration and data sets from different predefined scenarios, namely Furnitures, Bakery, Clothing, Bar and Restaurant. The original sets of demo data are now categorized in the Furnitures and Restaurant scenarios and the other scenarios are added with new data sets. As for the installation of pos modules in demo mode, we automatically load the scenarios, so now, there will be 5 configurations when both point_of_sale and pos_restaurant are installed. The demo products (and related records) are put in .xml files. These files are loaded using `convert` module on demand -- based on what scenario the user selected. This is the reason we have exposed few methods that will be called from the backend interface. When in demo mode, we pretend that all scenarios are selected and we call the action that loads the scenarios. Small fixes and improvements are also included in this commit: - Fix styles and layouts in the components related to opening and closing dialogs. - Resize of selection pills during product configuration. - Reduce the size of the anchor to resize tables in the floor screen during edit mode. - Remove CancelConfirmationDialog as it doesn't serve so much purpose. We just use the normal confirmation dialog when asking users about the closing amount difference. TASK-ID: 3598952 Linked PR: https://github.com/odoo/odoo/pull/154995
Users can now choose custom date ranges in Gantt views instead of being limited to fixed day, week, month, or year views. The update also adds new scale options, sorting controls, dense/sparse display switching, and performance safeguards for very large schedules.
Original PR description
The main goal of this task is to allow the user to work on a chosen time range via two date pickers. This will ease the edition of records by making possible to move, resize, create, edit records on…
The main goal of this task is to allow the user to work on a chosen time range via two date pickers. This will ease the edition of records by making possible to move, resize, create, edit records on time periods that are not arbitrarily fixed to a given day, week, month, or year. Two new scales are also available: week_2 and month_3. The principal effect of scales is now to determine the duration of the gantt columns ("hour", "day", "month") and their widths. The scale can be chosen via a slider.
We also have added some new buttons:
- two buttons for sorting the rows by the time their first pill occur (i.e. groups can be sorted by date_start:min asc or desc)
- a button to change the display mode ("dense"/"sparse") introduced in https://github.com/odoo/enterprise/pull/58338
Note that for performance reason, we do not allow time range bigger than 10 years. We also forbid to load more than 1000 records. In case that limit is reached a notification is displayed. This has been done in order to keep the number of rows/columns in the css grid within the bounds allowed by Firefox (https://bugzilla.mozilla.org/show_bug.cgi?id=1336679). Note that we do not render all loaded records. The gantt view is now also virtualized in the horizontal direction and we only add to the css grid the rows/columns effectively needed to display the visible elements.
In mobile mode, the date selection is done in a dialog instead of a popover. We plan to extend that behavior everywhere.
Task ID: `3601456`
Co-authored-by: Bruno Boi <boi@odoo.com>
Co-authored-by: Julien Carion <juca@odoo.com>
Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>
Co-authored-by: Romeo Fragomeli <rfr@odoo.com>
Co-authored-by: Pierre Pulinckx <pipu@odoo.com>
Co-authored-by: Luca Vitali <luvi@odoo.com>
https://github.com/odoo/odoo/pull/162017The appointment module’s automated tests were updated to reflect a calendar list view change. This helps ensure the “All calendars” filter continues to be checked correctly during development, reducing the risk of regressions for appointment scheduling.
Original PR description
This commit adapts the tests with mock RPC routes to add the route to get the "All calendars" filter from the calendar's list view. related: odoo/odoo#149192 task-3790206
Moroccan invoice templates now include the ICE business identification number for companies and partners when available. This helps invoices meet local administrative and legal requirements in Morocco.
Original PR description
[IMP] l10n_ma_report: Add ice number Adding ice number to morocco's companies' and partners' invoices template as part of the address Reason: The ICE (Identifiant Commun de l'Entreprise) is an identification number assigned to businesses and legal entities for various administrative and legal purposes in Morocco. If the partner has one, it must be indicated on the invoice. Task-3877546 Community-pr: https://github.com/odoo/odoo/pull/162669
The product form has been reorganized to make key settings easier to understand and find. Labels and filters were clarified for rentals and subscriptions, while product details such as pricing, versions, and categories now appear in more relevant places.
Original PR description
This commit do following changes: - Hide category field for combo products. - Update tour steps according to community changes. - Move version field to inventory module. - Move pricer section to POS page. - Change rent_ok field to `Rental` instead of `Can Be Rented`. - Change can be `Can Be Recurring` filter to `Subscriptions`. task-3526304
Employees with an appraisal already in progress now see “Ongoing” where the next appraisal date appears, instead of a blank value. This makes appraisal status clearer for managers and employees reviewing employee profiles.
Original PR description
Before the next appraisal date displayed nothing when there was an ongoing appraisal but now it will display "Ongoing". task-3890332
Product and appointment-related flows were simplified by removing the special booking fee product type and updating related sales, payment, and website appointment behavior. This should make product setup clearer and reduce unnecessary complexity for teams managing appointments and online sales.
Original PR description
The following changes have been made in this commit: - In the product form, several strings have been renamed. - The stat buttons are reordered. - Remove SLA policy from helpdesk - Removing the All Category and making a flat hierarchy. **Target version**: master **Task**: 3526304
The Master Production Schedule has been reworked to make planning clearer and more automated. Users get a cleaner interface, better demand calculations with production lead times, optional maximum replenishment limits, and new controls for automatic or blocked replenishment.
Original PR description
Rework of mrp_mps task 3416609
The barcode app’s operation list now highlights useful context, including operation descriptions and batch counts, so warehouse teams can identify the right workflow faster. It also defaults to showing favorite barcode operations, reducing clutter and helping users focus on their most-used tasks.
Original PR description
Community PR: https://github.com/odoo/odoo/pull/150360
New automated tests verify that Balance Sheet reports remain balanced across supported accounting setups. This helps catch localization or configuration issues earlier, reducing the risk of inaccurate financial reports reaching users.
Original PR description
This commit introduces a l10n test over the Balance Sheet reports. For each CoA, a company is set-up, and all the available Balance Sheet reports for the company are tested. The test generates a…
This commit introduces a l10n test over the Balance Sheet reports. For each CoA, a company is set-up, and all the available Balance Sheet reports for the company are tested. The test generates a journal entry with a line in every account that is not `off_balance` and not in the NON_TESTED_ACCOUNTS global at the head of the file (useful for accounts that are forced to be generated, but should never be used, like 999999 in Belgium). It then checks whether the Balance Sheet is balanced. The test does this both for debits and for credits. To work, the test needs to know, for each Balance Sheet report: - the XMLID of the Total Assets line - the XMLID of the Total Liabilities line - the XMLID of the Total Equity line (if separate from Liabilities) - the column name containing the balance (if different from 'balance') These are specified in the REPORT_CONFIG global at the head of the file. The test will hard-fail if an available Balance Sheet report is not configured in the REPORT_CONFIG global. This makes it mandatory for new Balance Sheets to add their config there. Setting the global IDENTIFY_INCORRECT_ACCOUNTS to True switches the behaviour of the test: it identifies the accounts that cause the imbalance using a binary search. This is off by default for runbot. Task: 3060790
This update removes outdated configuration left over from an earlier redesign of the import screen controls. It does not change user-facing behavior, but helps keep the accounting import interface easier to maintain and less prone to future layout issues.
Original PR description
During the "Milk" redesign [1], ControlPanel's layout was changed, impacting the `display` prop used to control which parts are displayed or not.
This commit cleans up some remnants of the old layout (i.e. `{top,bottom}-{left,right}`) that are now unused.
task-3336242
[1]: https://github.com/odoo/odoo/pull/116641Manufacturing teams can now open related shop floor work directly from a manufacturing order and add or edit shared log notes for manufacturing and work orders. Product analysis also gains expected unit cost figures for components, work centers, employees, and totals, helping compare planned costs with average costs.
Payroll users can now generate payment reports as CSV files from individual payslips or payroll batches. The change also standardizes the reporting flow so future payment formats can use the same buttons and wizard, reducing training and operational friction.
Original PR description
* = hr_payroll_account_sepa With this, we can generate a payment report for any payslip/batch as a .csv. Also make it so that when new modules introduce other payment report formats, they are handled with the same buttons and wizards. Task: 3880728
The Amounts to Settle view now includes a reconcile button, making it easier for accounting users to handle outstanding items directly from that screen. This supports the expanded view, which now covers more move types such as sales, purchases, incoming, and outgoing entries.
Original PR description
This commit improves the Amounts to Settle view by adding a reconcile button on it. This behavior is now desired because the view shows all types of moves (out, in, sale, purchase) which it did not before so this button is needed. --- Community PR: https://github.com/odoo/odoo/pull/158014 Upgrade PR: https://github.com/odoo/upgrade/pull/6036 task-3640027
The Documents app interface has been refined to make everyday document work clearer and faster. Users get cleaner document cards, simpler search filters, clearer inspector actions, improved configuration menus, and more control over tag category colors.
Original PR description
This commit performs the following changes in the view of documents module: - Reshuffle the star icon and the owner avatar in kanban title. - Increase the visibility of the document record selector…
This commit performs the following changes in the view of documents module: - Reshuffle the star icon and the owner avatar in kanban title. - Increase the visibility of the document record selector icon in kanban view. - Rename and reorganizes some search filters and remove activity-related filters section. - Merge the functionality of "Documents" and "File Extension" search filters under one single search filter that goes by the name "Name/Extension". - Make the labels of actions in documents inspector clickable and remove the preceding play icon. - Remove icons that precedes the field labels in documents inspector. (i.e. 'Workspace', 'Model Name', 'Tags', 'Actions' and 'History') - Simplify list view of 'documents.folder' model by displaying only the `Name` field by default all others are optional. - Change the 'Content Helper' message of the 'Trash' folder. - Add a placeholder for the 'Message' field in the 'Request File' wizard. - Change the position of lock icon in the kanban title. Add bootstrap classes to properly display the document name. - Restructure the list view of 'Workflow Rules' (Actions). This commit also allows the user to manually change tags group color by using a color picker. And it finally change the structure of the configuration menu. Task-3874977
The rental shopping experience is refined with clearer date pickers, better mobile filter spacing, and more visible guidance messages. Rental snippets and product pages now follow a more consistent layout, making it easier for customers to choose rental dates and understand pricing.
Original PR description
### 1. Adapt spacing in mobile filters Prior to this PR, there was a spacing issue between the date picker and the title in the offcanvas menu for filters. This PR fixes this issue. ### 2. Rental…
### 1. Adapt spacing in mobile filters Prior to this PR, there was a spacing issue between the date picker and the title in the offcanvas menu for filters. This PR fixes this issue. ### 2. Rental datepicker adaptations This PR reviews the design of the datepicker to make it easier to use. ### 3. Display disclaimer in tooltip Prior to this PR, there was a disclaimer as a title attribute in the rental filter. But this message is too important to be displayed as a regular title attribute. This PR highlights this message by displaying it in a tooltip available when hovering an "info" icon. ### 4. Rental snippet adaptations **Design adaptations:** Since the adaptations made to the design of the rental datepicker, this PR reviews the design of the rental snippet to maintain a consistent layout. **Generate unique ids for rental snippet:** We now use the calendar icon next to the input as a label. To be clickable, this label must be linked to the corresponding input by an id. To avoid duplicate ids when several snippets are in the page, this PR generates unique ids for each input. ### 5. Refine the product page layout This PR moves the price to the same place and style as the other product types to maintain a consistent layout. It also adapts the style of "Pricing" title for the same reason. --- Requires: - https://github.com/odoo/odoo/pull/153374 task-3637980 --- | Before | After | |--------|--------| |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  |
HR teams can now choose how many people need to sign an employee contract and specify exactly which users should sign. This gives businesses more control over contract approval workflows and better supports company-specific signing policies.
Original PR description
Allow to change the number and the users of signatories in hr_contract task-id: 3332971