from django.db.models import Q, Max
from django.db.models.signals import pre_delete
from django.utils.encoding import smart_unicode
-from djangosphinx.models import SphinxQuerySet
+from djangosphinx.models import SphinxQuerySet, SearchError
from savoirs.globals import META
from settings import CALENDRIER_URL, SITE_ROOT_URL
tous les champs."""
return self.search('"%s"' % region.nom)
+ def _get_sphinx_results(self):
+ try:
+ return SphinxQuerySet._get_sphinx_results(self)
+ except SearchError:
+ # Essayons d'enlever les caractères qui peuvent poser problème.
+ for c in '|!@()~/<=^$':
+ self._query = self._query.replace(c, ' ')
+ try:
+ return SphinxQuerySet._get_sphinx_results(self)
+ except SearchError:
+ # Ça ne marche toujours pas. Enlevons les guillemets et les
+ # tirets.
+ for c in '"-':
+ self._query = self._query.replace(c, ' ')
+ return SphinxQuerySet._get_sphinx_results(self)
+
class SEPManager(models.Manager):
"""Lorsque les méthodes ``search``, ``filter_region`` et
``filter_discipline`` sont appelées sur ce manager, le query set