1699: Première partie-Voir les évaluateurs qui n'ont pas encore donné de note. 1700...
[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 from recrutement.workflow import grp_evaluateurs_recrutement
14
15 def index(request):
16 return render_to_response('recrutement/index.html', {},
17 RequestContext(request))
18
19 def afficher_candidat(request):
20 candidat = get_object_or_404(Candidat, id=request.GET.get('id'))
21 var = {'candidat': candidat,}
22 return render_to_response("recrutement/afficher_candidat.html", var,
23 RequestContext(request))
24
25 def affecter_evaluateurs_candidats(request):
26 candidat_ids = request.GET.get('ids').split(',')
27 candidats = Candidat.objects.filter(id__in=candidat_ids)
28 if request.method == "POST":
29 form = EvaluateurForm(request.POST, candidats=candidats)
30 if form.is_valid():
31 form.save()
32 messages.add_message(request, messages.SUCCESS,
33 "Les évaluateurs ont été affectés aux candidats.")
34 return redirect("admin:recrutement_candidat_changelist")
35 else:
36 form = EvaluateurForm(candidats=candidats)
37
38 c = {'form' : form}
39 return render_to_response("recrutement/affecter_evaluateurs.html",
40 Context(c), context_instance = RequestContext(request))
41
42 def envoyer_courriel_candidats(request):
43 candidat_ids = request.GET.get('ids').split(',')
44 candidats = Candidat.objects.filter(id__in=candidat_ids)
45
46 if request.method == "POST":
47 form = CandidatCourrielForm(request.POST, candidats=candidats)
48 if form.is_valid():
49 form.save()
50 messages.add_message(request, messages.SUCCESS,
51 "Les évaluateurs ont été affectés aux candidats.")
52 return redirect("admin:recrutement_candidat_changelist")
53 else:
54 form = CandidatCourrielForm(candidats=candidats)
55
56 c = {'form' : form}
57 return render_to_response("recrutement/envoyer_courriel_candidats.html",
58 Context(c), context_instance = RequestContext(request))
59
60 def postuler_appel_offre(request):
61
62 vars = dict()
63 offre_emploi = get_object_or_404(OffreEmploi, id=request.GET.get('id'))
64 candidat = Candidat()
65 candidat.offre_emploi = offre_emploi
66
67 if request.method == "POST":
68 form = PostulerOffreEmploiForm(request.POST,
69 instance=candidat, offre_emploi=offre_emploi)
70 piecesForm = CandidatPieceForm(request.POST, request.FILES,
71 instance=candidat)
72 print form.errors
73 if form.is_valid() and piecesForm.is_valid():
74 offre = form.save()
75 piecesForm.instance = offre
76 piecesForm.save()
77 messages.add_message(request, messages.SUCCESS,
78 "Votre application à l'appel d'offre d'emploi a \
79 été effectuée.")
80
81 # Envoi d'un email de confirmation
82 send_mail(u"Confirmation de postulation pour le poste \
83 de " + offre_emploi.nom,
84 u"Bonjour " + candidat.prenom + " " + candidat.nom +
85 u", \nceci est un email pour vous confirmer que votre \
86 postulation pour l'offre d'emploi: " +
87 offre_emploi.nom + u" a été effectuée avec succès. Vous\
88 devriez être contacté sous peu par l'AUF. \n\n Merci \
89 pour votre intérêt envers l'AUF.",
90 'test@auf.org',
91 [candidat.email], fail_silently=False)
92
93 return redirect("admin:recrutement_offreemploi_changelist")
94 else:
95 messages.add_message(request, messages.ERROR,
96 'Il y a des erreurs dans le formulaire.')
97 else:
98 form = PostulerOffreEmploiForm(instance=candidat,
99 offre_emploi=offre_emploi)
100 piecesForm = CandidatPieceForm(instance=candidat)
101
102 vars.update(dict(form=form, candidat=candidat, piecesForm=piecesForm, ))
103
104 return render_to_response('recrutement/postuler_appel_offre.html', vars,
105 RequestContext(request))
106
107 def assigner_evaluateurs(request):
108 pass