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