Daily updates from Odoo
Thursday, August 22, 2019
21 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.
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
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 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 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
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
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
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-prFixes 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-prIoT 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
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