summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThibault Delavallée <tde@odoo.com>2019-03-22 15:07:15 +0000
committerThibault Delavallée <tde@odoo.com>2019-03-25 12:18:28 +0000
commiteb045af67600786f1f0e3cb2a2d6f50f5981158b (patch)
treedec172192312ea4b037464091999d9808277286e
parented4a457f1214dca63b3883d745f2b04bf1aa1c85 (diff)
[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
-rw-r--r--addons/website_slides/models/slide_slide.py4
-rw-r--r--addons/website_slides/tests/test_statistics.py22
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)