Recheche: Correction des nom de facettes
[auf_framonde.git] / project / framonde / search_indexes.py
index c05c4f0..10ba2af 100644 (file)
@@ -6,68 +6,73 @@ from haystack import indexes
 
 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 à communication"
 
-    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 à contribution"
 
-    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'offre"
 
-    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')