1
0
mirror of https://gitlab.com/animath/si/plateforme-corres2math.git synced 2025-06-24 13:48:45 +02:00

Use Django-Haystack to make indexed researches

This commit is contained in:
Yohann D'ANELLO
2020-10-15 12:57:20 +02:00
parent b397d00011
commit 6c59bf11be
7 changed files with 90 additions and 1 deletions

View File

@ -1,5 +1,7 @@
import re
from django.urls import reverse_lazy
from corres2math.lists import get_sympa_client
from django.core.exceptions import ObjectDoesNotExist
from django.core.validators import RegexValidator
@ -56,6 +58,9 @@ class Team(models.Model):
return super().save(*args, **kwargs)
def get_absolute_url(self):
return reverse_lazy("participation:team_detail", args=(self.pk,))
def __str__(self):
return _("Team {name} ({trigram})").format(name=self.name, trigram=self.trigram)
@ -115,6 +120,9 @@ class Participation(models.Model):
verbose_name=_("synthesis video"),
)
def get_absolute_url(self):
return reverse_lazy("participation:team_detail", args=(self.pk,))
def __str__(self):
return _("Participation of the team {name} ({trigram})").format(name=self.team.name, trigram=self.team.trigram)

View File

@ -0,0 +1,18 @@
from haystack import indexes
from .models import Participation, Team, Video
class TeamIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, model_attr="name")
trigram = indexes.CharField(model_attr="trigram")
def get_model(self):
return Team
class ParticipationIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, model_attr="team__trigram")
def get_model(self):
return Participation

View File

@ -0,0 +1,13 @@
from haystack import indexes
from .models import Registration
class RegistrationIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, model_attr="user__username")
last_name = indexes.CharField(model_attr="user__last_name")
first_name = indexes.CharField(model_attr="user__first_name")
email = indexes.CharField(model_attr="user__email")
def get_model(self):
return Registration