diff -r f479d60ca502 -r 5d3b4e1e5b34 src/hdalab/signals.py --- 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)