diff --git a/addons/website/i18n/website.pot b/addons/website/i18n/website.pot index 1e7e3223b5b..fc7062b80f3 100644 --- a/addons/website/i18n/website.pot +++ b/addons/website/i18n/website.pot @@ -8911,6 +8911,12 @@ msgstr "" msgid "This page" msgstr "" +#. module: website +#: code:addons/website/models/website_visitor.py:0 +#, python-format +msgid "This operator is not supported" +msgstr "" + #. module: website #: model_terms:ir.ui.view,arch_db:website.page_404 msgid "" diff --git a/addons/website/models/website_visitor.py b/addons/website/models/website_visitor.py index b540d0e3500..02134ee7f9f 100644 --- a/addons/website/models/website_visitor.py +++ b/addons/website/models/website_visitor.py @@ -50,7 +50,7 @@ class WebsiteVisitor(models.Model): visit_count = fields.Integer('# Visits', default=1, readonly=True, help="A new visit is considered if last connection was more than 8 hours ago.") website_track_ids = fields.One2many('website.track', 'visitor_id', string='Visited Pages History', readonly=True) visitor_page_count = fields.Integer('Page Views', compute="_compute_page_statistics", help="Total number of visits on tracked pages") - page_ids = fields.Many2many('website.page', string="Visited Pages", compute="_compute_page_statistics", groups="website.group_website_designer") + page_ids = fields.Many2many('website.page', string="Visited Pages", compute="_compute_page_statistics", groups="website.group_website_designer", search="_search_page_ids") page_count = fields.Integer('# Visited Pages', compute="_compute_page_statistics", help="Total number of tracked page visited") last_visited_page_id = fields.Many2one('website.page', string="Last Visited Page", compute="_compute_last_visited_page_id") @@ -111,6 +111,11 @@ class WebsiteVisitor(models.Model): visitor.visitor_page_count = visitor_info['visitor_page_count'] visitor.page_count = visitor_info['page_count'] + def _search_page_ids(self, operator, value): + if operator not in ('like', 'ilike', 'not like', 'not ilike', '=like', '=ilike', '=', '!='): + raise ValueError(_('This operator is not supported')) + return [('website_track_ids.page_id.name', operator, value)] + @api.depends('website_track_ids.page_id') def _compute_last_visited_page_id(self): results = self.env['website.track']._read_group([('visitor_id', 'in', self.ids)],