Retrait de la restriction des régions lors de l'ajout d'une offre d'emploi
[auf_rh_dae.git] / project / recrutement / views.py
1 # -*- encoding: utf-8 -*-
2
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
9
10 from forms import *
11 from models import *
12 from project.recrutement import models as recr
13
14 def index(request):
15 return render_to_response('recrutement/index.html', {},
16 RequestContext(request))
17
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))
23
24 def evaluer_candidat(request):
25 candidat = get_object_or_404(Candidat, id=request.GET.get('id'))
26
27 try:
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")
33
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)
41 if form.is_valid():
42 form.save()
43 messages.add_message(request, messages.SUCCESS,
44 "Le commentaire et la note ont été affectés \
45 au candidat.")
46
47 return redirect("admin:recrutement_candidat_changelist")
48 else:
49 form = CandidatEvaluationForm(candidat=candidat, evaluateur=evaluateur)
50
51 c = {'form' : form}
52 return render_to_response("recrutement/evaluer_candidat.html", Context(c),
53 context_instance = RequestContext(request))
54
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)
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}
69 return render_to_response("recrutement/affecter_evaluateurs.html",
70 Context(c), context_instance = RequestContext(request))
71
72 def postuler_appel_offre(request):
73
74 vars = dict()
75 offre_emploi = get_object_or_404(OffreEmploi, id=request.GET.get('id'))
76 candidat = Candidat()
77 candidat.offre_emploi = offre_emploi
78
79 if request.method == "POST":
80 form = PostulerOffreEmploiForm(request.POST,
81 instance=candidat, offre_emploi=offre_emploi)
82 piecesForm = CandidatPieceForm(request.POST, request.FILES,
83 instance=candidat)
84 print form.errors
85 if form.is_valid() and piecesForm.is_valid():
86 offre = form.save()
87 piecesForm.instance = offre
88 piecesForm.save()
89 messages.add_message(request, messages.SUCCESS,
90 "Votre application à l'appel d'offre d'emploi a \
91 été effectuée.")
92
93 # Envoi d'un email de confirmation
94 send_mail(u"Confirmation de postulation pour le poste \
95 de " + offre_emploi.nom,
96 u"Bonjour " + candidat.prenom + " " + candidat.nom +
97 u", \nceci est un email pour vous confirmer que votre \
98 postulation pour l'offre d'emploi: " +
99 offre_emploi.nom + u" a été effectuée avec succès. Vous\
100 devriez être contacté sous peu par l'AUF. \n\n Merci \
101 pour votre intérêt envers l'AUF.",
102 'contact@nilovna.com',
103 [candidat.email], fail_silently=False)
104
105 return redirect("admin:recrutement_offreemploi_changelist")
106 else:
107 messages.add_message(request, messages.ERROR,
108 'Il y a des erreurs dans le formulaire.')
109 else:
110 form = PostulerOffreEmploiForm(instance=candidat,
111 offre_emploi=offre_emploi)
112 piecesForm = CandidatPieceForm(instance=candidat)
113
114 vars.update(dict(form=form, candidat=candidat, piecesForm=piecesForm, ))
115
116 return render_to_response('recrutement/postuler_appel_offre.html', vars,
117 RequestContext(request))