Permissions des groupes, affichage de listes selon permissions
[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.")
e34a2ae0 33 return redirect("admin:recrutement_candidat_changelist")
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
596fe324 48 return redirect("admin:recrutement_candidat_changelist")
49 else:
e34a2ae0 50 form = CandidatEvaluationForm(candidat=candidat, evaluateur=evaluateur)
596fe324 51
52 c = {'form' : form}
8ea41642 53 return render_to_response("recrutement/evaluer_candidat.html", Context(c),
596fe324 54 context_instance = RequestContext(request))
55
362a3534 56def affecter_evaluateurs_candidats(request):
57 candidat_ids = request.GET.get('ids').split(',')
2adf9e0c 58 candidats = Candidat.objects.filter(id__in=candidat_ids)
362a3534 59 if request.method == "POST":
60 form = EvaluateurForm(request.POST, candidats=candidats)
61 if form.is_valid():
62 form.save()
63 messages.add_message(request, messages.SUCCESS,
64 "Les évaluateurs ont été affectés aux candidats.")
65 return redirect("admin:recrutement_candidat_changelist")
66 else:
67 form = EvaluateurForm(candidats=candidats)
68
69 c = {'form' : form}
8ea41642 70 return render_to_response("recrutement/affecter_evaluateurs.html",
71 Context(c), context_instance = RequestContext(request))
72
d84c3a68 73def envoyer_courriel_candidats(request):
74 candidat_ids = request.GET.get('ids').split(',')
75 candidats = Candidat.objects.filter(id__in=candidat_ids)
4e8340cf 76
d84c3a68 77 if request.method == "POST":
78 form = CandidatCourrielForm(request.POST, candidats=candidats)
79 if form.is_valid():
80 form.save()
81 messages.add_message(request, messages.SUCCESS,
82 "Les évaluateurs ont été affectés aux candidats.")
83 return redirect("admin:recrutement_candidat_changelist")
84 else:
85 form = CandidatCourrielForm(candidats=candidats)
86
87 c = {'form' : form}
88 return render_to_response("recrutement/envoyer_courriel_candidats.html",
89 Context(c), context_instance = RequestContext(request))
90
8ea41642 91def postuler_appel_offre(request):
f6749f29 92
2b3edf33 93 vars = dict()
8ea41642 94 offre_emploi = get_object_or_404(OffreEmploi, id=request.GET.get('id'))
95 candidat = Candidat()
96 candidat.offre_emploi = offre_emploi
2b3edf33 97
8ea41642 98 if request.method == "POST":
f6749f29 99 form = PostulerOffreEmploiForm(request.POST,
2adf9e0c 100 instance=candidat, offre_emploi=offre_emploi)
101 piecesForm = CandidatPieceForm(request.POST, request.FILES,
102 instance=candidat)
f6749f29 103 print form.errors
2b3edf33 104 if form.is_valid() and piecesForm.is_valid():
f6749f29 105 offre = form.save()
106 piecesForm.instance = offre
89e948de 107 piecesForm.save()
8ea41642 108 messages.add_message(request, messages.SUCCESS,
109 "Votre application à l'appel d'offre d'emploi a \
110 été effectuée.")
89e948de 111
112 # Envoi d'un email de confirmation
113 send_mail(u"Confirmation de postulation pour le poste \
114 de " + offre_emploi.nom,
115 u"Bonjour " + candidat.prenom + " " + candidat.nom +
116 u", \nceci est un email pour vous confirmer que votre \
117 postulation pour l'offre d'emploi: " +
118 offre_emploi.nom + u" a été effectuée avec succès. Vous\
119 devriez être contacté sous peu par l'AUF. \n\n Merci \
120 pour votre intérêt envers l'AUF.",
d84c3a68 121 'test@auf.org',
89e948de 122 [candidat.email], fail_silently=False)
123
8ea41642 124 return redirect("admin:recrutement_offreemploi_changelist")
f6749f29 125 else:
126 messages.add_message(request, messages.ERROR,
127 'Il y a des erreurs dans le formulaire.')
8ea41642 128 else:
2adf9e0c 129 form = PostulerOffreEmploiForm(instance=candidat,
130 offre_emploi=offre_emploi)
2b3edf33 131 piecesForm = CandidatPieceForm(instance=candidat)
8ea41642 132
2b3edf33 133 vars.update(dict(form=form, candidat=candidat, piecesForm=piecesForm, ))
134
135 return render_to_response('recrutement/postuler_appel_offre.html', vars,
136 RequestContext(request))