Finalisation du tableau de bords pour les évaluateurs
[auf_rh_dae.git] / project / recrutement / views.py
CommitLineData
6f2d5d58 1# -*- encoding: utf-8 -*-
89e948de 2
362a3534 3from django.contrib import messages
f083eee0 4from django.contrib.auth.models import User
89e948de 5from django.core.mail import send_mail
6from django.http import HttpResponse
7from django.shortcuts import render_to_response, redirect, get_object_or_404
8from django.template import Context, RequestContext
6f2d5d58 9
362a3534 10from forms import *
11from models import *
6f2d5d58 12from project.recrutement import models as recr
f6724c20 13from recrutement.workflow import grp_evaluateurs_recrutement
6f2d5d58 14
15def index(request):
362a3534 16 return render_to_response('recrutement/index.html', {},
17 RequestContext(request))
18
7d82fd33 19def afficher_candidat(request):
20 candidat = get_object_or_404(Candidat, id=request.GET.get('id'))
73d23dcd 21 var = {'candidat': candidat,}
7d82fd33 22 return render_to_response("recrutement/afficher_candidat.html", var,
23 RequestContext(request))
24
596fe324 25def evaluer_candidat(request):
e34a2ae0 26 candidat = get_object_or_404(Candidat, id=request.GET.get('id'))
27
28 try:
27c81d11 29 evaluateur = Evaluateur.objects.get(user=request.user)
30 except Evaluateur.DoesNotExist:
e34a2ae0 31 messages.add_message(request, messages.ERROR,
7d82fd33 32 "Vous ne pouvez pas évaluer ce candidat.")
2d083449 33 return redirect("admin:recrutement_proxycandidat_changelist")
e34a2ae0 34
596fe324 35 if request.method == "POST":
36 candidat_evaluation = CandidatEvaluation()
37 candidat_evaluation.candidat = candidat
e34a2ae0 38 candidat_evaluation.evaluateur = evaluateur
8ea41642 39 form = CandidatEvaluationForm(request.POST,
e34a2ae0 40 instance=candidat_evaluation, candidat=candidat,
41 evaluateur=evaluateur)
89e948de 42 if form.is_valid():
43 form.save()
596fe324 44 messages.add_message(request, messages.SUCCESS,
45 "Le commentaire et la note ont été affectés \
46 au candidat.")
89e948de 47
2d083449 48 return redirect("admin:recrutement_proxycandidat_changelist")
596fe324 49 else:
e34a2ae0 50 form = CandidatEvaluationForm(candidat=candidat, evaluateur=evaluateur)
596fe324 51
52 c = {'form' : form}
beef7690 53 # Voir ou rediriger
8ea41642 54 return render_to_response("recrutement/evaluer_candidat.html", Context(c),
596fe324 55 context_instance = RequestContext(request))
56
362a3534 57def affecter_evaluateurs_candidats(request):
58 candidat_ids = request.GET.get('ids').split(',')
2adf9e0c 59 candidats = Candidat.objects.filter(id__in=candidat_ids)
362a3534 60 if request.method == "POST":
61 form = EvaluateurForm(request.POST, candidats=candidats)
62 if form.is_valid():
63 form.save()
64 messages.add_message(request, messages.SUCCESS,
65 "Les évaluateurs ont été affectés aux candidats.")
66 return redirect("admin:recrutement_candidat_changelist")
67 else:
68 form = EvaluateurForm(candidats=candidats)
69
70 c = {'form' : form}
8ea41642 71 return render_to_response("recrutement/affecter_evaluateurs.html",
72 Context(c), context_instance = RequestContext(request))
73
d84c3a68 74def envoyer_courriel_candidats(request):
75 candidat_ids = request.GET.get('ids').split(',')
76 candidats = Candidat.objects.filter(id__in=candidat_ids)
4e8340cf 77
d84c3a68 78 if request.method == "POST":
79 form = CandidatCourrielForm(request.POST, candidats=candidats)
80 if form.is_valid():
81 form.save()
82 messages.add_message(request, messages.SUCCESS,
83 "Les évaluateurs ont été affectés aux candidats.")
84 return redirect("admin:recrutement_candidat_changelist")
85 else:
86 form = CandidatCourrielForm(candidats=candidats)
87
88 c = {'form' : form}
89 return render_to_response("recrutement/envoyer_courriel_candidats.html",
90 Context(c), context_instance = RequestContext(request))
91
8ea41642 92def postuler_appel_offre(request):
f6749f29 93
2b3edf33 94 vars = dict()
8ea41642 95 offre_emploi = get_object_or_404(OffreEmploi, id=request.GET.get('id'))
96 candidat = Candidat()
97 candidat.offre_emploi = offre_emploi
2b3edf33 98
8ea41642 99 if request.method == "POST":
f6749f29 100 form = PostulerOffreEmploiForm(request.POST,
2adf9e0c 101 instance=candidat, offre_emploi=offre_emploi)
102 piecesForm = CandidatPieceForm(request.POST, request.FILES,
103 instance=candidat)
f6749f29 104 print form.errors
2b3edf33 105 if form.is_valid() and piecesForm.is_valid():
f6749f29 106 offre = form.save()
107 piecesForm.instance = offre
89e948de 108 piecesForm.save()
8ea41642 109 messages.add_message(request, messages.SUCCESS,
110 "Votre application à l'appel d'offre d'emploi a \
111 été effectuée.")
89e948de 112
113 # Envoi d'un email de confirmation
114 send_mail(u"Confirmation de postulation pour le poste \
115 de " + offre_emploi.nom,
116 u"Bonjour " + candidat.prenom + " " + candidat.nom +
117 u", \nceci est un email pour vous confirmer que votre \
118 postulation pour l'offre d'emploi: " +
119 offre_emploi.nom + u" a été effectuée avec succès. Vous\
120 devriez être contacté sous peu par l'AUF. \n\n Merci \
121 pour votre intérêt envers l'AUF.",
d84c3a68 122 'test@auf.org',
89e948de 123 [candidat.email], fail_silently=False)
124
8ea41642 125 return redirect("admin:recrutement_offreemploi_changelist")
f6749f29 126 else:
127 messages.add_message(request, messages.ERROR,
128 'Il y a des erreurs dans le formulaire.')
8ea41642 129 else:
2adf9e0c 130 form = PostulerOffreEmploiForm(instance=candidat,
131 offre_emploi=offre_emploi)
2b3edf33 132 piecesForm = CandidatPieceForm(instance=candidat)
8ea41642 133
2b3edf33 134 vars.update(dict(form=form, candidat=candidat, piecesForm=piecesForm, ))
135
136 return render_to_response('recrutement/postuler_appel_offre.html', vars,
137 RequestContext(request))