Friday, January 2, 2026
2 changes · master
New functionality added to Odoo
This update adds a new 'Inbox' tab to the messaging menu, providing a central location to view all notifications – both read and unread – if the user prefers to handle them within Odoo. The tab uses lazy loading to efficiently display notifications as the user scrolls, improving performance and usability. This simplifies notification management for users.
Original PR description
**Current behavior before PR:** The messaging menu does not include a tab to view notifications that have already been read. Once read, these notifications disappear from the interface and are only accessible through the Discuss App. **Desired behavior after PR is merged:** A new Inbox tab is added to the messaging menu. This tab displays both unread and read notifications, provided the user’s notification preference is set to “Handle in Odoo.” The Inbox tab uses lazy loading to fetch messages in batches as the user scrolls. task-[4458377](https://www.odoo.com/odoo/project/1519/tasks/4458377) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update adds a dependency on the 'certificate' module for the `l10n_es_edi_verifactu` module. This change was necessary due to a restructuring of the underlying data model within Odoo. While you can still uninstall the 'certificate' module, doing so will cause issues with the `l10n_es_edi_verifactu` module.
Original PR description
Starting from version `18.0`, the module `l10n_es_edi_verifactu` is dependent to `certificate` because of moving the model `l10n_es_edi_verifactu.certificate` into standard model…
Starting from version `18.0`, the module `l10n_es_edi_verifactu` is dependent to `certificate` because of moving the model `l10n_es_edi_verifactu.certificate` into standard model `certificate.certificate`[^1].
On the other side when we install the module `l10n_es_edi_verifactu` then the `certificate` is beiung installed because:
1. (dependency)[^2] --> l10n_es
2. (auto install)[^3] --> l10n_es_edi_facturae
3. (dependency)[^4] --> certificate
But we can uninstall the `certificate` while having `l10n_es_edi_verifactu`. It will make the db unusable with this traceback if we uninstall `certificate`:
```
Traceback (most recent call last):
File "/home/odoo/.local/lib/python3.10/site-packages/werkzeug/serving.py", line 319, in run_wsgi
execute(self.server.app)
File "/home/odoo/.local/lib/python3.10/site-packages/werkzeug/serving.py", line 316, in execute
application_iter.close() # type: ignore
File "/home/odoo/.local/lib/python3.10/site-packages/werkzeug/wsgi.py", line 466, in close
callback()
File "/home/odoo/.local/lib/python3.10/site-packages/werkzeug/wrappers/response.py", line 439, in close
func()
File "/home/odoo/src/odoo/18.0/addons/bus/websocket.py", line 916, in <lambda>
response.call_on_close(lambda: cls._serve_forever(
File "/home/odoo/src/odoo/18.0/addons/bus/websocket.py", line 1030, in _serve_forever
for message in websocket.get_messages():
File "/home/odoo/src/odoo/18.0/addons/bus/websocket.py", line 322, in get_messages
self._handle_transport_error(exc)
File "/home/odoo/src/odoo/18.0/addons/bus/websocket.py", line 625, in _handle_transport_error
registry = Registry(self._session.db)
File "/home/odoo/src/odoo/18.0/odoo/modules/registry.py", line 108, in __new__
return cls.new(db_name)
File "<decorator-gen-13>", line 2, in new
File "/home/odoo/src/odoo/18.0/odoo/tools/func.py", line 97, in locked
return func(inst, *args, **kwargs)
File "/home/odoo/src/odoo/18.0/odoo/modules/registry.py", line 129, in new
odoo.modules.load_modules(registry, force_demo, status, update_module)
File "/home/odoo/src/odoo/18.0/odoo/modules/loading.py", line 485, in load_modules
processed_modules += load_marked_modules(env, graph,
File "/home/odoo/src/odoo/18.0/odoo/modules/loading.py", line 365, in load_marked_modules
loaded, processed = load_module_graph(
File "/home/odoo/src/odoo/18.0/odoo/modules/loading.py", line 195, in load_module_graph
model_names = registry.load(env.cr, package)
File "/home/odoo/src/odoo/18.0/odoo/modules/registry.py", line 302, in load
model = cls._build_model(self, cr)
File "/home/odoo/src/odoo/18.0/odoo/models.py", line 736, in _build_model
raise TypeError("Model %r does not exist in registry." % name)
TypeError: Model 'certificate.certificate' does not exist in registry. - - -
```
[^1]: https://github.com/odoo/odoo/pull/219953
[^2]: https://github.com/odoo/odoo/blob/b991f766e28dc71f8627fdfbf2d59589d9707d3a/addons/l10n_es_edi_verifactu/__manifest__.py#L9
[^3]: https://github.com/odoo/odoo/blob/b991f766e28dc71f8627fdfbf2d59589d9707d3a/addons/l10n_es_edi_facturae/__manifest__.py#L41
[^4]: https://github.com/odoo/odoo/blob/b991f766e28dc71f8627fdfbf2d59589d9707d3a/addons/l10n_es_edi_facturae/__manifest__.py#L16
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