Daily updates from Odoo
Navigate
Branch
Thursday, August 22, 2019
40 changes
New functionality added to Odoo
Event organizers can now view event tracks in a Gantt-style schedule, making it easier to see sessions over time and plan agendas. This helps teams coordinate event content and spot scheduling overlaps more quickly.
Original PR description
A gantt view has been added for the event tracks. TaskID: 2056905
Enhancements to existing features
Website publishers can now add, edit, or remove a single public comment on customer reviews for products and eLearning courses. This lets businesses provide context or feedback directly beside a rating without starting a full discussion thread.
Original PR description
To answer to a rating message (review) of a course (eLearning) or a product (eCommerce), we add a way to the publisher to directly comment a review inside the website ratting chatter. The goal was not to enter into a discussion, it was to give a feedback of a ratting to the other user, then only one publisher comment is allowed. Any publisher can add/edit/remove comment of a rating message from the website. TASK-ID : 2026911 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
Course members are now automatically subscribed to course updates so they can be notified when new content is published. The update also improves the notification email wording, prevents preview errors, and adds an option for learners to unsubscribe from notifications or leave a course from the eLearning page.
Original PR description
PURPOSE This PR rewords the mail template "slide_template_published", makes the member of a course follower of the course, allow members to leave courses and prevents the templates to crash on preview SPECIFICATIONS When a user subscribe to a course, the user is automatically follower of the course in order to be notified when a new content is published. The email that the members get when a new content is published on the course is reworded and fixed to avoid preview crash. A new widget is implemented allowing members to unsubscribe from a course or to leave it directly from eLearning frontend. LINKS Task 1985511
This update restores out-of-office support in the Time Off area, helping teams better communicate employee absences. It improves visibility around leave so colleagues can more easily understand when someone is unavailable.
Original PR description
TaskID: 2057430 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
Partners are now classified using their incoming and outgoing accounting activity instead of relying only on sales or purchase orders. This helps Odoo choose the right accounting treatment more accurately when posting lines for customers, suppliers, or partners that are both.
Original PR description
Purpose ======= To correctly choose in which account a line should be posted, we have to know if the partner is a customer or a supplier. Specification ============= Add two computed fields on res.partner: 1) The number of account move "in" 2) The number of account move "out" Based on those fields, the partner can be categorised as customer/supplier/both Task 2049131 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Odoo now tracks customer and supplier activity from posted accounting entries so partner lists can prioritize the most relevant businesses. Customer and vendor menus also default to showing matching partners, making it easier for users to find the right contact when creating accounting, sales, or purchase documents.
Original PR description
Purpose ======= To correctly choose in which account a line should be posted, we have to know if the partner is a customer or a supplier. Specification ============= Keep track of the number of…
Purpose ======= To correctly choose in which account a line should be posted, we have to know if the partner is a customer or a supplier. Specification ============= Keep track of the number of account moves "in" and "out" a partner has. These counts should be updated each time a account move is posted. To avoid any concurrent update failures on the partner, if one transaction already locked a partner row the count update will be skipped this time. This means the values may not be exact in the database! The exact values will eventually be correctly computed at the next successfull try. Known limitation of this approach: The computation ignores the set of currently selected companies. i.e. `allowed_company_ids` key of the context. Use the stored fields `account_move_out_count` and `account_move_in_count` to order partners when searching by name. This allows to show best customers or best suppliers on top. To choose if best customer or supplier are shown on top, the context key `res_partner_search_mode` is used. The context key can take two values: customer or supplier. This decision revamps 8766f38 to only use account move instead of PO and SO On actions showing partner, set a default filters to menus to only display customers (account_move_out_count > 0) if the string is "Customers". And only supplier if the string is "Vendors" or "Suppliers". When creating a partner, artificially set `account_move_[out|in]_count` to one to display it even if there is filter. Don't allow this number to get back to zero if the "real" count is recomputed for some other reason. 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
Odoo now avoids refreshing temporary wizard-style records when regular business records change. This reduces unnecessary background work and can improve performance without affecting normal saved records.
Original PR description
This is a performance optimization: modifying a regular record will not trigger some recomputation on a transient record. Most transient records are simply waiting to be garbage-collected, so there is no need to keep their fields up-to-date.
Event track tags marked as hidden are now kept out of public website pages. This helps event organizers control what visitors see while preserving internal tagging for management purposes.
Original PR description
The goal is to hide the hidden tags on event tracks from the frontend TaskID: 2056905 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
CRM opportunity updates now show clearer messages when an opportunity is lost or restored. The change combines related loss details into one activity note, adds a restoration message, and improves wording around success probability so sales teams see cleaner, easier-to-understand history.
Original PR description
[IMP] crm: improvement to stage messages, some strings and fix of typos As part of the back2basics, the stage messages were modified to be clearer: -when an opportunity is lost previously 2 separated messages where created in the chatter (one for the reason, one for the active state) now, one message is created with both infos. -new message when an opportunity is restored. There where also some fixes to typos, and an the probability of a lead to be successful received a new title "estimated by Odoo". -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Expense records now require a company to be set, helping ensure related accounting entries are created under the correct company. This improves reliability for organizations operating across multiple companies and reduces the risk of expenses being posted to the wrong entity.
Original PR description
This commit provides hard constraints (SQL level) for expense to work in multi company environement. This is related to a R&D task, the rest of the code need to be adapt, but freeze is coming. As expense implies accounting entries, it is required to generate them in the right company, the company field should then be required. Task-1999686 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
Website publishers can now add, edit, or remove a single official response to reviews on courses and products, helping provide visible feedback without turning reviews into full discussions. The update also fixes an issue where editing a review without changing its rating could incorrectly reduce the rating value.
Original PR description
[IMP] website_rating : Publisher Comment of a review To answer to a rating message (review) of a course (eLearning) or a product (eCommerce), we add a way to the publisher to directly comment a review inside the website ratting chatter. The goal was not to enter into a discussion, it was to give a feedback of a ratting to the other user, then only one publisher comment is allowed. Any publisher can add/edit/remove comment of a rating message from the website. TASK-ID : 2026911 [FIX] Modify a review, rating value badly updated When someone edited his review without changing the rating, the rating value was divided by 2 for no reason. Solution : update the hidden input value during the start function ( -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Odoo web forms now keep track of fields that users touched, even when the final value matches the original value. This helps ensure the server receives the user's intent after automated field updates, reducing the risk of incorrect saved data.
Original PR description
Before this commit, a simple optimization was done: if a field was modified in such a way that the new value is the same as the initial value, then it is not considered changed. However, with the new changes in the ORM, it may be an issue, because doing so loses the intent of the user. If an onchange changes a field, then the user changes it back, the server is not aware of that fact. With this commit, we simply keep the field in the list of changes to send to the server. 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
This change rolls back an unstable editor update and restores the older, more stable editing experience used in prior Odoo versions. It also adjusts email marketing and point of sale editor integrations so users can continue editing content with fewer maintenance risks and more predictable behavior.
Employees can now find and select eligible sales orders when reinvoicing expenses, even if they are not the salesperson assigned to those orders. This makes expense recharging more flexible while limiting the search to relevant sales orders and allowing salespeople to open the related orders they need to review.
Original PR description
As f871908e86dc868a7d2fb1d2dff6cae0fb79977c wants to allow simple empoyee to select any SO on which the expense should be reinvoice, we need a little adjustement. Indeed, before this commit, the ir.rule of current user are still apply (bad comprehension of `name_get_uid` parameter), so a salesman will only be alble to reinvoice on its own SO while an employee can do the same on any SO. This commit fixes this strange use case with rco's advice to make this mecanism work in a cleaner way. To restrict this `name_search` done in `sudo`, we apply a context key, and an hardcoded domain (combine with a AND) to minimize the divulgation. Also, we want the saleman to be able to open and see the SO. Task-1843241
This change replaces an unstable interim editor with the earlier, more stable editor version while keeping the newer integration layer. It reduces maintenance risk for Odoo 13 and helps website and mass mailing editing share fixes with older supported versions.
Original PR description
This PR reverts the saas-12.2 editor by restoring the 12.0 editor. The saas-12.2 editor was an intermediate work between the previous editor of Odoo 12 and the new one slated for Odoo 13. It was…
This PR reverts the saas-12.2 editor by restoring the 12.0 editor. The saas-12.2 editor was an intermediate work between the previous editor of Odoo 12 and the new one slated for Odoo 13. It was unstable but it was expected to be replaced by the new editor of version 13. However, since the new editor has been postponed to Odoo 14, the saas-12.2 one would have been staying in Odoo 13, which would have been a nightmare to maintain. To avoid this outcome, we chose to put back the 12.0 editor in its place. This has the particular advantage that Odoo 13 will share the same bugfixes as Odoo 12 and 11 as they all run under the same core editor, while the saas-12.2 one would have been an entirely different beast to maintain. Despite its title, this PR is not a revert of PR 29775 per se, as we are using the wysiwyg abstraction layer that was introduced in that PR. The goal of the wysiwyg abstraction layer is to provide an interface for other modules that want to use the editor feature such that the editor core itself can be changed without requiring extensive changes in the other modules. This PR uses the wysiwyg abstraction layer to restore the 12.0 editor with minimal changes to the modules that use the editor.
This update improves how Odoo calculates stock quantities for product kits and service products. Businesses with large product lists should see faster inventory-related searches and screens, without changing the quantities shown for real stockable products.
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 employee referral app now uses clearer English wording and fixes small typos across referral screens, emails, alerts, and reward-related messages. This improves readability and gives employees a more polished experience when sharing jobs or managing referrals.
Original PR description
Removed some typo's and improved some source terms.
The Sign app now offers clearer signing and template-editing flows, better labels and messages, immediate email sending for smaller requests, and cleaner document naming. It also adds activity logs for access, signing, downloads, and request creation, improving traceability and confidence in signed documents.
Original PR description
This branch has 2 main goals: 1. Improve UX of the Sign application 2. Add traceability of sign requests UX Improvements ============== - improve ux when editing a template: items have a placeholder (by default the type of item) - improve field labels, dialog messages, button strings, etc. - send emails immediately if needed - less shenanigans with file extensions - update views for better interactions (moar buttons!!) - improve redirection feature by adding a label, allowing users to redirect signers to a specific page after signing Traceability ========= - add logs when a sign item is accessed/signed - allow printing a report of logs
Map view settings have been moved into the general settings area, making them easier for users to find in a more logical location. This improves usability without changing the underlying map functionality.
Original PR description
-The settings block is now in general settings -Changes to Strings
The Web Studio report editor has been adjusted to work with the restored older editor experience. This keeps report customization consistent and usable after the editor change, reducing confusion for users managing reports.
Original PR description
The saas-12.2 editor was replaced in PR 35677 by restoring the 12.0 editor. This PR adapts the report editor in web_studio following that change and is therefore a partial revert of PR 3399.
Resolved issues and error corrections
The website visitor screens have been cleaned up by removing unnecessary options to create or edit visitor and page-view records. This helps prevent accidental manual changes and keeps the interface focused on viewing tracking information.
Original PR description
…age] This commit cleans up website.visitor related views by removing unnecessary create mode. It also removes the form view on the website.visitor.page model (="Visitor Page Views") as tree view contains all necessary information and there is no point in creating/editing them. Task#2057933 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
This update fixes several issues in restaurant point-of-sale test setup and execution, making automated checks more stable. It also corrects printer-related behavior in restaurant setups, reducing the risk of test failures and integration problems without changing day-to-day user workflows.
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
This fixes an issue that prevented IoT Boxes from being set up after a recent barcode scanner change. The device now sends available keyboard layouts to the server when needed, avoiding a connection problem and restoring setup reliability.
Original PR description
The setup of IoT Boxes failed since the merge of the task about barcode scanners: odoo/odoo#35084 We tried to get the list of available keyboard layouts from the IoT Box. The request was sent from the server, which cannot reach the Box because it's not located on the same server. We now perform this task the other way around. When a device of type printer is created on the Box, we send the list of available layouts to the server. TaskID: 1961025 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue where invoices created from the Point of Sale could not be downloaded because the invoice download request was missing the right order identifiers. Businesses using POS invoicing can now reliably retrieve customer invoices directly from the POS flow.
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
Opening the Website dashboard analytics menu no longer crashes when there is no chart data available. This makes the default empty dashboard experience stable for users and prevents a blocker when accessing analytics.
Original PR description
Website > Dashboard > Analytics By default, there is no data and no Chart, and without this revision, a crash is caused when opening the menu.
This fix ensures accounting calculations continue to use the correct company information after recent system performance changes. It also preserves proper stock access behavior when elevated permissions are used, reducing the risk of incorrect access checks.
Original PR description
- With the new ORM optimizations, the cache doesn't depend on the context and the key context that are really important for the computation of a value must be explicitly set. Setting `force_company` as a determinant will make sure that the company on the environment is taken in account. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Relative time labels such as “2 minutes ago” are now formatted through the standard language-aware formatting system. This helps website visitor information display more consistently in the user’s selected language.
Original PR description
Babel is already taking the language into account while formating a time delta into a readable string like '2 minutes ago'. _format_time_ago was put in translate.py file to be able to use the _ translate class. But it can be placed in misc like other format function already using babel. This fixes the PR #34624 and is linked to Task ID : 2028059 Task ID: 2055847
Creating payments for suppliers or customers no longer triggers an error when selecting a partner. This restores a normal payment creation flow after outdated supplier/customer fields were removed from partner records.
Original PR description
The fields supplier/customer was removed from the partner, then, they
cannot be used in the default for the views.
Avoid the next traceback in the next case:
```
raise ValueError("Invalid field %r in leaf %r" % (left, str(leaf)))
ValueError: Invalid field 'supplier' in leaf "<osv.ExtendedLeaf: ('supplier', '=', True) on res_partner (ctx: )>"
```
1. Go to create a new payment for supplier
2. Try select the supplier

--
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis fixes a display issue where avatar images in many-to-many tag fields could use the wrong image field after a recent field rename. Users should now see the correct profile images in these tag widgets again.
Original PR description
The issue has occurred after rename image fields https://github.com/odoo/odoo/commit/58a2ffa26f1a3b0f9630ce16d11b758d18e20a21 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Meetings button on a CRM lead or opportunity now opens with a filter for meetings linked to that specific record. This makes the CRM experience more consistent and prevents users from initially seeing unrelated meetings, while still allowing them to remove the filter if needed.
Original PR description
Description of the issue/feature this PR addresses: Set a default search context for the lead/opportunity to show only scheduled meetings for this specific opportunity. This is to be consistent with similar functionality in partner screen (res_partner model). Current behavior before PR: Clicking a "Meetings" button shows meetings scheduled for all opportunities. Desired behavior after PR is merged: Clicking a "Meetings" button will show only a meetings for this specific opportunity (active object), with possibility to remove filter and show all meetings as it was before this PR -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Manufacturing app now shows a cleaner, properly structured byproduct form when opened from a Bill of Materials. This fixes display issues that could make byproduct details harder to review or edit, improving day-to-day usability for manufacturing users.
Original PR description
For some reasons (probably missing sheet & group), the form view for the byproduct wasn't displaying properly. This commit implement and force a cleaner view when you're coming from the form view of the Bill of Materials. TaskID: 2057347
The product screen stat button now shows the word "variants" again. This restores clearer wording for users when viewing product variant information, reducing confusion from an incomplete label.
Original PR description
The word "variants" was missing from the stat button. Task: 2046482 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
Fixes an error that could stop users from applying grouped payments to multiple invoices. This makes batch payment processing more reliable and prevents interruptions during invoice settlement.
Original PR description
[FIX] account: 'account.move' object has no attribute 'partner_bank_id' = - Create several Invoices, and then pay them in batch, Use `Group Payment` option. <img width="1099" alt="Screen Shot…
[FIX] account: 'account.move' object has no attribute 'partner_bank_id'
=
- Create several Invoices, and then pay them in batch, Use `Group Payment` option.
<img width="1099" alt="Screen Shot 2019-08-21 at 3 43 40 AM" src="https://user-images.githubusercontent.com/7598010/63419492-8a24fa00-c3ca-11e9-8e31-b3a40e4f6a40.png">
- Apply payment.
````
Error:
Odoo Server Error
Traceback (most recent call last):
File "/.repo_requirements/odoo/odoo/http.py", line 631, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/.repo_requirements/odoo/odoo/http.py", line 325, in _handle_exception
raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
File "/.repo_requirements/odoo/odoo/tools/pycompat.py", line 14, in reraise
raise value
File "/.repo_requirements/odoo/odoo/http.py", line 676, in dispatch
result = self._call_function(**self.params)
File "/.repo_requirements/odoo/odoo/http.py", line 357, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/.repo_requirements/odoo/odoo/service/model.py", line 92, in wrapper
return f(dbname, *args, **kwargs)
File "/.repo_requirements/odoo/odoo/http.py", line 350, in checked_call
result = self.endpoint(*a, **kw)
File "/.repo_requirements/odoo/odoo/http.py", line 894, in __call__
return self.method(*args, **kw)
File "/.repo_requirements/odoo/odoo/http.py", line 522, in response_wrap
response = f(*args, **kw)
File "/home/odoo/odoo-master/addons/web/controllers/main.py", line 1110, in call_button
action = self._call_kw(model, method, args, kwargs)
File "/home/odoo/odoo-master/addons/web/controllers/main.py", line 1098, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/.repo_requirements/odoo/odoo/api.py", line 394, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "/.repo_requirements/odoo/odoo/api.py", line 381, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "/home/odoo/odoo-master/addons/account/models/account_payment.py", line 811, in create_payments
payments = Payment.create(self.get_payments_vals())
File "/home/odoo/odoo-master/addons/account/models/account_payment.py", line 795, in get_payments_vals
grouped[(inv.commercial_partner_id, inv.currency_id, inv.partner_bank_id, MAP_INVOICE_TYPE_PARTNER_TYPE[inv.type])] += inv
AttributeError: 'account.move' object has no attribute 'partner_bank_id'
```
--
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis fixes a minor issue in Product Lifecycle Management where checking previous bill of materials changes could fail in a default case introduced by the new ORM behavior. It helps keep engineering change order workflows reliable without changing user-facing functionality.
Original PR description
With the new ORM, we have to catch a default case when doing "for record in self" operations. TaskID: 2057445
Fixed an issue where reopening the IoT network scan window could make scan updates run twice, causing the progress bar to show incorrect values such as 200%. The scan window now cleans up properly when closed, so users see reliable progress each time they start a scan.
Original PR description
When opening the modal to scan the network, we added listeners to the window to receive events during the scanning process. These listeners were not removed when the modal was closed so reopening the modal used to create a second listener with the same function. All listeners were then executed twice, and the progress bar went up to 200%. We need to remove the listeners when the modal is closed. When calling removeEventListener, the reference of the function passed needs to be the same that was added in the first place. Since we use `.bind(this)`, we need to save this reference, otherwise it would change. TaskID: 2056922
This fixes an issue in the restaurant point of sale printer integration where shared behavior was being called incorrectly. It helps ensure Epson printer-related restaurant printing works more reliably without changing user workflows.
Original PR description
The model PosModel is extended, and super is calaled as if it was included, we have fixed it by calling the parent prototype correctly.
IoT Box setup now works again by having the box send available keyboard layouts to Odoo instead of Odoo trying to retrieve them directly. This matters because businesses can complete IoT Box configuration reliably, especially when setting up connected printer devices.
Original PR description
The setup of IoT Boxes failed since the merge of the task about barcode scanners: odoo/odoo#35084 We tried to get the list of available keyboard layouts from the IoT Box. The request was sent from the server, which cannot reach the Box because it's not located on the same server. We now perform this task the other way around. When a device of type printer is created on the Box, we send the list of available layouts to the server. TaskID: 1961025
This update prevents errors caused by recent backend optimization changes by ensuring calculated information is always filled in. It helps keep features in marketing automation, SEPA direct debit payments, and website helpdesk forms working reliably.
Original PR description
- With the new ORM optimizations, the computed field do not have a default value, meaning we have to set a value for all the recordset passed in self.
Several folder-related fields in Documents now show the correct label. This reduces confusion for users when viewing or managing document folders.
Original PR description
This commit fixes the label of several folder_id fields. Task: #2056999
Code cleanup and technical improvements
The SMS application will now be installed automatically again, making SMS features more visible and readily available to users. Organizations that do not want to use SMS can still disable it from General Settings.
Original PR description
Since the refactoring, SMS is no longer in auto install. This is a shame because we want to put forward the SMS features. In any case, the user can always disable SMS from the General Settings if it is too invasive. FP / AJU request. Task 2057705