From eb045af67600786f1f0e3cb2a2d6f50f5981158b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 22 Mar 2019 15:07:15 +0000 Subject: [PATCH] [FIX] website_slides: remove unnecessary sudo in computed field As we always update slide / partner relationship using sudo let us remove unnecessary sudo in the computed field. Tests are added to ensure it is effectively working. At least probably. Commit linked to task ID 1958810 and PR #32057 --- addons/website_slides/models/slide_slide.py | 4 ++-- .../website_slides/tests/test_statistics.py | 22 ++++++++++++++++++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/addons/website_slides/models/slide_slide.py b/addons/website_slides/models/slide_slide.py index c71d9acb441..ef72a717257 100644 --- a/addons/website_slides/models/slide_slide.py +++ b/addons/website_slides/models/slide_slide.py @@ -181,8 +181,8 @@ class Slide(models.Model): slide_data[slide_partner.slide_id.id]['dislikes'] += 1 if slide_partner.partner_id == self.env.user.partner_id: slide_data[slide_partner.slide_id.id]['user_vote'] = -1 - for slide_sudo in self.sudo(): - slide_sudo.update(slide_data[slide_sudo.id]) + for slide in self: + slide.update(slide_data[slide.id]) @api.depends('slide_partner_ids.slide_id') def _compute_slide_views(self): diff --git a/addons/website_slides/tests/test_statistics.py b/addons/website_slides/tests/test_statistics.py index 8068c073bf3..bd067ba8216 100644 --- a/addons/website_slides/tests/test_statistics.py +++ b/addons/website_slides/tests/test_statistics.py @@ -91,6 +91,27 @@ class TestStatistics(common.SlidesCase): with self.assertRaises(UserError): slides_emp.action_set_viewed() + def test_slide_user_statistics(self): + channel_publisher = self.channel.sudo(self.user_publisher) + channel_publisher._action_add_members(self.user_emp.partner_id) + + slide_emp = self.slide.sudo(self.user_emp) + self.assertEqual(slide_emp.likes, 0) + self.assertEqual(slide_emp.dislikes, 0) + self.assertEqual(slide_emp.user_vote, 0) + slide_emp.action_like() + self.assertEqual(slide_emp.likes, 1) + self.assertEqual(slide_emp.dislikes, 0) + self.assertEqual(slide_emp.user_vote, 1) + slide_emp.action_dislike() + self.assertEqual(slide_emp.likes, 0) + self.assertEqual(slide_emp.dislikes, 0) + self.assertEqual(slide_emp.user_vote, 0) + slide_emp.action_dislike() + self.assertEqual(slide_emp.likes, 0) + self.assertEqual(slide_emp.dislikes, 1) + self.assertEqual(slide_emp.user_vote, -1) + def test_slide_statistics(self): channel_publisher = self.channel.sudo(self.user_publisher) channel_publisher._action_add_members(self.user_emp.partner_id) @@ -106,7 +127,6 @@ class TestStatistics(common.SlidesCase): slide_emp = self.slide.sudo(self.user_emp) slide_emp.action_set_viewed() - # slide_emp.invalidate_cache() self.assertEqual(slide_emp.slide_views, 1) self.assertEqual(slide_emp.public_views, 4)