1 # -*- encoding: utf-8 -*-
3 from django
.contrib
import messages
4 from django
.contrib
.auth
.models
import User
5 from django
.core
.mail
import send_mail
6 from django
.core
.urlresolvers
import reverse
7 from django
.http
import HttpResponse
, HttpResponseRedirect
8 from django
.shortcuts
import render_to_response
, redirect
, get_object_or_404
9 from django
.template
import Context
, RequestContext
, Template
10 from django
.core
.mail
import EmailMultiAlternatives
14 from recrutement
.workflow
import grp_evaluateurs_recrutement
17 return render_to_response('recrutement/index.html', {},
18 RequestContext(request
))
20 def selectionner_template(request
):
21 candidat_ids
= request
.GET
.get('ids')
22 if request
.method
== "POST":
23 form
= CandidatCourrielTemplateForm(request
.POST
)
26 courriel_template_id
= form
.get_template()
28 return HttpResponseRedirect(reverse('envoyer_courriel_candidats')+
29 "?ids_cand=%s&id_temp=%s" % (candidat_ids
, courriel_template_id
))
31 form
= CandidatCourrielTemplateForm()
34 return render_to_response("recrutement/selectionner_template.html",
35 Context(c
), context_instance
= RequestContext(request
))
37 def envoyer_courriel_candidats(request
):
38 candidat_ids
= request
.GET
.get('ids_cand').split(',')
39 candidats
= Candidat
.objects
.filter(id__in
=candidat_ids
)
40 template_id
= request
.GET
.get('id_temp')
41 template
= CourrielTemplate
.objects
.get(id=template_id
)
43 if request
.method
== "POST":
44 form
= CandidatCourrielForm(request
.POST
, instance
=template
,
45 candidats
=candidats
, template
=template
)
49 courriel_template
= CourrielTemplate()
50 courriel_template
.nom_modele
= template
.nom_modele
51 courriel_template
.sujet
= form
.data
['sujet']
52 courriel_template
.plain_text
= form
.data
['plain_text']
53 courriel_template
.html
= form
.data
['html']
54 for cand
in candidats
:
55 send_templated_email(cand
, courriel_template
)
56 messages
.add_message(request
, messages
.SUCCESS
,
57 "Le email a été envoyé aux candidats.")
58 return redirect("admin:recrutement_candidat_changelist")
60 form
= CandidatCourrielForm(candidats
=candidats
, template
=template
,
61 initial
={'sujet': template
.sujet
,
62 'plain_text': template
.plain_text
,
63 'html': template
.html
})
66 return render_to_response("recrutement/envoyer_courriel_candidats.html",
67 Context(c
), context_instance
= RequestContext(request
))
69 def affecter_evaluateurs_offre_emploi(request
):
70 offre_emploi_ids
= request
.GET
.get('ids').split(',')
71 offres_emploi
= OffreEmploi
.objects
.filter(id__in
=offre_emploi_ids
)
72 if request
.method
== "POST":
73 form
= EvaluateurForm(request
.POST
, offres_emploi
=offres_emploi
)
76 messages
.add_message(request
, messages
.SUCCESS
,
77 "Les évaluateurs ont été affectés aux offres d'emploi.")
78 return redirect("admin:recrutement_offreemploi_changelist")
80 form
= EvaluateurForm(offres_emploi
=offres_emploi
)
83 return render_to_response("recrutement/affecter_evaluateurs.html",
84 Context(c
), context_instance
= RequestContext(request
))
86 def send_templated_email(candidat
, template
):
88 sujet_template
= Template(template
.sujet
)
89 dict_sujet
= {"offre_emploi": candidat
.offre_emploi
.nom
,}
90 sujet
= Context(dict_sujet
)
92 texte_template
= Template(template
.plain_text
)
93 dict_texte
= {"nom_candidat": candidat
.nom
,
94 "prenom_candidat": candidat
.prenom
,
95 "offre_emploi": candidat
.offre_emploi
.nom
,
96 "genre_candidat": "Monsieur" if candidat
.genre
== "M" \
99 texte
= Context(dict_texte
)
101 html_template
= Template(template
.html
)
102 texte_html
= Context(dict_texte
)
103 msg
= EmailMultiAlternatives(sujet_template
.render(sujet
),
104 texte_template
.render(texte
),
105 'recrutement@auf.org',
107 msg
.attach_alternative(texte_template
.render(texte_html
), "text/html")