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:
@ -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)
|
||||
|
||||
|
18
apps/participation/search_indexes.py
Normal file
18
apps/participation/search_indexes.py
Normal 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
|
13
apps/registration/search_indexes.py
Normal file
13
apps/registration/search_indexes.py
Normal 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
|
Reference in New Issue
Block a user