fix responsable ajax, le poste qui match, on retrouve le dossier de la personne si...
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Mon, 22 Aug 2011 20:18:46 +0000 (16:18 -0400)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Mon, 22 Aug 2011 20:18:46 +0000 (16:18 -0400)
project/dae/catalogues.py

index 20d3944..2ce242a 100644 (file)
@@ -8,27 +8,38 @@ from workflow import grp_drh
 class Responsable(object):
     q = ""
     def get_query(self,q,request):
+        if len(q) < 4:
+            return rh.Poste.objects.none()
+
         self.q = q
-        return rh.Poste.objects.filter(
+        postes =  rh.Poste.objects.filter(
             Q(poste1__complement1__icontains=q) |
             Q(type_poste__nom__icontains=q) |
             Q(poste1__employe__nom__icontains=q) |
             Q(poste1__employe__prenom__icontains=q)
             ).distinct()
+        return postes
 
     def format_result(self, poste):
         q = self.q
         filtre = Q(poste1=poste) & (Q(complement1__icontains=q) | Q(employe__nom__icontains=q) | Q(employe__prenom__icontains=q))
         dossiers = rh.Dossier.objects.filter(filtre)
+        
+        # certains postes ont un id de type de poste qui n'existe pas
+        try:
+            nom_poste = poste.type_poste.nom
+        except:
+            nom_poste = ""
+    
         if len(dossiers) == 1:
             dossier = dossiers[0]
-            return "[%s] %s %s (%s) (%s)" % (poste.implantation.id, poste.type_poste.nom, dossier.complement1, poste.id, dossier.employe)
+            return "[%s] %s %s (%s) (%s)" % (poste.implantation.id, nom_poste, dossier.complement1, poste.id, dossier.employe)
         else:
             dossiers = poste.poste1.all().order_by("-id")
             if len(dossiers) > 0:
                 complement1 = dossiers[0].complement1
                 employe = unicode(dossiers[0].employe)
-                return "[%s] %s %s (%s) (%s)" % (poste.implantation.id, poste.type_poste.nom, complement1, poste.id, employe)           
+                return "[%s] %s %s (%s) (%s)" % (poste.implantation.id, nom_poste, complement1, poste.id, employe)           
 
     def format_item(self, poste):
         """ the display of a currently selected object in the area below the search box. html is OK """