1 # -*- encoding: utf-8 -*-
2 from django
.shortcuts
import redirect
, render_to_response
, get_object_or_404
3 from django
.http
import HttpResponse
4 from django
.contrib
import messages
5 from django
.template
import Context
, RequestContext
6 from django
.shortcuts
import render_to_response
, redirect
7 from django
.template
import RequestContext
8 from django
.contrib
.auth
.models
import User
12 from project
.recrutement
import models
as recr
15 return render_to_response('recrutement/index.html', {},
16 RequestContext(request
))
18 def evaluer_candidat(request
):
19 candidat
= get_object_or_404(Candidat
, id=request
.GET
.get('id'))
22 evaluateur
= UserProfile
.objects
.get(user
=request
.user
)
23 except UserProfile
.DoesNotExist
:
24 messages
.add_message(request
, messages
.ERROR
,
25 "Vous ne pouvez pas évaluer un candidat.")
26 return redirect("admin:recrutement_candidat_changelist")
28 if request
.method
== "POST":
29 candidat_evaluation
= CandidatEvaluation()
30 candidat_evaluation
.candidat
= candidat
31 candidat_evaluation
.evaluateur
= evaluateur
32 form
= CandidatEvaluationForm(request
.POST
,
33 instance
=candidat_evaluation
, candidat
=candidat
,
34 evaluateur
=evaluateur
)
37 messages
.add_message(request
, messages
.SUCCESS
,
38 "Le commentaire et la note ont été affectés \
40 return redirect("admin:recrutement_candidat_changelist")
42 form
= CandidatEvaluationForm(candidat
=candidat
, evaluateur
=evaluateur
)
45 return render_to_response("recrutement/evaluer_candidat.html", Context(c
),
46 context_instance
= RequestContext(request
))
48 # TODO: Semblable à evaluer_candidat, possibilité de le mettre dans la
50 def evaluer_candidats(request
):
51 candidat_ids
= request
.GET
.get('ids').split(',')
52 candidats
= Candidat
.objects
.filter(id__in
=candidat_ids
)
55 evaluateur
= UserProfile
.objects
.get(user
=request
.user
)
56 except UserProfile
.DoesNotExist
:
57 messages
.add_message(request
, messages
.ERROR
,
58 "Vous ne pouvez pas évaluer un candidat.")
59 return redirect("admin:recrutement_candidat_changelist")
61 if request
.method
== "POST":
63 candidat_evaluation
= CandidatEvaluation()
64 candidat_evaluation
.candidat
= c
65 candidat_evaluation
.evaluateur
= evaluateur
66 form
= CandidatEvaluationForm(request
.POST
,
67 instance
=candidat_evaluation
, candidat
=c
,
68 evaluateur
=evaluateur
)
71 messages
.add_message(request
, messages
.SUCCESS
,
72 "Le commentaire et la note ont été affectés \
75 return redirect("admin:recrutement_candidat_changelist")
77 form
= CandidatEvaluationForm(candidat
=None, evaluateur
=evaluateur
)
80 return render_to_response("recrutement/evaluer_candidat.html", Context(c
),
81 context_instance
= RequestContext(request
))
83 def affecter_evaluateurs_candidats(request
):
84 candidat_ids
= request
.GET
.get('ids').split(',')
85 candidats
= Candidat
.objects
.filter(id__in
=candidat_ids
)
86 if request
.method
== "POST":
87 form
= EvaluateurForm(request
.POST
, candidats
=candidats
)
90 messages
.add_message(request
, messages
.SUCCESS
,
91 "Les évaluateurs ont été affectés aux candidats.")
92 return redirect("admin:recrutement_candidat_changelist")
94 form
= EvaluateurForm(candidats
=candidats
)
97 return render_to_response("recrutement/affecter_evaluateurs.html",
98 Context(c
), context_instance
= RequestContext(request
))
100 def postuler_appel_offre(request
):
103 offre_emploi
= get_object_or_404(OffreEmploi
, id=request
.GET
.get('id'))
104 candidat
= Candidat()
105 candidat
.offre_emploi
= offre_emploi
107 if request
.method
== "POST":
108 form
= PostulerOffreEmploiForm(request
.POST
,
109 instance
=candidat
, offre_emploi
=offre_emploi
)
110 piecesForm
= CandidatPieceForm(request
.POST
, request
.FILES
,
113 if form
.is_valid() and piecesForm
.is_valid():
115 piecesForm
.instance
= offre
117 messages
.add_message(request
, messages
.SUCCESS
,
118 "Votre application à l'appel d'offre d'emploi a \
120 return redirect("admin:recrutement_offreemploi_changelist")
122 messages
.add_message(request
, messages
.ERROR
,
123 'Il y a des erreurs dans le formulaire.')
125 form
= PostulerOffreEmploiForm(instance
=candidat
,
126 offre_emploi
=offre_emploi
)
127 piecesForm
= CandidatPieceForm(instance
=candidat
)
129 vars.update(dict(form
=form
, candidat
=candidat
, piecesForm
=piecesForm
, ))
131 return render_to_response('recrutement/postuler_appel_offre.html', vars,
132 RequestContext(request
))