diff --git a/addons/website_event/models/event_event.py b/addons/website_event/models/event_event.py index dd7fa17d63b..d901c8c92e4 100644 --- a/addons/website_event/models/event_event.py +++ b/addons/website_event/models/event_event.py @@ -97,7 +97,7 @@ class Event(models.Model): if event.menu_id and not event.website_menu: event.menu_id.unlink() elif event.website_menu and not event.menu_id: - root_menu = self.env['website.menu'].create({'name': event.name, 'website_id': event.website_id.id}) + root_menu = self.env['website.menu'].sudo().create({'name': event.name, 'website_id': event.website_id.id}) event.menu_id = root_menu for sequence, (name, url, xml_id) in enumerate(event._get_menu_entries()): event._create_menu(sequence, name, url, xml_id) @@ -105,9 +105,9 @@ class Event(models.Model): def _create_menu(self, sequence, name, url, xml_id): if not url: self.env['ir.ui.view'].search([('name', '=', name + ' ' + self.name)]).unlink() - newpath = self.env['website'].new_page(name + ' ' + self.name, template=xml_id, ispage=False)['url'] + newpath = self.env['website'].sudo().new_page(name + ' ' + self.name, template=xml_id, ispage=False)['url'] url = "/event/" + slug(self) + "/page/" + newpath[1:] - menu = self.env['website.menu'].create({ + menu = self.env['website.menu'].sudo().create({ 'name': name, 'url': url, 'parent_id': self.menu_id.id, diff --git a/addons/website_sale/tests/test_website_sale_visitor.py b/addons/website_sale/tests/test_website_sale_visitor.py index c18e7ae4843..7f24f33d618 100644 --- a/addons/website_sale/tests/test_website_sale_visitor.py +++ b/addons/website_sale/tests/test_website_sale_visitor.py @@ -14,11 +14,8 @@ class WebsiteSaleVisitorTests(TransactionCase): def test_create_visitor_on_tracked_product(self): self.WebsiteSaleController = WebsiteSale() - Visitor = self.env['website.visitor'] - Track = self.env['website.track'] - - self.assertEqual(len(Visitor.search([])), 0, "No visitor at the moment") - self.assertEqual(len(Track.search([])), 0, "No track at the moment") + existing_visitors = self.env['website.visitor'].search([]) + existing_tracks = self.env['website.track'].search([]) product = self.env['product.product'].create({ 'name': 'Storage Box', @@ -28,14 +25,18 @@ class WebsiteSaleVisitorTests(TransactionCase): with MockRequest(self.env, website=self.website): self.cookies = self.WebsiteSaleController.products_recently_viewed_update(product.id) - self.assertEqual(len(Visitor.search([])), 1, "A visitor should be created after visiting a tracked product") - self.assertEqual(len(Track.search([])), 1, "A track should be created after visiting a tracked product") + new_visitors = self.env['website.visitor'].search([('id', 'not in', existing_visitors.ids)]) + new_tracks = self.env['website.track'].search([('id', 'not in', existing_tracks.ids)]) + self.assertEqual(len(new_visitors), 1, "A visitor should be created after visiting a tracked product") + self.assertEqual(len(new_tracks), 1, "A track should be created after visiting a tracked product") with MockRequest(self.env, website=self.website, cookies=self.cookies): self.WebsiteSaleController.products_recently_viewed_update(product.id) - self.assertEqual(len(Visitor.search([])), 1, "No visitor should be created after visiting another tracked product") - self.assertEqual(len(Track.search([])), 1, "No track should be created after visiting the same tracked product before 30 min") + new_visitors = self.env['website.visitor'].search([('id', 'not in', existing_visitors.ids)]) + new_tracks = self.env['website.track'].search([('id', 'not in', existing_tracks.ids)]) + self.assertEqual(len(new_visitors), 1, "No visitor should be created after visiting another tracked product") + self.assertEqual(len(new_tracks), 1, "No track should be created after visiting the same tracked product before 30 min") product = self.env['product.product'].create({ 'name': 'Large Cabinet', @@ -46,5 +47,7 @@ class WebsiteSaleVisitorTests(TransactionCase): with MockRequest(self.env, website=self.website, cookies=self.cookies): self.WebsiteSaleController.products_recently_viewed_update(product.id) - self.assertEqual(len(Visitor.search([])), 1, "No visitor should be created after visiting another tracked product") - self.assertEqual(len(Track.search([])), 2, "A track should be created after visiting another tracked product") + new_visitors = self.env['website.visitor'].search([('id', 'not in', existing_visitors.ids)]) + new_tracks = self.env['website.track'].search([('id', 'not in', existing_tracks.ids)]) + self.assertEqual(len(new_visitors), 1, "No visitor should be created after visiting another tracked product") + self.assertEqual(len(new_tracks), 2, "A track should be created after visiting another tracked product")