1 # -*- encoding: utf-8 -*-
3 from django
.contrib
import messages
4 from django
.contrib
.auth
.models
import User
5 from django
.core
.mail
import send_mail
6 from django
.http
import HttpResponse
7 from django
.shortcuts
import render_to_response
, redirect
, get_object_or_404
8 from django
.template
import Context
, RequestContext
12 from project
.recrutement
import models
as recr
15 return render_to_response('recrutement/index.html', {},
16 RequestContext(request
))
18 def afficher_candidat(request
):
19 candidat
= get_object_or_404(Candidat
, id=request
.GET
.get('id'))
20 var
= {'candidat': candidat
,}
21 return render_to_response("recrutement/afficher_candidat.html", var
,
22 RequestContext(request
))
24 def evaluer_candidat(request
):
25 candidat
= get_object_or_404(Candidat
, id=request
.GET
.get('id'))
28 evaluateur
= UserProfile
.objects
.get(user
=request
.user
)
29 except UserProfile
.DoesNotExist
:
30 messages
.add_message(request
, messages
.ERROR
,
31 "Vous ne pouvez pas évaluer ce candidat.")
32 return redirect("admin:recrutement_candidat_changelist")
34 if request
.method
== "POST":
35 candidat_evaluation
= CandidatEvaluation()
36 candidat_evaluation
.candidat
= candidat
37 candidat_evaluation
.evaluateur
= evaluateur
38 form
= CandidatEvaluationForm(request
.POST
,
39 instance
=candidat_evaluation
, candidat
=candidat
,
40 evaluateur
=evaluateur
)
43 messages
.add_message(request
, messages
.SUCCESS
,
44 "Le commentaire et la note ont été affectés \
47 return redirect("admin:recrutement_candidat_changelist")
49 form
= CandidatEvaluationForm(candidat
=candidat
, evaluateur
=evaluateur
)
52 return render_to_response("recrutement/evaluer_candidat.html", Context(c
),
53 context_instance
= RequestContext(request
))
55 def affecter_evaluateurs_candidats(request
):
56 candidat_ids
= request
.GET
.get('ids').split(',')
57 candidats
= Candidat
.objects
.filter(id__in
=candidat_ids
)
58 if request
.method
== "POST":
59 form
= EvaluateurForm(request
.POST
, candidats
=candidats
)
62 messages
.add_message(request
, messages
.SUCCESS
,
63 "Les évaluateurs ont été affectés aux candidats.")
64 return redirect("admin:recrutement_candidat_changelist")
66 form
= EvaluateurForm(candidats
=candidats
)
69 return render_to_response("recrutement/affecter_evaluateurs.html",
70 Context(c
), context_instance
= RequestContext(request
))
72 def envoyer_courriel_candidats(request
):
73 candidat_ids
= request
.GET
.get('ids').split(',')
74 candidats
= Candidat
.objects
.filter(id__in
=candidat_ids
)
75 if request
.method
== "POST":
76 form
= CandidatCourrielForm(request
.POST
, candidats
=candidats
)
79 messages
.add_message(request
, messages
.SUCCESS
,
80 "Les évaluateurs ont été affectés aux candidats.")
81 return redirect("admin:recrutement_candidat_changelist")
83 form
= CandidatCourrielForm(candidats
=candidats
)
86 return render_to_response("recrutement/envoyer_courriel_candidats.html",
87 Context(c
), context_instance
= RequestContext(request
))
89 def postuler_appel_offre(request
):
92 offre_emploi
= get_object_or_404(OffreEmploi
, id=request
.GET
.get('id'))
94 candidat
.offre_emploi
= offre_emploi
96 if request
.method
== "POST":
97 form
= PostulerOffreEmploiForm(request
.POST
,
98 instance
=candidat
, offre_emploi
=offre_emploi
)
99 piecesForm
= CandidatPieceForm(request
.POST
, request
.FILES
,
102 if form
.is_valid() and piecesForm
.is_valid():
104 piecesForm
.instance
= offre
106 messages
.add_message(request
, messages
.SUCCESS
,
107 "Votre application à l'appel d'offre d'emploi a \
110 # Envoi d'un email de confirmation
111 send_mail(u
"Confirmation de postulation pour le poste \
112 de " + offre_emploi
.nom
,
113 u
"Bonjour " + candidat
.prenom
+ " " + candidat
.nom
+
114 u
", \nceci est un email pour vous confirmer que votre \
115 postulation pour l'offre d'emploi: " +
116 offre_emploi
.nom
+ u
" a été effectuée avec succès. Vous\
117 devriez être contacté sous peu par l'AUF. \n\n Merci \
118 pour votre intérêt envers l'AUF.",
120 [candidat
.email
], fail_silently
=False)
122 return redirect("admin:recrutement_offreemploi_changelist")
124 messages
.add_message(request
, messages
.ERROR
,
125 'Il y a des erreurs dans le formulaire.')
127 form
= PostulerOffreEmploiForm(instance
=candidat
,
128 offre_emploi
=offre_emploi
)
129 piecesForm
= CandidatPieceForm(instance
=candidat
)
131 vars.update(dict(form
=form
, candidat
=candidat
, piecesForm
=piecesForm
, ))
133 return render_to_response('recrutement/postuler_appel_offre.html', vars,
134 RequestContext(request
))