src/hdalab/signals.py
changeset 530 5d3b4e1e5b34
parent 492 19220d52bce7
child 693 09e00f38d177
--- a/src/hdalab/signals.py	Tue Mar 10 18:41:29 2015 +0100
+++ b/src/hdalab/signals.py	Wed Mar 11 17:05:08 2015 +0100
@@ -5,16 +5,17 @@
 @author: ymh
 '''
 import logging
+import os
+from renkanmanager.models import Renkan
 
 from django.conf import settings
 from django.core.mail.message import EmailMultiAlternatives
 from django.db.models.signals import post_save, pre_delete
 from django.template.base import TemplateDoesNotExist
 from django.template.loader import render_to_string
-from django.utils.html import strip_tags
+import premailer
 
 from hdalab.models.renkan import HdalabRenkan, HdalabRenkanStateTransition
-from renkanmanager.models import Renkan
 
 
 logger = logging.getLogger(__name__)
@@ -23,6 +24,7 @@
     (HdalabRenkan.MODERATED,HdalabRenkan.PUBLISHED): ("mails/published_renkan", "Renkan publié"),
     (HdalabRenkan.MODERATED,HdalabRenkan.REJECTED): ("mails/rejected_renkan", "Renkan rejeté"),
     (HdalabRenkan.PUBLISHED, HdalabRenkan.EDITION): ("mails/unpublished_renkan", "Renkan dépublié"),
+    (HdalabRenkan.PUBLISHED, HdalabRenkan.REJECTED): ("mails/rejected_renkan", "Renkan rejeté"),
 }
 
 
@@ -40,17 +42,19 @@
         template_name, subject = MAIL_TEMPLATES[template_key]
 #        template = loader.get_template(template_name)
         context = {'renkan_state': renkan_state, 'WEB_URL': settings.WEB_URL}
-        msg_html = render_to_string(template_name+".txt", context)
-        msg_txt = render_to_string(template_name+".html", context)
+        msg_html = premailer.transform(render_to_string(template_name+".html", context), base_url=os.path.join(settings.STATIC_ROOT,'site'))
+        msg_txt = render_to_string(template_name+".txt", context)
     except TemplateDoesNotExist:
         logger.error("Mail template %s for state %s not found", MAIL_TEMPLATES[template_key], HdalabRenkan.STATE_CHOICES_DICT[renkan_state.to_state])
         return
-    except Exception as e:
-        logger.error("Error rendering template %s for state %s : %r", MAIL_TEMPLATES[template_key], HdalabRenkan.STATE_CHOICES_DICT[renkan_state.to_state], e)
+#    except Exception as e:
+#        logger.error("Error rendering template %s for state %s : %r", MAIL_TEMPLATES[template_key], HdalabRenkan.STATE_CHOICES_DICT[renkan_state.to_state], e)
+#        return
+#        raise e
     
     if msg_txt and msg_html and renkan_state.renkan and renkan_state.renkan.renkan and renkan_state.renkan.renkan.owner and renkan_state.renkan.renkan.owner.email:
         logger.debug("Sending following mail to %s : %s", renkan_state.renkan.renkan.owner.email, msg_txt)
-        emsg = EmailMultiAlternatives(subject, strip_tags(msg_txt), settings.DEFAULT_FROM_EMAIL, [renkan_state.renkan.renkan.owner.email])
+        emsg = EmailMultiAlternatives(subject, msg_txt, settings.DEFAULT_FROM_EMAIL, [renkan_state.renkan.renkan.owner.email])
         emsg.attach_alternative(msg_html, "text/html")
         emsg.send(fail_silently=True)