1
0
Fork 0
mirror of synced 2024-06-28 11:00:35 +12:00
ArchiveBox/archivebox/core/mixins.py
2020-12-06 01:12:45 +02:00

21 lines
718 B
Python

from django.db.models import Q, Case, When, Value, IntegerField
from archivebox.search import search_index
class SearchResultsAdminMixin(object):
def get_search_results(self, request, queryset, search_term):
''' Show exact match for title and slug at top of admin search results.
'''
qs, use_distinct = \
super(SearchResultsAdminMixin, self).get_search_results(
request, queryset, search_term)
search_term = search_term.strip()
if not search_term:
return qs, use_distinct
snapshot_ids = search_index(search_term)
qsearch = queryset.filter(id__in=snapshot_ids)
qs |= qsearch
return qs, use_distinct