Correction à l'API
[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
32834000
NBV
6from django.core.urlresolvers import reverse
7from django.http import HttpResponse, HttpResponseRedirect
89e948de 8from django.shortcuts import render_to_response, redirect, get_object_or_404
32834000
NBV
9from django.template import Context, RequestContext, Template
10from django.core.mail import EmailMultiAlternatives
6f2d5d58 11
362a3534 12from forms import *
13from models import *
f6724c20 14from recrutement.workflow import grp_evaluateurs_recrutement
a084e988 15from auf.django.emploi import views as emp
6f2d5d58 16
17def index(request):
362a3534 18 return render_to_response('recrutement/index.html', {},
19 RequestContext(request))
20
32834000
NBV
21def selectionner_template(request):
22 candidat_ids = request.GET.get('ids')
23 if request.method == "POST":
24 form = CandidatCourrielTemplateForm(request.POST)
25 if form.is_valid():
26 form.save()
27 courriel_template_id = form.get_template()
28
29 return HttpResponseRedirect(reverse('envoyer_courriel_candidats')+
dc7faf2b 30 "?ids_cand=%s&id_temp=%s" % (candidat_ids, courriel_template_id))
32834000
NBV
31 else:
32 form = CandidatCourrielTemplateForm()
33
34 c = {'form' : form}
35 return render_to_response("recrutement/selectionner_template.html",
36 Context(c), context_instance = RequestContext(request))
37
d84c3a68 38def envoyer_courriel_candidats(request):
32834000 39 candidat_ids = request.GET.get('ids_cand').split(',')
d84c3a68 40 candidats = Candidat.objects.filter(id__in=candidat_ids)
32834000
NBV
41 template_id = request.GET.get('id_temp')
42 template = CourrielTemplate.objects.get(id=template_id)
4e8340cf 43
d84c3a68 44 if request.method == "POST":
32834000
NBV
45 form = CandidatCourrielForm(request.POST, instance=template,
46 candidats=candidats, template=template)
47
d84c3a68 48 if form.is_valid():
49 form.save()
32834000
NBV
50 courriel_template = CourrielTemplate()
51 courriel_template.nom_modele = template.nom_modele
52 courriel_template.sujet = form.data['sujet']
53 courriel_template.plain_text = form.data['plain_text']
54 courriel_template.html = form.data['html']
55 for cand in candidats:
a084e988 56 emp.send_templated_email(cand, courriel_template)
d84c3a68 57 messages.add_message(request, messages.SUCCESS,
32834000 58 "Le email a été envoyé aux candidats.")
d84c3a68 59 return redirect("admin:recrutement_candidat_changelist")
60 else:
32834000
NBV
61 form = CandidatCourrielForm(candidats=candidats, template=template,
62 initial={'sujet': template.sujet,
63 'plain_text': template.plain_text,
64 'html': template.html})
d84c3a68 65
66 c = {'form' : form}
67 return render_to_response("recrutement/envoyer_courriel_candidats.html",
68 Context(c), context_instance = RequestContext(request))
69
8ea41642 70def postuler_appel_offre(request):
2b3edf33 71 vars = dict()
8ea41642 72 offre_emploi = get_object_or_404(OffreEmploi, id=request.GET.get('id'))
73 candidat = Candidat()
74 candidat.offre_emploi = offre_emploi
2b3edf33 75
8ea41642 76 if request.method == "POST":
f6749f29 77 form = PostulerOffreEmploiForm(request.POST,
2adf9e0c 78 instance=candidat, offre_emploi=offre_emploi)
79 piecesForm = CandidatPieceForm(request.POST, request.FILES,
80 instance=candidat)
2b3edf33 81 if form.is_valid() and piecesForm.is_valid():
f6749f29 82 offre = form.save()
83 piecesForm.instance = offre
89e948de 84 piecesForm.save()
32834000
NBV
85
86 courriel_template = CourrielTemplate.objects.\
87 get(nom_modele='Confirmation postulation (automatique)')
88 send_templated_email(candidat, courriel_template)
89
8ea41642 90 messages.add_message(request, messages.SUCCESS,
91 "Votre application à l'appel d'offre d'emploi a \
32834000 92 été effectuée.")
8ea41642 93 return redirect("admin:recrutement_offreemploi_changelist")
f6749f29 94 else:
95 messages.add_message(request, messages.ERROR,
96 'Il y a des erreurs dans le formulaire.')
8ea41642 97 else:
2adf9e0c 98 form = PostulerOffreEmploiForm(instance=candidat,
99 offre_emploi=offre_emploi)
2b3edf33 100 piecesForm = CandidatPieceForm(instance=candidat)
8ea41642 101
2b3edf33 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))
b903198b 106
514db699
NBV
107def affecter_evaluateurs_offre_emploi(request):
108 offre_emploi_ids = request.GET.get('ids').split(',')
109 offres_emploi = OffreEmploi.objects.filter(id__in=offre_emploi_ids)
514db699 110 if request.method == "POST":
540dfae4 111 form = EvaluateurForm(request.POST, offres_emploi=offres_emploi)
514db699
NBV
112 if form.is_valid():
113 form.save()
114 messages.add_message(request, messages.SUCCESS,
540dfae4 115 "Les évaluateurs ont été affectés aux offres d'emploi.")
514db699
NBV
116 return redirect("admin:recrutement_offreemploi_changelist")
117 else:
540dfae4 118 form = EvaluateurForm(offres_emploi=offres_emploi)
514db699
NBV
119
120 c = {'form' : form}
121 return render_to_response("recrutement/affecter_evaluateurs.html",
122 Context(c), context_instance = RequestContext(request))