from haystack import indexes

from mbed.comlibs.search_indexes import ContentItemIndex
from wakawaka.models import WikiPage


class WikiPageIndex(ContentItemIndex, indexes.Indexable):
    name = indexes.CharField(model_attr='name', boost=1.1)
    content = indexes.CharField(boost=1.1)

    def get_model(self):
        return WikiPage

    def index_queryset(self, using=None):
        return self.get_model().objects.filter(wiki__public=True)

    def prepare_obj_type(self, obj):
        return "Wiki Page"

    def prepare(self, obj):
        prepared_data = super(WikiPageIndex, self).prepare(obj)

        if obj.wiki.slug == u"handbook":
            prepared_data["boost"] = 2.0

        return prepared_data

    def prepare_content(self, obj):
        if obj.current:
            return obj.current.content
        return ""
