1 # -*- encoding: utf-8 -*-
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
8 from auf
.django
.emploi
import models
9 from auf
.django
.emploi
import forms
11 def postuler_appel_offre(request
):
13 offre_emploi
= get_object_or_404(OffreEmploi
, id=request
.GET
.get('id'))
15 candidat
.offre_emploi
= offre_emploi
17 if request
.method
== "POST":
18 form
= PostulerOffreEmploiForm(request
.POST
,
19 instance
=candidat
, offre_emploi
=offre_emploi
)
20 piecesForm
= CandidatPieceForm(request
.POST
, request
.FILES
,
22 if form
.is_valid() and piecesForm
.is_valid():
24 piecesForm
.instance
= offre
27 courriel_template
= CourrielTemplate
.objects
.\
28 get(nom_modele
='Confirmation postulation (automatique)')
29 send_templated_email(candidat
, courriel_template
)
31 messages
.add_message(request
, messages
.SUCCESS
,
32 "Votre application à l'appel d'offre d'emploi a \
34 return redirect("admin:recrutement_offreemploi_changelist")
36 messages
.add_message(request
, messages
.ERROR
,
37 'Il y a des erreurs dans le formulaire.')
39 form
= PostulerOffreEmploiForm(instance
=candidat
,
40 offre_emploi
=offre_emploi
)
41 piecesForm
= CandidatPieceForm(instance
=candidat
)
43 vars.update(dict(form
=form
, candidat
=candidat
, piecesForm
=piecesForm
, ))
45 return render_to_response('recrutement/postuler_appel_offre.html', vars,
46 RequestContext(request
))
48 def send_templated_email(candidat
, template
):
50 sujet_template
= Template(template
.sujet
)
51 dict_sujet
= {"offre_emploi": candidat
.offre_emploi
.nom
,}
52 sujet
= Context(dict_sujet
)
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" \
61 texte
= Context(dict_texte
)
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',
69 msg
.attach_alternative(texte_template
.render(texte_html
), "text/html")