admin.py 954 B

1234567891011121314151617181920212223
  1. __package__ = 'archivebox.search'
  2. from django.contrib import messages
  3. from archivebox.search import query_search_index
  4. class SearchResultsAdminMixin:
  5. def get_search_results(self, request, queryset, search_term: str):
  6. """Enhances the search queryset with results from the search backend"""
  7. qs, use_distinct = super().get_search_results(request, queryset, search_term)
  8. search_term = search_term.strip()
  9. if not search_term:
  10. return qs.distinct(), use_distinct
  11. try:
  12. qsearch = query_search_index(search_term)
  13. qs = qs | qsearch
  14. except Exception as err:
  15. print(f'[!] Error while using search backend: {err.__class__.__name__} {err}')
  16. messages.add_message(request, messages.WARNING, f'Error from the search backend, only showing results from default admin search fields - Error: {err}')
  17. return qs.distinct(), use_distinct