Skip to content
Extraits de code Groupes Projets
models.py 1022 octets
Newer Older
  • Learn to ignore specific revisions
  • 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
    
        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)