From eb132590dbba20120807172d09ddbdc00fcc3ce9 Mon Sep 17 00:00:00 2001 From: Mahamadasif Ansari Date: Tue, 7 Feb 2023 07:19:23 +0000 Subject: [PATCH] [IMP] website{_event}: show event location in search bar Currently, if a user searches for an event based on a location name, the location name is not displayed. This commit shows the event location name when users search for the event. Also add the "_getFieldsNames" method to easily override this method to add a field name from another model. task-2791031 Part-of: odoo/odoo#89796 --- .../static/src/snippets/s_searchbar/000.js | 19 +++++++++++-------- addons/website_event/models/event_event.py | 4 +++- .../static/src/snippets/s_searchbar/000.js | 13 +++++++++++++ .../static/src/snippets/s_searchbar/000.xml | 14 ++++++++++++++ .../website_event/views/snippets/snippets.xml | 12 ++++++++++++ 5 files changed, 53 insertions(+), 9 deletions(-) create mode 100644 addons/website_event/static/src/snippets/s_searchbar/000.js create mode 100644 addons/website_event/static/src/snippets/s_searchbar/000.xml diff --git a/addons/website/static/src/snippets/s_searchbar/000.js b/addons/website/static/src/snippets/s_searchbar/000.js index 41c78dadb2c..824ec0c1ad1 100644 --- a/addons/website/static/src/snippets/s_searchbar/000.js +++ b/addons/website/static/src/snippets/s_searchbar/000.js @@ -120,14 +120,7 @@ publicWidget.registry.searchBar = publicWidget.Widget.extend({ 'options': this.options, }, }); - const fieldNames = [ - 'name', - 'description', - 'extra_link', - 'detail', - 'detail_strike', - 'detail_extra', - ]; + const fieldNames = this._getFieldsNames(); res.results.forEach(record => { for (const fieldName of fieldNames) { if (record[fieldName]) { @@ -205,6 +198,16 @@ publicWidget.registry.searchBar = publicWidget.Widget.extend({ $prevMenu.remove(); } }, + _getFieldsNames() { + return [ + 'description', + 'detail', + 'detail_extra', + 'detail_strike', + 'extra_link', + 'name', + ]; + }, //-------------------------------------------------------------------------- // Handlers diff --git a/addons/website_event/models/event_event.py b/addons/website_event/models/event_event.py index eea6d87d8f0..3366534ef24 100644 --- a/addons/website_event/models/event_event.py +++ b/addons/website_event/models/event_event.py @@ -63,6 +63,7 @@ class Event(models.Model): location_menu_ids = fields.One2many( "website.event.menu", "event_id", string="Location Menus", domain=[("menu_type", "=", "location_menu")]) + address_name = fields.Char(related='address_id.name') register_menu = fields.Boolean( "Register Menu", compute="_compute_website_menu_data", readonly=False, store=True) @@ -516,10 +517,11 @@ class Event(models.Model): current_date = date_details[1] search_fields = ['name'] - fetch_fields = ['name', 'website_url'] + fetch_fields = ['name', 'website_url', 'address_name'] mapping = { 'name': {'name': 'name', 'type': 'text', 'match': True}, 'website_url': {'name': 'website_url', 'type': 'text', 'truncate': False}, + 'address_name': {'name': 'address_name', 'type': 'text', 'match': True}, } if with_description: search_fields.append('subtitle') diff --git a/addons/website_event/static/src/snippets/s_searchbar/000.js b/addons/website_event/static/src/snippets/s_searchbar/000.js new file mode 100644 index 00000000000..6522941c479 --- /dev/null +++ b/addons/website_event/static/src/snippets/s_searchbar/000.js @@ -0,0 +1,13 @@ +/** @odoo-module **/ + +import publicWidget from 'web.public.widget'; + +publicWidget.registry.searchBar.include({ + /** + * + * @override + */ + _getFieldsNames() { + return [...this._super(), 'address_name']; + } +}); diff --git a/addons/website_event/static/src/snippets/s_searchbar/000.xml b/addons/website_event/static/src/snippets/s_searchbar/000.xml new file mode 100644 index 00000000000..b6110744d3f --- /dev/null +++ b/addons/website_event/static/src/snippets/s_searchbar/000.xml @@ -0,0 +1,14 @@ + + + + + Searchbar 000 JS + web.assets_frontend + website_event/static/src/snippets/s_searchbar/000.js + + + + Searchbar 000 XML + web.assets_frontend + website_event/static/src/snippets/s_searchbar/000.xml + +