#4660 dae_refactoring_process
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Thu, 15 Nov 2012 21:59:20 +0000 (16:59 -0500)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Thu, 15 Nov 2012 21:59:20 +0000 (16:59 -0500)
project/dae/catalogues.py
project/dae/templates/dae/poste.html

index 9c1dc52..44fe786 100644 (file)
@@ -14,12 +14,22 @@ class Responsable(object):
             return rh.Poste.objects.none()
 
         self.q = q
             return rh.Poste.objects.none()
 
         self.q = q
-        postes = rh.Poste.objects.filter(
-            Q(nom__icontains=q) |
-            Q(type_poste__nom__icontains=q) |
-            Q(rh_dossiers__employe__nom__icontains=q) |
-            Q(rh_dossiers__employe__prenom__icontains=q)
-            ).distinct()
+        filtre = (
+            Q(poste__nom__icontains=q) |
+            Q(poste__type_poste__nom__icontains=q) |
+            Q(employe__nom__icontains=q) |
+            Q(employe__prenom__icontains=q)
+            )
+
+        dossiers = rh.Dossier.objects.\
+                select_related('poste', 'poste__type_poste').\
+                actifs().\
+                filter(filtre)
+        q = q.lower()
+        postes = list(set([d.poste for d in dossiers if q in
+            unicode(d.employe).lower() or \
+            q in d.poste.nom.lower() or \
+            q in d.poste.type_poste.nom.lower()]))
         return postes
 
     def format_result(self, poste):
         return postes
 
     def format_result(self, poste):
@@ -28,7 +38,7 @@ class Responsable(object):
             Q(poste__nom__icontains=q) | Q(employe__nom__icontains=q) |
             Q(employe__prenom__icontains=q)
         )
             Q(poste__nom__icontains=q) | Q(employe__nom__icontains=q) |
             Q(employe__prenom__icontains=q)
         )
-        dossiers = rh.Dossier.objects.filter(filtre)
+        dossiers = rh.Dossier.objects.actifs().filter(filtre)
 
         nom_poste = poste.nom
 
 
         nom_poste = poste.nom
 
@@ -36,7 +46,7 @@ class Responsable(object):
             dossier = dossiers[0]
             employe = dossier.employe
         else:
             dossier = dossiers[0]
             employe = dossier.employe
         else:
-            dossiers = poste.rh_dossiers.all()
+            dossiers = poste.rh_dossiers.all().order_by('-date_debut')
             if len(dossiers) > 0:
                 employe = unicode(dossiers[0].employe)
             else:
             if len(dossiers) > 0:
                 employe = unicode(dossiers[0].employe)
             else:
index a7beaa9..4094f00 100644 (file)
@@ -90,7 +90,8 @@ Demande d'autorisation d'engagement
         <tr>
             <th>{{ form.responsable.label_tag }} :<br />{{ form.responsable.errors }}</th>
             <td>
         <tr>
             <th>{{ form.responsable.label_tag }} :<br />{{ form.responsable.errors }}</th>
             <td>
-                <span class="info">Recherche intelligente : vous pouvez tapez le nom du poste, ou encore la dernière qui occupe celui-ci. Assurez-vous que le poste de responsable choisi dans la liste est reporté en dessous du champs de recherche, cela signifie qu'il est sélectionné.</span>
+                <span class="info">Recherche intelligente : vous pouvez tapez
+                    le nom du poste, ou encore la personne qui occupe celui-ci. Assurez-vous que le poste de responsable choisi dans la liste est reporté en dessous du champs de recherche, cela signifie qu'il est sélectionné.</span>
                 {{ form.responsable }}
             </td>
         </tr>
                 {{ form.responsable }}
             </td>
         </tr>