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):
def __unicode__(self):
return u"%s - %s" % (self.offre_emploi, self.evaluateur)
- def save(self):
-
- if self.pk is None:
- candidats = Candidat.objects.filter(offre_emploi=self.offre_emploi)
- for candidat in candidats:
- candidat_evaluation, created = CandidatEvaluation.objects.get_or_create(candidat=candidat, evaluateur=self.evaluateur)
-
- super(OffreEmploiEvaluateur, self).save()
-
def delete(self):
candidats = Candidat.objects.filter(offre_emploi=self.offre_emploi)
for candidat in candidats: