EvaluateurInline,
]
+ actions = ['affecter_candidats_evaluateur', 'evaluer_plusieurs_candidats']
# Affecter un évaluateurs à des candidats
- actions = ['affecter_candidats_evaluateur']
- def affecter_candidats_evaluateur(modeladmin, obj, candidats):
-
+ def affecter_candidats_evaluateur(modeladmin, obj, candidats):
selected = obj.POST.getlist(admin.ACTION_CHECKBOX_NAME)
return HttpResponseRedirect(reverse('affecter_evaluateurs_candidats')+
"?ids=%s" % (",".join(selected)))
affecter_candidats_evaluateur.short_description = u'Affecter évaluateur'
+ # Évaluer plusieurs candidats
+ def evaluer_plusieurs_candidats(modeladmin, obj, candidats):
+ selected = obj.POST.getlist(admin.ACTION_CHECKBOX_NAME)
+
+ return HttpResponseRedirect(reverse('evaluer_candidats')+
+ "?ids=%s" % (",".join(selected)))
+ evaluer_plusieurs_candidats.short_description = u'Évaluer plusieurs \
+ candidats'
+
# Évaluer un candidat
def evaluer_candidat(self, obj):
return "<a href='%s?id=%s'>Évaluer le candidat \
admin.site.register(OffreEmploi, OffreEmploiAdmin)
admin.site.register(Candidat, CandidatAdmin)
+admin.site.register(CandidatEvaluation, CandidatEvaluationAdmin)
admin.site.register(UserProfile, EvaluateurAdmin)
return render_to_response("recrutement/evaluer_candidat.html", Context(c),
context_instance = RequestContext(request))
+# TODO: Semblable à evaluer_candidat, possibilité de le mettre dans la
+# même fonction?
+def evaluer_candidats(request):
+ candidat_ids = request.GET.get('ids').split(',')
+ candidats = Candidat.objects.filter(id__in=candidat_ids)
+
+ try:
+ evaluateur = UserProfile.objects.get(user=request.user)
+ except UserProfile.DoesNotExist:
+ messages.add_message(request, messages.ERROR,
+ "Vous ne pouvez pas évaluer un candidat.")
+ return redirect("admin:recrutement_candidat_changelist")
+
+ if request.method == "POST":
+ for c in candidats:
+ candidat_evaluation = CandidatEvaluation()
+ candidat_evaluation.candidat = c
+ candidat_evaluation.evaluateur = evaluateur
+ form = CandidatEvaluationForm(request.POST,
+ instance=candidat_evaluation, candidat=c,
+ evaluateur=evaluateur)
+ if form.is_valid():
+ form.save()
+ messages.add_message(request, messages.SUCCESS,
+ "Le commentaire et la note ont été affectés \
+ aux candidats.")
+
+ return redirect("admin:recrutement_candidat_changelist")
+ else:
+ form = CandidatEvaluationForm(candidat=None, evaluateur=evaluateur)
+
+ c = {'form' : form}
+ return render_to_response("recrutement/evaluer_candidat.html", Context(c),
+ context_instance = RequestContext(request))
+
def affecter_evaluateurs_candidats(request):
candidat_ids = request.GET.get('ids').split(',')
candidats = Candidat.objects.filter(id__in=candidat_ids)
url(r'^recrutement/pieces/$', 'recrutement.views.postuler_appel_offre', name='pieces'),
url(r'^recrutement/evaluer_candidat/$',
'recrutement.views.evaluer_candidat', name='evaluer_candidat'),
+ url(r'^recrutement/evaluer_candidats/$',
+ 'recrutement.views.evaluer_candidats', name='evaluer_candidats'),
url(r'^recrutement/postuler_appel_offre/$',
'recrutement.views.postuler_appel_offre', name='postuler_appel_offre'),
(r'^', include('project.rh.urls')),