diff options
| author | Thibault Delavallée <tde@odoo.com> | 2019-11-20 14:34:44 +0000 |
|---|---|---|
| committer | Thibault Delavallée <tde@odoo.com> | 2019-11-20 14:43:15 +0000 |
| commit | a8449773dc3b9e2472fa964f820d9a4b199c123a (patch) | |
| tree | 3f1ff8ead5880cb77dce1b17a15e4a3efbd3cc4e | |
| parent | 7a3217f81066ce3d4ea981a3fafb01442d8a6643 (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.py | 6 |
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: |
