1780: Offre emploi: Empêcher de mettre une date limite ultérieure à la date de début...
[auf_django_emploi.git] / auf / django / emploi / views.py
... / ...
CommitLineData
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 auf.django.emploi import models
9from auf.django.emploi import forms
10
11def 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
48def 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()