276b2093dc5d1838fd4677d62e49f5c644357f22
RATIONALE
Channel model is a mail.thread enabled model behaving strangely with followers,
notifications and discuss. Its code should however be simplified to be more
self contained and avoid unwanted side effects on other models..
PURPOSE
Remove channel ability to follow records as it mainly adds noise without a lot
of added value. Simplify channel notification flow by using directly members
and not a delegation through a channel self-following trick. Remove followers
being channels and posting with added listeners being channels.
SPECIFICATIONS SUMMARY
Make subscription work using partners only. Remove channel ability to follow
records. Remove channel auto-follow. Simplify channel notification flow by
using directly members and not a delegation through a channel self-following
trick. Thread notification is simplified and channel specific behavior is now
implemented directly on ``mail.channel`` model.
Remove ``channel_id`` field from follower model. Only partner_id is kept.
Starting from now on followers are partners only.
Remove support of channels when posting a message. Messages now belong to
a single thread using standard ``model`` / ``res_id`` pair even for
``mail.channel`` records. Remove ``channel_ids`` support on ``message_post``
and from Message model. Channel content is now computed like all other
documents.
As a side quest, following updates are necessary
* remove ``message_channel_ids`` field from ``mail.thread``. Indeed there
will not be any follower being ``mail.channel`` anymore;
* remove ``channel_message_ids`` field from ``mail.channel`` as they now
use standard ``message_ids`` field;
* remove various ``channel_ids`` linked to followers (server actions, invite
wizard, ...);
* remove duplicated ``is_subscribed`` field on ``mail.channel``, duplicate of
``is_member``;
With this merge, following features are modified
* channels cannot follow records anymore;
* messages cannot belong to a business document AND channels at the
same time. A channel is now behaving like all other business documents;
* following a channel using partners to be notified of discussions. Only chat
or mailing lists notify their members;
Finally various code places are improved: renaming, more modular approach,
... See sub commits for more details. Each commit explains more in details
its change and purpose / specifications.
LINKS
Task ID-2070632 (main task)
Task ID-2419762 (followup task)
COM PR odoo/odoo#62859
ENT PR odoo/enterprise#15172
UPG PR odoo/upgrade#2005
Thanks to @seb-odoo for in-depth review.
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
…
…
Odoo
Odoo is a suite of web based open source business apps.
The main Odoo Apps include an Open Source CRM, Website Builder, eCommerce, Warehouse Management, Project Management, Billing & Accounting, Point of Sale, Human Resources, Marketing, Manufacturing, ...
Odoo Apps can be used as stand-alone applications, but they also integrate seamlessly so you get a full-featured Open Source ERP when you install several Apps.
Getting started with Odoo
For a standard installation please follow the Setup instructions from the documentation.
To learn the software, we recommend the Odoo eLearning, or Scale-up, the business game. Developers can start with the developer tutorials
Languages
Python
49.6%
JavaScript
47.8%
SCSS
2%
CSS
0.3%
HTML
0.2%