from .models import Communication, Contribution, Offre
+REGIONS = {
+ '0': 'Internationale',
+ '1': 'Afrique Centrale et des Grands-Lacs',
+ '2': 'Afrique de l\'ouest',
+ '3': 'Amériques',
+ '4': 'Asie-Pacifique',
+ '5': 'Caraïbe',
+ '6': 'Europe centrale et orientale',
+ '7': 'Moyen-Orient',
+ '8': 'Océan Indien',
+ '9': 'Maghreb',
+ '10': 'Europe de l\'Ouest'
+}
+
class AufIndex(indexes.SearchIndex):
- text = indexes.NgramField(model_attr='texte', document=True, use_template=True)
- title = indexes.NgramField(model_attr='titre')
- annee = indexes.FacetField(stored=True, null=True)
- regions = indexes.FacetMultiValueField(null=True, stored=True)
- section = indexes.FacetField(stored=True, null=True)
- date_pub = indexes.DateField(model_attr='date_pub', null=True)
+ text = indexes.NgramField(document=True, use_template=True)
+ title = indexes.NgramField(model_attr='titre', stored=True)
+ region = indexes.FacetField(stored=True)
+ section = indexes.FacetField(stored=True)
+# annee_evenement = indexes.FacetField(stored=True)
+ annee_limite = indexes.FacetField(stored=True)
+ date_pub = indexes.DateField(model_attr='date_pub')
-# def prepare_regions(self, obj):
-# try:
-# return [b.nom for b in obj.bureau.all()]
-# except ObjectDoesNotExist as e:
-# print(e)
-# return [u'Non précisé']
+ def prepare_region(self, obj):
+ return REGIONS[obj.region]
- def prepare_annee(self, obj):
- if obj.date_pub is not None:
- return str(obj.date_pub.year)
+# def prepare_annee_evenement(self, obj):
+# if obj.date_event is not None:
+# return str(obj.date_event.year)
+ def prepare_annee_limite(self, obj):
+ if obj.date_limite is not None:
+ return str(obj.date_limite.year)
-class CommunicationIndex(AufIndex, indexes.Indexable):
- def get_model(self):
- return Communication
+class CommunicationIndex(AufIndex, indexes.Indexable):
def prepare_section(self, obj):
- return u"Communication"
+ return u"Appel à communications"
- def prepare_date_pub(self, obj):
- return obj.date_pub.date()
+ def get_model(self):
+ return Communication
def index_queryset(self, using=None):
- """Used when the entire index for model is updated."""
- return Communication.objects.filter(status=3)
+ return Communication.objects.filter(status=3).order_by('-date_pub')
class ContributionIndex(AufIndex, indexes.Indexable):
- def get_model(self):
- return Contribution
-
def prepare_section(self, obj):
- return u"Contribution"
+ return u"Appel à contributions"
- def prepare_date_pub(self, obj):
- return obj.date_pub.date()
+ def get_model(self):
+ return Contribution
def index_queryset(self, using=None):
- return Contribution.objects.filter(status=3)
+ return Contribution.objects.filter(status=3).order_by('-date_pub')
class OffreIndex(AufIndex, indexes.Indexable):
- def get_model(self):
- return Offre
-
def prepare_section(self, obj):
- return u"Offre"
+ return u"Appel d'offres"
- def prepare_date_pub(self, obj):
- return obj.date_pub.date()
+ def get_model(self):
+ return Offre
def index_queryset(self, using=None):
- return Offre.objects.filter(status=3)
+ return Offre.objects.filter(status=3).order_by('-date_pub')