Added proper email templates
[auf_rh_dae.git] / project / rh / admin.py
index bafdf51..74ce56d 100644 (file)
@@ -5,7 +5,7 @@ import reversion
 import itertools
 from ajax_select import make_ajax_form
 from auf.django.references import models as ref
-from django.core.mail import send_mail
+from django.core.mail import send_mail, EmailMessage
 from django.contrib.auth.admin import UserAdmin
 from django.contrib.auth.models import User
 from django import forms
@@ -15,6 +15,7 @@ from django.contrib.contenttypes.models import ContentType
 from django.conf import settings
 from django.db.models import Q, Count
 from django.template.defaultfilters import date
+from django.template import Context, loader
 from django.utils.formats import date_format
 
 from project import groups
@@ -1387,6 +1388,12 @@ def _communique(modaladmin, req, qs):
         changement_notifications__in=
         rh.ChangementPersonnelNotifications.objects.all()).distinct()
 
+    thead_colors = {
+        'NO': 'ff99ff',
+        'MO': 'ccccff',
+        'DE': 'ff99ff',
+        }
+
 
     for comb in combs:
         # qf c'est pour trouver les recipients.
@@ -1402,25 +1409,36 @@ def _communique(modaladmin, req, qs):
         types_dict = dict(rh.TYPES_CHANGEMENT)
 
         if len(recipients):
-            sujet = '[SGRH] Rapport des employés de type: %s' % (
-                ', '.join(
-                    [types_dict[c].lower() for c in
-                     comb]))
-            message = u''
+            ctx = {
+                'types': [
+                    ]
+                }
+
             for t in comb:
-                message += u'%s: \n' % (types_dict[t].decode('utf8'))
-                message += '\n'.join([u'\t%s %s, %s' % (
-                            x.dossier.employe.prenom,
-                            x.dossier.employe.nom,
-                            url_prefix + reverse(
-                                'admin:rh_dossier_change', args=[x.dossier.id]))
-                            for x in qs.filter(type__in=[t])])
-            send_mail(
+                changements = []
+                ctx['types'].append({
+                        'bgcolor': thead_colors[t],
+                        'name': types_dict[t],
+                        'changements': changements,
+                        })
+
+                for ch in qs.filter(type__in=[t]):
+                    changements.append(ch)
+                    
+
+            template = loader.get_template('email/mouvement_employe.html')
+            content = template.render(Context(ctx))
+
+            sujet = '[SGRH] ARRIVÉES - DÉPARTS - MOBILITÉS'
+
+            msg = EmailMessage(
                 sujet,
-                message,
+                content,
                 settings.SERVER_EMAIL,
                 [x.courriel for x in recipients],
-                fail_silently=False)
+                )
+            msg.content_subtype = "html"
+            msg.send()
         
     qs.update(
         communique=True,