diff --git a/addons/website_sale_slides/models/slide_channel.py b/addons/website_sale_slides/models/slide_channel.py index fd6ea6d1f37..37d158e0898 100644 --- a/addons/website_sale_slides/models/slide_channel.py +++ b/addons/website_sale_slides/models/slide_channel.py @@ -33,12 +33,11 @@ class Channel(models.Model): for channel in self: channel.product_sale_revenues = rg_data.get(channel.product_id.id, 0) - @api.model - def create(self, vals): - channel = super(Channel, self).create(vals) - if channel.enroll == 'payment': - channel._synchronize_product_publish() - return channel + @api.model_create_multi + def create(self, vals_list): + channels = super(Channel, self).create(vals_list) + channels.filtered(lambda channel: channel.enroll == 'payment')._synchronize_product_publish() + return channels def write(self, vals): res = super(Channel, self).write(vals) @@ -47,6 +46,8 @@ class Channel(models.Model): return res def _synchronize_product_publish(self): + if not self: + return self.filtered(lambda channel: channel.is_published and not channel.product_id.is_published).sudo().product_id.write({'is_published': True}) self.filtered(lambda channel: not channel.is_published and channel.product_id.is_published).sudo().product_id.write({'is_published': False}) diff --git a/addons/website_slides/models/res_users.py b/addons/website_slides/models/res_users.py index 47f6baa980e..3b72ba7ef0e 100644 --- a/addons/website_slides/models/res_users.py +++ b/addons/website_slides/models/res_users.py @@ -7,12 +7,15 @@ from odoo import api, models class Users(models.Model): _inherit = 'res.users' - @api.model - def create(self, values): + @api.model_create_multi + def create(self, vals_list): """ Trigger automatic subscription based on user groups """ - user = super(Users, self).create(values) - self.env['slide.channel'].sudo().search([('enroll_group_ids', 'in', user.groups_id.ids)])._action_add_members(user.partner_id) - return user + users = super(Users, self).create(vals_list) + for user in users: + self.env['slide.channel'].sudo().search([ + ('enroll_group_ids', 'in', user.groups_id.ids) + ])._action_add_members(user.partner_id) + return users def write(self, vals): """ Trigger automatic subscription based on updated user groups """ diff --git a/addons/website_slides/models/slide_slide.py b/addons/website_slides/models/slide_slide.py index 00bd90ea7bc..4a714e07052 100644 --- a/addons/website_slides/models/slide_slide.py +++ b/addons/website_slides/models/slide_slide.py @@ -35,8 +35,9 @@ class SlidePartnerRelation(models.Model): completed = fields.Boolean('Completed') quiz_attempts_count = fields.Integer('Quiz attempts count', default=0) - def create(self, values): - res = super(SlidePartnerRelation, self).create(values) + @api.model_create_multi + def create(self, vals_list): + res = super().create(vals_list) completed = res.filtered('completed') if completed: completed._set_completed_callback() diff --git a/addons/website_slides_forum/models/slide_channel.py b/addons/website_slides_forum/models/slide_channel.py index c45dc14c0d8..e59272e7a52 100644 --- a/addons/website_slides_forum/models/slide_channel.py +++ b/addons/website_slides_forum/models/slide_channel.py @@ -25,12 +25,11 @@ class Channel(models.Model): return action - @api.model - def create(self, vals): - channel = super(Channel, self.with_context(mail_create_nosubscribe=True)).create(vals) - if channel.forum_id: - channel.forum_id.privacy = False - return channel + @api.model_create_multi + def create(self, vals_list): + channels = super(Channel, self.with_context(mail_create_nosubscribe=True)).create(vals_list) + channels.forum_id.privacy = False + return channels def write(self, vals): old_forum = self.forum_id