Création à la volée des évaluations à chaque fois qu'on affiche la liste
[auf_rh_dae.git] / project / recrutement / admin.py
index cd20147..c2b14aa 100644 (file)
@@ -864,13 +864,23 @@ class MesCandidatEvaluationAdmin(CandidatEvaluationAdmin):
 
     def queryset(self, request):
         qs = self.model._default_manager.get_query_set() \
-                .select_related('offre_emploi')
+            .select_related('offre_emploi')
         evaluateur = Evaluateur.objects.get(user=request.user)
-        candidats_evaluations = \
-            CandidatEvaluation.objects.filter(evaluateur=evaluateur,
-                    candidat__statut__in=('REC', ))
-        candidats_evaluations_ids = [ce.id for ce in candidats_evaluations]
-        return qs.filter(id__in=candidats_evaluations_ids)
+
+        # XXX: Pas l'idéal, mais on doit créer les objets CandidatEvaluation
+        # ici pour garder la liste à jour. Idéalement, il vaudrait peut-être
+        # mieux utiliser directement les objets Candidat.
+        for candidat in Candidat.objects .filter(
+            offre_emploi__offreemploievaluateur__evaluateur=evaluateur,
+        ).exclude(evaluations__evaluateur=evaluateur):
+            print candidat, candidat.offre_emploi
+            CandidatEvaluation.objects.get_or_create(
+                candidat=candidat, evaluateur=evaluateur
+            )
+
+        return qs.filter(
+            evaluateur=evaluateur, candidat__statut__in=('NOUV', 'REC')
+        )
 
 
 class OffreEmploiEvaluateurAdmin(BaseAdmin):