]> git.parisson.com Git - mezzo.git/commitdiff
JobOffer : send email notification if application is submitted
authorEmilie <zawadzki@ircam.fr>
Fri, 9 Sep 2016 11:07:51 +0000 (13:07 +0200)
committerEmilie <zawadzki@ircam.fr>
Fri, 9 Sep 2016 11:07:51 +0000 (13:07 +0200)
app/local_settings.py
app/organization/job/views.py
app/templates/core/email/application_notification.html [new file with mode: 0644]

index 6883ac3c356cae8ae22696e57ec5b0bbc52e71e9..cad3a8f643a514b00b8bee60c43e8f99a9d7adb5 100644 (file)
@@ -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'
index a540c18172f4ab268995b062dfb8ff9cb356c3fa..706c60ac4efd4a622038198acb7d08035e8858e6 100644 (file)
@@ -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 (file)
index 0000000..08df9bf
--- /dev/null
@@ -0,0 +1,22 @@
+
+
+<!doctype html>
+
+<html lang="en">
+<head>
+  <meta charset="utf-8">
+</head>
+
+<body>
+  <p>Bonjour,</p>
+
+  <p>Une nouvelle candidature a été soumise :</p>
+  <p><strong>Nom : {{ last_name }}</strong></p>
+  <p><strong>Prénom : {{ first_name }}</strong></p>
+  <p><strong>Email :{{ email }}</strong></p>
+  <p>Le curriculum vitae ainsi que la lettre de motivation sont en pièces jointes.</p>
+  <p>Ces informations sont disponibles sur le backoffice de <a href="http://www.ircam.fr" title="site de l'ircam">http://www.ircam.fr</a> dans l'édition de l'offre d'emploi correspondante.</p>
+
+  <p>Bonne journée ! :)</p>
+</body>
+</html>