From: Emilie Date: Fri, 9 Sep 2016 11:07:51 +0000 (+0200) Subject: JobOffer : send email notification if application is submitted X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=2afb3a63ced4c59a280808517f527f188943abcf;p=mezzo.git JobOffer : send email notification if application is submitted --- diff --git a/app/local_settings.py b/app/local_settings.py index 6883ac3c..cad3a8f6 100644 --- a/app/local_settings.py +++ b/app/local_settings.py @@ -61,6 +61,7 @@ FILEBROWSER_SELECT_FORMATS = { EMAIL_HOST = 'smtp.ircam.fr' EMAIL_PORT = '25' DEFAULT_FROM_EMAIL = 'www@ircam.fr' +DEFAULT_TO_EMAIL = 'zawadzki@ircam.fr' EMAIL_SUBJECT_PREFIX = "[IRCAM WWW]" SITE_TITLE = 'IRCAM' diff --git a/app/organization/job/views.py b/app/organization/job/views.py index a540c181..706c60ac 100644 --- a/app/organization/job/views.py +++ b/app/organization/job/views.py @@ -6,7 +6,12 @@ from django.views.generic import DetailView, ListView, TemplateView from django.views.generic.edit import CreateView from django.contrib import messages from django.core.urlresolvers import reverse, reverse_lazy +from django.template import Context +from django.template.loader import render_to_string, get_template +from django.core.mail import EmailMessage from django.utils.translation import ugettext_lazy as _ +from django.http import HttpResponse +from mezzanine.conf import settings from organization.job.models import JobOffer, JobResponse from organization.job.forms import JobResponseForm @@ -23,7 +28,7 @@ class JobOfferDetailView(CreateView): context = super(JobOfferDetailView, self).get_context_data(**kwargs) job_offer = JobOffer.objects.get(slug=self.kwargs['slug']) if job_offer : - context['job_offer'] = job_offer + context['job_offer'] = job_offer return context def get_initial(self): @@ -43,6 +48,9 @@ class JobOfferDetailView(CreateView): if ext_cv not in extention or ext_cl not in extention : messages.info(self.request, _("Only .pdf, .doc, .docx files allowed.")) return super(JobOfferDetailView, self).form_invalid(form) + + job_offer = JobOffer.objects.get(slug=self.kwargs['slug']) + email_application_notification(self.request, job_offer, form.cleaned_data) messages.info(self.request, _("You have successfully submitted your application.")) return super(JobOfferDetailView, self).form_valid(form) @@ -59,3 +67,24 @@ class JobOfferListView(ListView): def get_context_data(self, **kwargs): context = super(JobOfferListView, self).get_context_data(**kwargs) return context + + +def email_application_notification(request, job_offer, data): + subject = "Candidature > " + job_offer.title + to = [job_offer.email if job_offer.email else settings.DEFAULT_TO_EMAIL] + from_email = settings.DEFAULT_FROM_EMAIL + + ctx = { + 'first_name': data['first_name'], + 'last_name': data['last_name'], + 'email': data['email'], + } + + message = get_template('core/email/application_notification.html').render(Context(ctx)) + msg = EmailMessage(subject, message, to=to, from_email=from_email) + msg.attach(data['curriculum_vitae'].name, data['curriculum_vitae'].read(), data['curriculum_vitae'].content_type) + msg.attach(data['cover_letter'].name, data['cover_letter'].read(), data['cover_letter'].content_type) + msg.content_subtype = 'html' + msg.send() + + return HttpResponse('email_application_notification') diff --git a/app/templates/core/email/application_notification.html b/app/templates/core/email/application_notification.html new file mode 100644 index 00000000..08df9bf0 --- /dev/null +++ b/app/templates/core/email/application_notification.html @@ -0,0 +1,22 @@ + + + + + + + + + + +

Bonjour,

+ +

Une nouvelle candidature a été soumise :

+

Nom : {{ last_name }}

+

Prénom : {{ first_name }}

+

Email :{{ email }}

+

Le curriculum vitae ainsi que la lettre de motivation sont en pièces jointes.

+

Ces informations sont disponibles sur le backoffice de http://www.ircam.fr dans l'édition de l'offre d'emploi correspondante.

+ +

Bonne journée ! :)

+ +