Lors de l'ajout d'un candidat, créer automatiquement une EvaluationCandidat, si l...
[auf_django_emploi.git] / auf / django / emploi / views.py
1 # -*- encoding: utf-8 -*-
2
3 from django.contrib import messages
4 from django.shortcuts import render_to_response, redirect, get_object_or_404
5 from django.template import Context, RequestContext, Template
6 from django.core.mail import EmailMultiAlternatives
7
8 from auf.django.emploi import models
9 from auf.django.emploi import forms
10
11 def postuler_appel_offre(request):
12 vars = dict()
13 offre_emploi = get_object_or_404(OffreEmploi, id=request.GET.get('id'))
14 candidat = Candidat()
15 candidat.offre_emploi = offre_emploi
16
17 if request.method == "POST":
18 form = PostulerOffreEmploiForm(request.POST,
19 instance=candidat, offre_emploi=offre_emploi)
20 piecesForm = CandidatPieceForm(request.POST, request.FILES,
21 instance=candidat)
22 if form.is_valid() and piecesForm.is_valid():
23 offre = form.save()
24 piecesForm.instance = offre
25 piecesForm.save()
26
27 courriel_template = CourrielTemplate.objects.\
28 get(nom_modele='Confirmation postulation (automatique)')
29 send_templated_email(candidat, courriel_template)
30
31 messages.add_message(request, messages.SUCCESS,
32 "Votre application à l'appel d'offre d'emploi a \
33 été effectuée.")
34 return redirect("admin:recrutement_offreemploi_changelist")
35 else:
36 messages.add_message(request, messages.ERROR,
37 'Il y a des erreurs dans le formulaire.')
38 else:
39 form = PostulerOffreEmploiForm(instance=candidat,
40 offre_emploi=offre_emploi)
41 piecesForm = CandidatPieceForm(instance=candidat)
42
43 vars.update(dict(form=form, candidat=candidat, piecesForm=piecesForm, ))
44
45 return render_to_response('recrutement/postuler_appel_offre.html', vars,
46 RequestContext(request))
47
48 def send_templated_email(candidat, template):
49 # Sujet
50 sujet_template = Template(template.sujet)
51 dict_sujet = {"offre_emploi": candidat.offre_emploi.nom,}
52 sujet = Context(dict_sujet)
53 # Plain text
54 texte_template = Template(template.plain_text)
55 dict_texte = {"nom_candidat": candidat.nom,
56 "prenom_candidat": candidat.prenom,
57 "offre_emploi": candidat.offre_emploi.nom,
58 "genre_candidat": "Monsieur" if candidat.genre == "M" \
59 else "Madame",
60 }
61 texte = Context(dict_texte)
62 # HTML text
63 html_template = Template(template.html)
64 texte_html = Context(dict_texte)
65 msg = EmailMultiAlternatives(sujet_template.render(sujet),
66 texte_template.render(texte),
67 'recrutement@auf.org',
68 [candidat.email])
69 msg.attach_alternative(texte_template.render(texte_html), "text/html")
70 msg.send()