Mercurial > libervia-web
diff libervia/server/pages.py @ 1376:1b94a5ab155f
pages (blog/view): Full-Text Search is used when `search` query argument is present
the new `LiberviaPage.handleSearch` method implements FTS in PubSub based features.
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 11 Dec 2020 17:35:06 +0100 |
parents | e943b0c8eec5 |
children | e3e303a30a74 |
line wrap: on
line diff
--- a/libervia/server/pages.py Fri Dec 11 17:35:06 2020 +0100 +++ b/libervia/server/pages.py Fri Dec 11 17:35:06 2020 +0100 @@ -1596,6 +1596,25 @@ request.data = {} return request.data + def handleSearch(self, request, extra): + """Manage Full-Text Search + + Check if "search" query argument is present, and add MAM filter for it if + necessary. + If used, the "search" variable will also be available in template data, thus + frontend can display some information about it. + """ + search = self.getPostedData(request, 'search', raise_on_missing=False) + if search is not None: + search = search.strip() + if search: + try: + extra[f'mam_filter_{self.host.ns_map["fulltextmam"]}'] = search + except KeyError: + log.warning(_("Full-text search is not available")) + else: + request.template_data['search'] = search + def _checkAccess(self, request): """Check access according to self.access