Daily updates from Odoo
Navigate
Branch
Friday, September 2, 2022
34 changes
New functionality added to Odoo
This adds support for subscription orders that include physical, stocked products. Businesses can automatically create recurring deliveries, invoice delivered quantities at the end of each billing period, and see planned delivery forecasts for active subscriptions.
Original PR description
TODO Community : odoo/odoo#93557
Users can now create CRM leads directly from eligible Facebook, Twitter, and LinkedIn posts or comments. This helps sales teams turn social media engagement into trackable opportunities while respecting user permissions and avoiding leads from the user’s own posts.
Original PR description
To allow user to generate a lead in the CRM, a 'Generate Lead' option has been added in the dropdown menu associated to each comment and post. This option is available when the user has the appropriate rights and when he is not the author of the post/comment. The generate lead feature has been implemented for: Facebook Twitter LinkedIn But can be implemented for future media easily by following the same architecture. Co-authored-by: Aurélien Warnon awa@odoo.com Task ID: 2206496
Enhancements to existing features
Sales-related modules now use the updated invoicing process consistently, reducing duplicated invoice logic across commissions, subscriptions, intrastat, loyalty, and TaxCloud flows. This should make invoice creation more reliable when advance payments or related sales features are involved.
Original PR description
Community PR: https://github.com/odoo/odoo/pull/98600 Upgrade PR: https://github.com/odoo/upgrade/pull/3799 Task-2959699
Loyalty, coupon, gift card, and eWallet flows were made easier to use and understand across sales and eCommerce. Customers get clearer promo code entry and order-line details, while staff benefit from simpler program menus, clearer messages, and more reliable coupon code creation.
Original PR description
This commit improves some messages and usability for loyalty and its submodules: - Coupons should not be restricted to the partner assigned to them anymore - Merged "I have a promo code" and "Use a…
This commit improves some messages and usability for loyalty and its submodules: - Coupons should not be restricted to the partner assigned to them anymore - Merged "I have a promo code" and "Use a gift card" into a single toggle - Boolean fields have been added to each app to disable them where we don't want them. - Reduced the size of coupon codes This means that we increase the risk of collision which should be handled by the model as well now. Creating a coupon with an existing code will retry the creation (up to 10 times) until the coupon is indeed created. - Make it clearer in the coupon generation wizard that an email will be sent to the customer. - Reintroduce coupon/gift card details on sale order lines in eCommerce which was wrongfully removed. - Remove the "on product with taxes: " message on order lines when the amount is not split between taxes or if the tax message would be empty. - Make it possible for some error messages to be displayed as warning instead of errors - Split program types in two menuitems, one for promotions discount loyalty etc and one for gift cards and ewallet, the latter has simplified views. - Views overall have been reviewed to make it easier to understand how to programs work. New program types have also been added. See https://github.com/odoo/odoo/pull/99023 TaskId-2951413
New Knowledge articles now use "Untitled" as their starting title instead of "New Article." This better reflects that the user has not named the article yet and makes the creation flow clearer.
Original PR description
Currently, in the knowledge module, the default value for the article title(name) is "New Article". A new article does not have a default title, so it is pointless to use the default title "New Article" when creating an article. This commit changes the default value of the article title from "New Article" to "Untitled." As well as that, tours and JS files can now trigger a new default value for the article name. task-2907572
Planning schedule bars now calculate workload using each scheduled item’s total allocated hours for the selected period. This makes resource planning views more accurate and easier for managers to interpret when reviewing capacity.
Original PR description
replaced by https://github.com/odoo/enterprise/pull/31032
Portal visitors who view Knowledge content now have a clear button or link to start an Odoo trial with Knowledge preselected. Tracking parameters are included so the business can measure how many leads this promotion generates.
Original PR description
Purpose ======= Encourages portal users that find Knowledge pretty cool to use it themselves in their own companies. Specifications ============== Whether portal users are logged in or not, if they are interested in Knowledge, this commits provides a front-end way (button or link) to redirect them on the Odoo trial form with the Knowledge app already selected. UTMs are added to the link to keep track of how many leads it generates. Task-2936725
Subscriptions now show an error when a subscription product has no pricing configured, preventing sales or renewals from moving forward with incomplete price information. This helps teams catch setup issues earlier and avoid incorrect or unclear subscription orders.
Original PR description
Raise error when a subscription product has no pricing. related : https://github.com/odoo/upgrade/pull/3537 taskid-2834336
Businesses can now choose to invoice subscriptions at the end of the billing period instead of only at the start. This supports delivery-based subscription products where the final invoice should reflect what was actually delivered rather than what was initially ordered.
Original PR description
This commit introduce the possibility to invoice subscriptions at the end of the period instead of at the start. This is especially helpful for product which are invoiced based on delivery and not ordered quantity.
This update aligns Helpdesk and Subscription email templates with the improved customer rating process. It also makes Helpdesk demo data more complete and adjusts specialized views so the right rating experience is shown more reliably.
This update adds performance coverage for the appointment scheduling features and reorganizes related tests. It also cleans up internal slot-generation code and documentation so future performance improvements can be measured and delivered with lower risk.
Payroll payslip, payslip batch, and related holiday payroll screens have been converted to Odoo's newer interface framework. This should make these payroll views more consistent with the rest of the system and easier to maintain, with limited visible process changes for users.
Original PR description
Converts the hr_payroll_payslip_tree list view to owl. Converts the hr_payslip_run_tree list view to owl. Converts the hr_payslip_form form view to owl. task-2954753
Knowledge users can now send unwanted articles to a trash area instead of permanently losing them immediately. Trashed or archived articles are clearly labeled, can be restored, and followers receive a single email notification when relevant articles are moved to trash.
Original PR description
Purpose ======= Allow users to get rid of articles they do not need anymore while adding a safeguard against irreversible deletions. Specifications ============ In the kebab menu, replace the Archive…
Purpose ======= Allow users to get rid of articles they do not need anymore while adding a safeguard against irreversible deletions. Specifications ============ In the kebab menu, replace the Archive action by a "Send to Trash" button This new action does the following: -> It archives the articles -> It gives them a "deletion date" of NOW+30days Add a discrete Trash button in the end of the side panel of home view. => It sends to a list view of trashed articles (the filter can also be available by default in the search view) When a trashed article is opened, add a ribbon at the top of the form view that says so + allows to reverse this operation Removing article from trash make it root article to ensure the article will be displayed in the sidebar (in case its old parent is still archived). To allow other users to react to this, we will notify them when an article they follow is moved to the trash bin using a simple notification by email using the new email template layout as for assignations, ...) Note: Only one mail is send per user even if multiple articles are sent to trashed. Task-2850521
Users can now create personal copies of restricted Knowledge articles in their Private section, keeping only the main article content and appearance. Administrators also gain a list-view duplication action that can copy full article structures, including children and members, while avoiding duplicate copies of nested articles.
Original PR description
Purpose: ======== 1. Allow users to create their own copies of restricted articles. 2. Allow admins to duplicate articles and their structure (children, members, ...) Specs: ====== 1. Rename "duplicate" action in the kebab menu to "Create a copy". This action creates a copy of an article in the user's Private section. It does not copy the child articles, members,... Only the name, body, cover and icon. 2. Add a "duplicate" action in the additional actions of the list view for admin users only. Since an admin could select multiple articles in the list view, one skips the duplication of articles that are going to be duplicated during the duplication of one of their parent, so that one does not duplicate several times the same article with one click on the "duplicate" action.
Planning users can now generate calendar events directly from selected shifts in the list view. This saves manual scheduling work and prevents duplicate events by skipping shifts that already have a linked calendar event.
Original PR description
This commit adds a button to generate the shifts automatically convert the shifts selected by the user in the list view into calendar events. Each shift selected by the user will generate only one calendar event, if one shift has already generated a calendar event than this shift is not taken into account during the generation of the calendar events. task-2857858
Resolved issues and error corrections
This fixes the color used for list view table headers so they match the appearance users had before the Bootstrap 5 migration. The change keeps the interface visually consistent and removes an obsolete styling line left over from the migration.
Original PR description
Before in BS4, the table used the `$table-head-color` SCSS variable to
color the header of table. This variable doesn't exist anymore on BS5.
In the commit of the BS5's merge, we have replaced the old value by
a value calculated with the color contrast in the case of the list view
it wasn't the right fix, so in community commit we restore the original
value like it was before the merge of BS5.
In this commit, we remove the unused line that was left in
the migration of BS5.
Note:
In BS4 branch the result is `#212529`:
```scss
$o-gray-900: #212529 !default;
$o-main-headings-color: $o-gray-900 !default;
$table-head-color: $o-main-headings-color !default;
.o_list_view .o_list_table thead {
color: $table-head-color;
}
```
In BS5 branch the result is `#00000`:
```scss
.o_list_view .o_list_table thead {
color: color-contrast(opaque($body-bg, $light));
}
```This fix updates internal tests so they keep working after a backend optimization changed when data is refreshed. It helps maintain reliability for Helpdesk and Field Service Sales without changing customer-facing features.
Original PR description
…ed_triggers`. `_modified_triggers` read and flush much less than before. Then some test crash because of that, fix it. https://github.com/odoo/odoo/pull/99274
Account reports now apply the correct number styling to all numerical values. This helps keep financial report figures visually consistent and easier to scan for users.
Original PR description
Sometimes the numerical values on an account report will not have the number class. This insures that the number class is properly applied to all numerical values. Signed-off-by: Ruben Gomes <rugo@odoo.com>
The Helpdesk ticket portal layout was adjusted to use page layout components more consistently. This helps keep ticket pages visually aligned and avoids minor display issues for portal users.
Original PR description
In this commit, we replace wrong usage of col without row, also adapt some gutter instead of padding and replace the old btn-block.
This fixes an issue in the sales subscription flow where the wrong unit of measure could be used on order lines. It helps ensure quantities and pricing are calculated consistently for recurring sales.
Original PR description
task-2960768 see also: - https://github.com/odoo/odoo/pull/98780
This fixes how Knowledge pages are accessed through web requests, helping ensure the right user context is used. It reduces the chance of access or permission issues when people open Knowledge content.
Knowledge administrators can now see and use moderation actions such as moving, archiving, and inviting members on articles even when they do not have normal write permissions. This ensures admins can consistently manage and moderate content without being blocked by article-level permissions.
Original PR description
Currently, the buttons allowing the user to move an article, archive an article, invite a new member, etc are hidden if the user does not have "write" permission on the article. This also applies to the admins. However, the admins should always be able to do those actions to moderate the articles even if they do not have "write" permission on the articles. This PR will address that issue and will make sure that the buttons will remain visible for the admins no matter the permissions they have on the articles. task-2893614
Removing someone from a Knowledge article's sharing panel now works without triggering an error. This prevents confusion and keeps collaboration management smooth when updating article access.
Original PR description
When the user removes a member from the share panel, the user will get a missing record error. The error occurs in the `article_remove_member` method: In that method, we fetch the partner from the member after deleting it. When we try to fetch the partner, the model raises an error as the member partner no longer exists. To fix the issue, we will backup a reference of the partner associated to the member we want to delete before deleting it. We will then use that reference in the following instructions. task-2968657
The Knowledge share panel no longer shows article links that the current user cannot open. This prevents users from clicking links that would lead to an access error and makes permission inheritance clearer.
Original PR description
In Knowledge, an article can inherit its permissions and its members from one of its parents. When it happens, the share panel includes a link to the article giving new permissions or members. When the user does not have access to the article, the user will get an access error by clicking on the provided link. To avoid that, we will no longer display a link in the share panel if the user does not have access to the target article. task-2968511
Features or functions removed from Odoo
The manufacturing app no longer adds an instruction note to the barcode menu, avoiding errors when the optional barcode inventory feature is not installed. Users can still download the related instruction PDF from settings, so the practical impact is limited.
Original PR description
Before the OWL conversion of the `stock_barcode` main menu, the override of its template to add the Manufacturing instruction doesn't cause any troubles even if `stock_barcode` wasn't installed (`mrp_workorder` depends of `stock` and `barcodes` but not `stock_barcode`). But after the OWL conversion, the override raises an error if `stock_barcode` isn't installed. Instead of creating a new module only to add a sentence in a XML template, we remove it, since the PDF with the instructions still can be downloaded in the settings.
Code cleanup and technical improvements
This change updates the rental product configurator so it continues to work with a recent internal code structure change. It helps maintain reliable product selection flows on eCommerce rental pages without changing the customer-facing experience.
Original PR description
The product_configurator_modal is now an ES6 module with a named export, this commit adapts the corresponding import.
The account reporting engine was cleaned up by removing leftover development code that made the logic harder to understand and maintain. This reduces the risk of future mistakes in account report calculations without changing expected user-facing behavior.
Original PR description
Some code from a dev version of the engine was left in it. It was unclear and error-prone.
Miscellaneous changes
Steps to reproduce: - On a small screen (aka mobile) - Open any Pivot view => error about calling `querySelectorAll on null` The Pivot view's small screen customization uses the `this.el` which doesn't exist anymore in the "modern" codebase. This commit get rid of the `this.el` and uses a reference to the root node instead. Forward-Port-Of: odoo/enterprise#30984
Original PR description
Steps to reproduce: - On a small screen (aka mobile) - Open any Pivot view => error about calling `querySelectorAll on null` The Pivot view's small screen customization uses the `this.el` which doesn't exist anymore in the "modern" codebase. This commit get rid of the `this.el` and uses a reference to the root node instead. Forward-Port-Of: odoo/enterprise#30984
Issue: The tests are supposed to pass when the module sign is in standalone and they fail here because the field credit is only added with the account module. No monetary field is set on res.partner with only the sign module that's why we use credit from account. Solution: The test is run only if the field credit exists (if the account module is installed) opw-2920379 Forward-Port-Of: odoo/enterprise#30959 Forward-Port-Of: odoo/enterprise#30834
Original PR description
Issue: The tests are supposed to pass when the module sign is in standalone and they fail here because the field credit is only added with the account module. No monetary field is set on res.partner with only the sign module that's why we use credit from account. Solution: The test is run only if the field credit exists (if the account module is installed) opw-2920379 Forward-Port-Of: odoo/enterprise#30959 Forward-Port-Of: odoo/enterprise#30834
opw-2871127 Forward-Port-Of: odoo/enterprise#31008 Forward-Port-Of: odoo/enterprise#30872
Original PR description
opw-2871127 Forward-Port-Of: odoo/enterprise#31008 Forward-Port-Of: odoo/enterprise#30872
Enterprise part of odoo/odoo#99457 Forward-Port-Of: odoo/enterprise#31005
Original PR description
Enterprise part of odoo/odoo#99457 Forward-Port-Of: odoo/enterprise#31005
Have an invoice in a CO company Click on 'add debit note' Fill the widget, leaving 'copy lines' unchecked and create the debit note Lines will be copied anyway opw-2928727 Forward-Port-Of: odoo/enterprise#30883
Original PR description
Have an invoice in a CO company Click on 'add debit note' Fill the widget, leaving 'copy lines' unchecked and create the debit note Lines will be copied anyway opw-2928727 Forward-Port-Of: odoo/enterprise#30883
SAF-T reports have 2 standards: v1 and v2. Some countries are based on v1 while others on v2. In v1, DebitAmount or CreditAmount are optional, in v2 it's mandatory. This means that for countries using v2, this mandatory field might not always appear. v1 doc:    v2 doc:  This commit addresses this issue by always displaying DebitAmount or CreditAmount even when both credit and debit are 0.0. The choice between the 2 depends on the move type (in_invoice or out_refund = DebitAmount, out_invoice or in_refund = CreditAmount) task id=2920040 Forward-Port-Of: odoo/enterprise#30755 Forward-Port-Of: odoo/enterprise#29509
Appointment link can be lost in the nature and we cannot remove a link and risk 404 for the link Forward-Port-Of: odoo/enterprise#30978
Original PR description
Appointment link can be lost in the nature and we cannot remove a link and risk 404 for the link Forward-Port-Of: odoo/enterprise#30978