) autocomplete_result_fields = ("username", "full_name", "profile_picture") autocomplete_fields = ("first_name", "last_name", "username") fallback_to_autocomplete = True def get_autocomplete(self, instance): return [ instance.username, instance.full_name, instance.last_name, instance.first_name, ] register(UserIndex) class GroupIndex(SearchIndex): queryset = AbakusGroup.objects.all() serializer_class = SearchGroupSerializer result_fields = ("name", "type", "logo") autocomplete_result_fields = ("name", "type", "logo") autocomplete_fields = ("name",) fallback_to_autocomplete = True def get_autocomplete(self, instance): return [instance.name] + instance.name.split(" ")
class EventModelIndex(SearchIndex): queryset = Event.objects.all() serializer_class = EventSearchSerializer result_fields = ( "title", "description", "text", "cover", "location", "start_time", "end_time", ) autocomplete_result_fields = ("title", "start_time") autocomplete_fields = ("title",) search_fields = ("title", "description", "text") def get_autocomplete(self, instance): return instance.title def search(self, query): return super().search(query).order_by("-start_time") def autocomplete(self, query): return super().autocomplete(query).order_by("-start_time") register(EventModelIndex)
from lego.apps.search import register from lego.apps.search.index import SearchIndex from .models import Page from .serializers import PageDetailSerializer class PageModelIndex(SearchIndex): queryset = Page.objects.all() serializer_class = PageDetailSerializer result_fields = ('title', 'content', 'slug', 'picture') autocomplete_result_fields = ('title', 'slug', 'picture') def get_autocomplete(self, instance): return [instance.title, instance.slug_field] register(PageModelIndex)
from lego.apps.search import register from lego.apps.search.index import SearchIndex from .models import Company from .serializers import CompanySearchSerializer class CompanyModelIndex(SearchIndex): queryset = Company.objects.all() serializer_class = CompanySearchSerializer result_fields = ("name", "description") autocomplete_result_fields = ("name", ) def get_autocomplete(self, instance): return instance.name def autocomplete(self, query): return self.queryset.filter(name__istartswith=query) register(CompanyModelIndex)
from lego.apps.search import register from lego.apps.search.index import SearchIndex from .models import Article from .serializers import SearchArticleSerializer class ArticleModelIndex(SearchIndex): queryset = Article.objects.all() serializer_class = SearchArticleSerializer result_fields = ("title", "description", "cover") autocomplete_result_fields = ("title", ) def get_autocomplete(self, instance): return instance.title def autocomplete(self, query): return self.queryset.filter(title__istartswith=query) register(ArticleModelIndex)
from lego.apps.search import register from lego.apps.search.index import SearchIndex from .models import Tag from .serializers import TagSearchSerializer class TagIndex(SearchIndex): queryset = Tag.objects.all() serializer_class = TagSearchSerializer result_fields = ("tag",) autocomplete_result_fields = ("tag",) autocomplete_fields = ("tag",) fallback_to_autocomplete = True def get_autocomplete(self, instance): return [instance.tag] register(TagIndex)
from lego.apps.search import register from lego.apps.search.index import SearchIndex from .models import Gallery from .serializers import GallerySearchSerializer class GalleryIndex(SearchIndex): queryset = Gallery.objects.all() serializer_class = GallerySearchSerializer result_fields = ('title', 'location', 'description') autocomplete_result_fields = ('title', ) def get_autocomplete(self, instance): return [instance.title] register(GalleryIndex)