From 673c926f581b44a669aab06e890728a2b2a92ec6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Theys?= Date: Fri, 28 Apr 2023 09:09:30 +0000 Subject: [PATCH] [REF] mail: move channel populate to discuss folder MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Part of task-3265211 closes odoo/odoo#120065 Signed-off-by: Alexandre Kühn (aku) --- addons/mail/populate/__init__.py | 5 +- addons/mail/populate/discuss/__init__.py | 5 ++ .../mail/populate/discuss/discuss_channel.py | 17 +++++++ .../{ => discuss}/discuss_channel_member.py | 13 ++--- addons/mail/populate/discuss/mail_message.py | 26 ++++++++++ addons/mail/populate/discuss_channel.py | 15 ------ addons/mail/populate/mail_message.py | 48 +++++++++---------- 7 files changed, 81 insertions(+), 48 deletions(-) create mode 100644 addons/mail/populate/discuss/__init__.py create mode 100644 addons/mail/populate/discuss/discuss_channel.py rename addons/mail/populate/{ => discuss}/discuss_channel_member.py (69%) create mode 100644 addons/mail/populate/discuss/mail_message.py delete mode 100644 addons/mail/populate/discuss_channel.py diff --git a/addons/mail/populate/__init__.py b/addons/mail/populate/__init__.py index 303afd1c762..33983f779b2 100644 --- a/addons/mail/populate/__init__.py +++ b/addons/mail/populate/__init__.py @@ -1,3 +1,4 @@ -from . import discuss_channel -from . import discuss_channel_member +# Part of Odoo. See LICENSE file for full copyright and licensing details. + from . import mail_message +from . import discuss diff --git a/addons/mail/populate/discuss/__init__.py b/addons/mail/populate/discuss/__init__.py new file mode 100644 index 00000000000..7de4d6d7a48 --- /dev/null +++ b/addons/mail/populate/discuss/__init__.py @@ -0,0 +1,5 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import discuss_channel +from . import discuss_channel_member +from . import mail_message diff --git a/addons/mail/populate/discuss/discuss_channel.py b/addons/mail/populate/discuss/discuss_channel.py new file mode 100644 index 00000000000..2017c8d6ac7 --- /dev/null +++ b/addons/mail/populate/discuss/discuss_channel.py @@ -0,0 +1,17 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import models +from odoo.tools import populate + + +class Channel(models.Model): + _inherit = "discuss.channel" + _populate_dependencies = ["res.partner"] + _populate_sizes = {"small": 10, "medium": 100, "large": 500} + + def _populate_factories(self): + return [ + ("name", populate.constant("channel_{counter}")), + ("channel_type", populate.randomize(["channel", "group"])), + ("description", populate.constant("channel_{counter}_description")), + ] diff --git a/addons/mail/populate/discuss_channel_member.py b/addons/mail/populate/discuss/discuss_channel_member.py similarity index 69% rename from addons/mail/populate/discuss_channel_member.py rename to addons/mail/populate/discuss/discuss_channel_member.py index b35b3da644e..817ef2faa50 100644 --- a/addons/mail/populate/discuss_channel_member.py +++ b/addons/mail/populate/discuss/discuss_channel_member.py @@ -1,11 +1,13 @@ -# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + from odoo import models from odoo.tools import populate + class ChannelMember(models.Model): _inherit = "discuss.channel.member" _populate_dependencies = ["res.partner", "discuss.channel"] - _populate_sizes = {'small': 10, 'medium': 100, 'large': 1000} + _populate_sizes = {"small": 10, "medium": 100, "large": 1000} def _populate_factories(self): partner_ids = self.env.registry.populated_models["res.partner"] @@ -18,8 +20,7 @@ class ChannelMember(models.Model): def _populate(self, size): channel_ids = self.env.registry.populated_models["discuss.channel"] for channel_id in channel_ids: - self.env['discuss.channel.member'].create({ - 'partner_id': self.env.ref('base.user_admin').partner_id.id, - 'channel_id': channel_id - }) + self.env["discuss.channel.member"].create( + {"partner_id": self.env.ref("base.user_admin").partner_id.id, "channel_id": channel_id} + ) return super()._populate(size) diff --git a/addons/mail/populate/discuss/mail_message.py b/addons/mail/populate/discuss/mail_message.py new file mode 100644 index 00000000000..1277b3226c6 --- /dev/null +++ b/addons/mail/populate/discuss/mail_message.py @@ -0,0 +1,26 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import models +from odoo.addons.mail.populate.mail_message import Message as MailMessage +from odoo.tools import populate + + +class Message(models.Model): + _inherit = "mail.message" + _populate_dependencies = ["discuss.channel", "discuss.channel.member"] + MailMessage._populate_dependencies + + def _populate_factories(self): + channel_ids = self.env.registry.populated_models["discuss.channel"] + + def get_author_id(values, counter, random): + channel = self.env[values["model"]].browse(values["res_id"]) + channel_member_ids = [channel["id"] for channel in channel.channel_member_ids.read(["id"])] + return random.choice(channel_member_ids) + + return [ + ("body", populate.constant("message_body_{counter}")), + ("message_type", populate.constant("comment")), + ("model", populate.constant("discuss.channel")), + ("res_id", populate.randomize(channel_ids)), + ("author_id", populate.compute(get_author_id)), + ] diff --git a/addons/mail/populate/discuss_channel.py b/addons/mail/populate/discuss_channel.py deleted file mode 100644 index 9891161a32e..00000000000 --- a/addons/mail/populate/discuss_channel.py +++ /dev/null @@ -1,15 +0,0 @@ -# -*- coding: utf-8 -*- -from odoo import models -from odoo.tools import populate - -class Channel(models.Model): - _inherit = 'discuss.channel' - _populate_dependencies = ["res.partner"] - _populate_sizes = {'small': 10, 'medium': 100, 'large': 500} - - def _populate_factories(self): - return [ - ('name', populate.constant('channel_{counter}')), - ('channel_type', populate.randomize(['channel', 'group'])), - ('description', populate.constant('channel_{counter}_description')), - ] diff --git a/addons/mail/populate/mail_message.py b/addons/mail/populate/mail_message.py index 620a4e56297..c4cc712e3ab 100644 --- a/addons/mail/populate/mail_message.py +++ b/addons/mail/populate/mail_message.py @@ -1,39 +1,37 @@ -# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + from odoo import models from odoo.tools import populate + class Message(models.Model): - _inherit = 'mail.message' - _populate_dependencies = ['discuss.channel', 'discuss.channel.member', 'res.partner'] - _populate_sizes = {'small': 1000, 'medium': 10000, 'large': 500000} + _inherit = "mail.message" + _populate_dependencies = ["res.partner"] + _populate_sizes = {"small": 1000, "medium": 10000, "large": 500000} def _populate_factories(self): - channel_ids = self.env.registry.populated_models['discuss.channel'] - - def get_author_id(values, counter, random): - channel = self.env[values['model']].browse(values['res_id']) - channel_member_ids = [channel['id'] for channel in channel.channel_member_ids.read(['id'])] - return random.choice(channel_member_ids) - + thread_ids = self.env.registry.populated_models["res.partner"] return [ - ('body', populate.constant('message_body_{counter}')), - ('message_type', populate.constant('comment')), - ('model', populate.constant('discuss.channel')), - ('res_id', populate.randomize(channel_ids)), - ('author_id', populate.compute(get_author_id)), + ("body", populate.constant("message_body_{counter}")), + ("message_type", populate.constant("comment")), + ("model", populate.constant("res.partner")), + ("res_id", populate.randomize(thread_ids)), + ("author_id", populate.randomize(thread_ids)), ] def _populate(self, size): - partner = self.env.ref('base.user_admin').partner_id + partner = self.env.ref("base.user_admin").partner_id # create 100 in the chatter of the res.partner admin messages = [] for counter in range(100): - messages.append({ - 'body': f'message_body_{counter}', - 'message_type': 'comment', - 'model': 'res.partner', - 'res_id': partner.id, - 'author_id': partner.id, - }) - self.env['mail.message'].create(messages) + messages.append( + { + "body": f"message_body_{counter}", + "message_type": "comment", + "model": "res.partner", + "res_id": partner.id, + "author_id": partner.id, + } + ) + self.env["mail.message"].create(messages) return super()._populate(size)