summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThibault Delavallée <tde@odoo.com>2019-11-20 14:34:44 +0000
committerThibault Delavallée <tde@odoo.com>2019-11-20 14:43:15 +0000
commita8449773dc3b9e2472fa964f820d9a4b199c123a (patch)
tree3f1ff8ead5880cb77dce1b17a15e4a3efbd3cc4e
parent7a3217f81066ce3d4ea981a3fafb01442d8a6643 (diff)
[FIX] website_slides: add explicit depends on non stored computed fields
Even if it works in current flows it is better to give some fields their right triggers (fields and uid). PR #36703
-rw-r--r--addons/website_slides/models/slide_channel.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/addons/website_slides/models/slide_channel.py b/addons/website_slides/models/slide_channel.py
index 6dae5bd94c5..0917d2b9629 100644
--- a/addons/website_slides/models/slide_channel.py
+++ b/addons/website_slides/models/slide_channel.py
@@ -152,7 +152,7 @@ class Channel(models.Model):
string='Members', help="All members of the channel.", context={'active_test': False}, copy=False, depends=['channel_partner_ids'])
members_count = fields.Integer('Attendees count', compute='_compute_members_count')
members_done_count = fields.Integer('Attendees Done Count', compute='_compute_members_done_count')
- is_member = fields.Boolean(string='Is Member', compute='_compute_is_member')
+ is_member = fields.Boolean(string='Is Member', compute='_compute_is_member', compute_sudo=False)
channel_partner_ids = fields.One2many('slide.channel.partner', 'channel_id', string='Members Information', groups='website.group_website_publisher', depends=['partner_ids'])
upload_group_ids = fields.Many2many(
'res.groups', 'rel_upload_groups', 'channel_id', 'group_id', string='Upload Groups',
@@ -193,6 +193,7 @@ class Channel(models.Model):
channel.members_done_count = data.get(channel.id, 0)
@api.depends('channel_partner_ids.partner_id')
+ @api.depends_context('uid')
@api.model
def _compute_is_member(self):
channel_partners = self.env['slide.channel.partner'].sudo().search([
@@ -279,6 +280,7 @@ class Channel(models.Model):
record.can_upload = self.env.user.has_group('website.group_website_publisher')
@api.depends('channel_type', 'user_id', 'can_upload')
+ @api.depends_context('uid')
def _compute_can_publish(self):
""" For channels of type 'training', only the responsible (see user_id field) can publish slides.
The 'sudo' user needs to be handled because he's the one used for uploads done on the front-end when the
@@ -303,6 +305,8 @@ class Channel(models.Model):
base_url = channel.get_base_url()
channel.website_url = '%s/slides/%s' % (base_url, slug(channel))
+ @api.depends('can_publish', 'is_member', 'karma_review', 'karma_slide_comment', 'karma_slide_vote')
+ @api.depends_context('uid')
def _compute_action_rights(self):
user_karma = self.env.user.karma
for channel in self: