1880: paquet emploi - API - logique de génération de la liste des offres d'emploi...
authorNilovna Bascunan-Vasquez <contact@nilovna.com>
Mon, 8 Aug 2011 14:36:08 +0000 (10:36 -0400)
committerNilovna Bascunan-Vasquez <contact@nilovna.com>
Mon, 8 Aug 2011 14:36:08 +0000 (10:36 -0400)
project/recrutement/api.py
src/auf.django.emploi/auf/django/emploi/api.py

index 0a194b3..acc68d1 100644 (file)
@@ -1,4 +1,5 @@
 # -*- encoding: utf-8 -*
+from datetime import date
 from django.http import HttpResponse
 from django.template import RequestContext, Template
 from django.shortcuts import render_to_response, redirect, get_object_or_404
@@ -109,41 +110,54 @@ class API:
         
 
     def api_offre_emploi_liste(self):
-        return api_return(STATUS_OK, simplejson.dumps(
-                            [{"id": "%s" % offre.id, 
-                            "est_affiche": "%s" % offre.est_affiche,
-                            "statut": "%s" % offre.statut,
-                            "nom": "%s" % offre.nom, 
-                            "resume": "%s" % offre.resume,
-                            "description": "%s" % offre.description,
-                            "poste_nom": "%s" % offre.poste_nom,
-                            "region": "%s" % offre.region.id,
-                            "bureau": "%s" % offre.bureau.id,
-                            "date_limite": "%s" % offre.date_limite,
-                            "duree_affectation": "%s" % offre.duree_affectation,
-                            "renumeration": "%s" % offre.renumeration,
-                            "debut_affectation": "%s" % offre.debut_affectation,
-                            "lieu_affectation": "%s" % offre.lieu_affectation.id} 
-                            for offre in emploi.OffreEmploi.objects.all()]), json=True)
+        offres_emploi = []
+        for offre in emploi.OffreEmploi.objects.all():
+            if offre.est_affiche is True and \
+                offre.statut == "AFFI" and \
+                offre.date_limite >= date.today():
+                offres_emploi.append(offre)
+        if offres_emploi:
+            return api_return(STATUS_OK, simplejson.dumps(
+                                [{"id": "%s" % offre.id, 
+                                "est_affiche": "%s" % offre.est_affiche,
+                                "statut": "%s" % offre.statut,
+                                "nom": "%s" % offre.nom, 
+                                "resume": "%s" % offre.resume,
+                                "description": "%s" % offre.description,
+                                "poste_nom": "%s" % offre.poste_nom,
+                                "region": "%s" % offre.region.id,
+                                "bureau": "%s" % offre.bureau.id,
+                                "date_limite": "%s" % offre.date_limite,
+                                "duree_affectation": "%s" % offre.duree_affectation,
+                                "renumeration": "%s" % offre.renumeration,
+                                "debut_affectation": "%s" % offre.debut_affectation,
+                                "lieu_affectation": "%s" % offre.lieu_affectation.id} 
+                                for offre in offres_emploi]), json=True)
+        return api_return(STATUS_OK)
         
     def api_offre_emploi(self):
         try:
             offre = emploi.OffreEmploi.objects.get(id=self.request.GET.get('id'))
         except emploi.OffreEmploi.DoesNotExist:
             return api_return(STATUS_ERROR, "ID d'offre d'emploi invalide")
-        return api_return(STATUS_OK, simplejson.dumps(
-            {"id": "%s" % offre.id,
-            "est_affiche": "%s" % offre.est_affiche,
-            "statut": "%s" % offre.statut,
-            "nom": "%s" % offre.nom, 
-            "resume": "%s" % offre.resume,
-            "description": "%s" % offre.description,
-            "poste_nom": "%s" % offre.poste_nom,
-            "region": "%s" % offre.region.id,
-            "bureau": "%s" % offre.bureau.id,
-            "date_limite": "%s" % offre.date_limite,
-            "duree_affectation": "%s" % offre.duree_affectation,
-            "renumeration": "%s" % offre.renumeration,
-            "debut_affectation": "%s" % offre.debut_affectation,
-            "lieu_affectation": "%s" % offre.lieu_affectation.id} ), json=True)
+    
+        if offre.est_affiche is True and \
+            offre.statut == "AFFI" and \
+            offre.date_limite >= date.today():
+            return api_return(STATUS_OK, simplejson.dumps(
+                {"id": "%s" % offre.id,
+                "est_affiche": "%s" % offre.est_affiche,
+                "statut": "%s" % offre.statut,
+                "nom": "%s" % offre.nom, 
+                "resume": "%s" % offre.resume,
+                "description": "%s" % offre.description,
+                "poste_nom": "%s" % offre.poste_nom,
+                "region": "%s" % offre.region.id,
+                "bureau": "%s" % offre.bureau.id,
+                "date_limite": "%s" % offre.date_limite,
+                "duree_affectation": "%s" % offre.duree_affectation,
+                "renumeration": "%s" % offre.renumeration,
+                "debut_affectation": "%s" % offre.debut_affectation,
+                "lieu_affectation": "%s" % offre.lieu_affectation.id} ), json=True)
+        return api_return(STATUS_OK)
 
index 4ddbba3..61d049c 100644 (file)
@@ -19,7 +19,10 @@ class API:
         url = "http://127.0.0.1:8000/api/offre_emploi_liste/"
         r = req(url)
         liste_json = r.body_string()
-        liste_offres = simplejson.loads(liste_json)
+        try:
+            liste_offres = simplejson.loads(liste_json)
+        except:
+            return []
         obj_offres_emploi = []
 
         for offre_dict in liste_offres:
@@ -44,7 +47,11 @@ class API:
         url = "http://127.0.0.1:8000/api/offre_emploi/?id=%s"
         r = req(url % (offre_id))
         offre_json = r.body_string()
-        offre_dict = simplejson.loads(offre_json)
+
+        try:
+            offre_dict = simplejson.loads(offre_json)
+        except:
+            return []
         obj_offres_emploi = []
 
         offre = emploi.OffreEmploi()