Mercurial > libervia-web
comparison 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 |
comparison
equal
deleted
inserted
replaced
1375:e943b0c8eec5 | 1376:1b94a5ab155f |
---|---|
1594 return request.data | 1594 return request.data |
1595 except AttributeError: | 1595 except AttributeError: |
1596 request.data = {} | 1596 request.data = {} |
1597 return request.data | 1597 return request.data |
1598 | 1598 |
1599 def handleSearch(self, request, extra): | |
1600 """Manage Full-Text Search | |
1601 | |
1602 Check if "search" query argument is present, and add MAM filter for it if | |
1603 necessary. | |
1604 If used, the "search" variable will also be available in template data, thus | |
1605 frontend can display some information about it. | |
1606 """ | |
1607 search = self.getPostedData(request, 'search', raise_on_missing=False) | |
1608 if search is not None: | |
1609 search = search.strip() | |
1610 if search: | |
1611 try: | |
1612 extra[f'mam_filter_{self.host.ns_map["fulltextmam"]}'] = search | |
1613 except KeyError: | |
1614 log.warning(_("Full-text search is not available")) | |
1615 else: | |
1616 request.template_data['search'] = search | |
1617 | |
1599 def _checkAccess(self, request): | 1618 def _checkAccess(self, request): |
1600 """Check access according to self.access | 1619 """Check access according to self.access |
1601 | 1620 |
1602 if access is not granted, show a HTTP_FORBIDDEN pageError and stop request, | 1621 if access is not granted, show a HTTP_FORBIDDEN pageError and stop request, |
1603 else return data (so it can be inserted in deferred chain | 1622 else return data (so it can be inserted in deferred chain |