-# -*- encoding: utf-8 -*-
-
-from django.contrib import messages
-from django.shortcuts import render_to_response, redirect, get_object_or_404
-from django.template import Context, RequestContext, Template
-from django.core.mail import EmailMultiAlternatives
-
-from auf.django.emploi import models
-from auf.django.emploi import forms
-
-def postuler_appel_offre(request):
- vars = dict()
- offre_emploi = get_object_or_404(OffreEmploi, id=request.GET.get('id'))
- candidat = Candidat()
- candidat.offre_emploi = offre_emploi
-
- if request.method == "POST":
- form = PostulerOffreEmploiForm(request.POST,
- instance=candidat, offre_emploi=offre_emploi)
- piecesForm = CandidatPieceForm(request.POST, request.FILES,
- instance=candidat)
- if form.is_valid() and piecesForm.is_valid():
- offre = form.save()
- piecesForm.instance = offre
- piecesForm.save()
-
- courriel_template = CourrielTemplate.objects.\
- get(nom_modele='Confirmation postulation (automatique)')
- send_templated_email(candidat, courriel_template)
-
- messages.add_message(request, messages.SUCCESS,
- "Votre application à l'appel d'offre d'emploi a \
- été effectuée.")
- return redirect("admin:recrutement_offreemploi_changelist")
- else:
- messages.add_message(request, messages.ERROR,
- 'Il y a des erreurs dans le formulaire.')
- else:
- form = PostulerOffreEmploiForm(instance=candidat,
- offre_emploi=offre_emploi)
- piecesForm = CandidatPieceForm(instance=candidat)
-
- vars.update(dict(form=form, candidat=candidat, piecesForm=piecesForm, ))
-
- return render_to_response('recrutement/postuler_appel_offre.html', vars,
- RequestContext(request))
-
-def send_templated_email(candidat, template):
- # Sujet
- sujet_template = Template(template.sujet)
- dict_sujet = {"offre_emploi": candidat.offre_emploi.nom,}
- sujet = Context(dict_sujet)
- # Plain text
- texte_template = Template(template.plain_text)
- dict_texte = {"nom_candidat": candidat.nom,
- "prenom_candidat": candidat.prenom,
- "offre_emploi": candidat.offre_emploi.nom,
- "genre_candidat": "Monsieur" if candidat.genre == "M" \
- else "Madame",
- }
- texte = Context(dict_texte)
- # HTML text
- html_template = Template(template.html)
- texte_html = Context(dict_texte)
- msg = EmailMultiAlternatives(sujet_template.render(sujet),
- texte_template.render(texte),
- 'recrutement@auf.org',
- [candidat.email])
- msg.attach_alternative(texte_template.render(texte_html), "text/html")
- msg.send()