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