[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
This commit is contained in:
Thibault Delavallée
2019-03-25 12:18:28 +00:00
parent ed4a457f12
commit eb045af676
2 changed files with 23 additions and 3 deletions
+2 -2
View File
@@ -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):
+21 -1
View File
@@ -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)