Skip to content
Extraits de code Groupes Projets
models.py 1,08 ko
Newer Older
from django.conf import settings

from pgindex import IndexBase, Vector, register

from leaflet_storage.models import Map


class UnaccentVector(Vector):

    @property
    def tsvector(self):
        if getattr(settings, "UMAP_USE_UNACCENT", False):
            return u"setweight(to_tsvector('%s', unaccent(E'%s')), '%s')" % (
                self.dictionary, self.value, self.weight
            )
        else:
            return super(UnaccentVector, self).tsvector


class MapIndex(IndexBase):

    def get_title(self):
        return self.obj.name

    def get_start_publish(self):
        return self.obj.modified_at

Yohan Boniface's avatar
Yohan Boniface a validé
    def get_publish(self):
        return self.obj.share_status == Map.PUBLIC

    def get_vectors(self):
        vectors = []
        if self.obj.name:
            vectors.append(UnaccentVector(self.obj.name, weight='A'))
        if self.obj.description:
            vectors.append(UnaccentVector(self.obj.description, weight='B'))
        if self.obj.owner:
            vectors.append(UnaccentVector(self.obj.owner.username))
        return vectors

register(Map, MapIndex)