Friday, September 19, 2025
6 changes · 19.0
Enhancements to existing features
The live chat conversation screen has been streamlined to show visitor identity and status more clearly in the header, while moving country and language details into the visitor information panel. This makes support conversations easier to scan and reduces visual clutter for agents.
Original PR description
* = im_livechat, website_livechat Purpose of this commit: - updated discuss header to show profile image and ImStatus for visitor - moved the country flag and the language to the visitor info side panel - removed visitor profile image from visitor banner - removed 'fa-circle-o' from disconnected message task-4607567 **Before**: <img width="1279" height="1039" alt="Screenshot 2025-09-17 at 16 21 03" src="https://github.com/user-attachments/assets/9e931629-0297-4817-9252-40b405da8644" /> **After**: <img width="1284" height="1043" alt="Screenshot 2025-09-17 at 16 21 34" src="https://github.com/user-attachments/assets/52fbdb33-4086-471b-a6b3-60cd40d72644" />
Messages that start or link to a separate thread now show a preview directly underneath, making the connection visible to users. Users can click the preview to open the linked thread, helping them follow related conversations more easily.
Original PR description
Before this commit, when a thread was created from a message, the message lack visual to tell a thread is linked to it. This commit adds a preview of thread at the bottom of message when this is linked to a thread. Click on preview opens the linked thread. Task-4656448 <img width="862" height="366" alt="Screenshot 2025-09-18 at 22 35 34" src="https://github.com/user-attachments/assets/2bcabcea-d7c5-4916-afc7-a2e56ea32a29" />
Resolved issues and error corrections
This update avoids unnecessary repeated calculations in online shop and wishlist pages, helping pages load more efficiently. It also prevents archived products from appearing in customer wishlists, keeping the shopping experience cleaner and more accurate.
Original PR description
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The spreadsheet component was updated to its latest version with fixes for formula error messages and handling of empty data positions. This improves reliability for users working with spreadsheet calculations and helps prevent confusing results or messages.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/84f3b74e3 [REL] 19.0.3 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0)…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/84f3b74e3 [REL] 19.0.3 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/ea0afdfb5 [FIX] functions: wrong error message for `SORT` [Task: 5085267](https://www.odoo.com/odoo/2328/tasks/5085267) https://github.com/odoo/o-spreadsheet/commit/760bc3786 [FIX] helpers: preserve sparse(empty) elements in removeIndexesFromArray [Task: 4977932](https://www.odoo.com/odoo/2328/tasks/4977932) https://github.com/odoo/o-spreadsheet/commit/a0cab23f5 [FIX] package: add swc binaries to optional dependencies [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) Co-authored-by: Anthony Hendrickx (anhe) <anhe@odoo.com> Co-authored-by: Alexis Lacroix (laa) <laa@odoo.com> Co-authored-by: Lucas Lefèvre (lul) <lul@odoo.com> Co-authored-by: Dhrutik Patel (dhrp) <dhrp@odoo.com> Co-authored-by: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Ronak Mukeshbhai Bharadiya <rmbh@odoo.com> Co-authored-by: Florian Damhaut (flda) <flda@odoo.com> Co-authored-by: Rémi Rahir (rar) <rar@odoo.com> Co-authored-by: Pierre Rousseau (pro) <pro@odoo.com> Co-authored-by: Vincent Schippefilt (vsc) <vsc@odoo.com>
Fixes an issue that prevented point-of-sale orders from being completed when Ecuadorian electronic invoicing was enabled. The payment validation process now uses the correct order reference, restoring normal checkout operations.
Original PR description
After the commit https://github.com/odoo/enterprise/commit/343efe41bc74e612c867d5109c196a11680866db, the `currentOrder` reference in the payment validation flow was replaced with `order`. However, this change was not reflected in `l10n_ec_edi_pos`, which still relied on `currentOrder`. As a result, attempting to validate a POS order raised an error, making it impossible to complete the order. This commit updates the logic to use `order` instead of `currentOrder`, aligning with the upstream changes and restoring proper functionality. opw-5099083
This fix changes how Odoo applies default supplier taxes to large product catalogs, avoiding a memory crash during accounting setup or upgrades. Businesses with many products can complete tax setup more reliably without interruptions.
Original PR description
As I mentioned in the query below, multiple grouped product.template records with the same supplier_taxes_id are being modified with the default purchase tax (account_purchase_tax_id),which leads to…
As I mentioned in the query below, multiple grouped product.template records with the same supplier_taxes_id are being modified with the default purchase tax (account_purchase_tax_id),which leads to a memory error. To prevent this, I have used an INSERT query.
```sql
SELECT tax_id, COUNT(*) AS product_count
FROM product_supplier_taxes_rel
GROUP BY tax_id
ORDER BY product_count DESC;
tax_id | product_count
--------+---------------
15 | 1262126
156 | 343332
114 | 36363
47 | 10132
23 | 202
546 | 11
474 | 5
782 | 2
666 | 2
1188 | 2
1318 | 1
3 | 1
(12 rows)
```
- Traceback
```python
Traceback (most recent call last):
File "/home/odoo/src/odoo/17.0/odoo/service/server.py", line 1314, in preload_registries
registry = Registry.new(dbname, update_module=update_module)
File "<decorator-gen-16>", line 2, in new
File "/home/odoo/src/odoo/17.0/odoo/tools/func.py", line 87, in locked
return func(inst, *args, **kwargs)
File "/home/odoo/src/odoo/17.0/odoo/modules/registry.py", line 110, in new
odoo.modules.load_modules(registry, force_demo, status, update_module)
File "/home/odoo/src/odoo/17.0/odoo/modules/loading.py", line 515, in load_modules
migrations.migrate_module(package, 'end')
File "/home/odoo/src/odoo/17.0/odoo/modules/migration.py", line 240, in migrate_module
migrate(self.cr, installed_version)
File "/home/odoo/src/odoo/17.0/addons/l10n_ch/migrations/11.3/end-migrate.py", line 8, in migrate
env["account.chart.template"].try_loading("ch", company)
File "/home/odoo/src/odoo/17.0/addons/account/models/chart_template.py", line 155, in try_loading
return self._load(template_code, company, install_demo)
File "/home/odoo/src/odoo/17.0/addons/point_of_sale/models/chart_template.py", line 22, in _load
result = super()._load(template_code, company, install_demo)
File "/home/odoo/src/odoo/17.0/addons/account/models/chart_template.py", line 214, in _load
self._post_load_data(template_code, company, template_data)
File "/home/odoo/src/enterprise/17.0/account_reports/models/chart_template.py", line 10, in _post_load_data
super()._post_load_data(template_code, company, template_data)
File "/home/odoo/src/odoo/17.0/addons/stock_account/models/account_chart_template.py", line 12, in _post_load_data
super()._post_load_data(template_code, company, template_data)
File "/home/odoo/src/odoo/17.0/addons/account/models/chart_template.py", line 669, in _post_load_data
sudoed_products_purchase._force_default_purchase_tax(company)
File "/home/odoo/src/odoo/17.0/addons/account/models/product.py", line 130, in _force_default_purchase_tax
product_grouped_by_tax.supplier_taxes_id += default_supplier_taxes
File "/home/odoo/src/odoo/17.0/odoo/fields.py", line 1322, in __set__
records.write({self.name: write_value})
File "/home/odoo/src/odoo/17.0/addons/website_sale/models/product_template.py", line 176, in write
return super().write(vals)
File "/home/odoo/src/odoo/17.0/addons/rating/models/rating_mixin.py", line 100, in write
result = super(RatingMixin, self).write(values)
File "/home/odoo/src/odoo/17.0/addons/stock_account/models/product.py", line 55, in write
res = super(ProductTemplate, self).write(vals)
File "/home/odoo/src/odoo/17.0/addons/mrp/models/product.py", line 74, in write
return super().write(values)
File "/home/odoo/src/odoo/17.0/addons/stock/models/product.py", line 921, in write
return super(ProductTemplate, self).write(vals)
File "/home/odoo/src/odoo/17.0/addons/product/models/product_template.py", line 502, in write
res = super(ProductTemplate, self).write(vals)
File "/home/odoo/src/odoo/17.0/addons/mail/models/mail_thread.py", line 311, in write
return super(MailThread, self).write(values)
File "/home/odoo/src/odoo/17.0/addons/mail/models/mail_activity_mixin.py", line 250, in write
return super(MailActivityMixin, self).write(vals)
File "/home/odoo/src/odoo/17.0/addons/website/models/mixins.py", line 218, in write
return super(WebsitePublishedMixin, self).write(values)
File "/home/odoo/src/odoo/17.0/odoo/models.py", line 4444, in write
field.write(self, value)
File "/home/odoo/src/odoo/17.0/odoo/fields.py", line 4337, in write
self.write_batch([(records, value)])
File "/home/odoo/src/odoo/17.0/odoo/fields.py", line 4358, in write_batch
self.write_real(records_commands_list, create)
File "/home/odoo/src/odoo/17.0/odoo/fields.py", line 4957, in write_real
y_to_xs[y].add(x)
File "/home/odoo/src/odoo/17.0/odoo/tools/misc.py", line 1136, in add
self._map[elem] = None
MemoryError
```
opw - 4544050
upg - 2459515
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
Forward-Port-Of: odoo/odoo#227532
Forward-Port-Of: odoo/odoo#204931