diff -r 81acd8021764 -r 96ddbedf93cb src/hdalab/models/renkan.py --- a/src/hdalab/models/renkan.py Mon Mar 09 11:03:57 2015 +0100 +++ b/src/hdalab/models/renkan.py Mon Mar 09 11:05:44 2015 +0100 @@ -8,12 +8,7 @@ from renkanmanager.models import Renkan from django.conf import settings -from django.core.mail.message import EmailMultiAlternatives from django.db import models -from django.db.models.signals import post_save -from django.template.base import TemplateDoesNotExist -from django.template.loader import render_to_string -from django.utils.html import strip_tags from django.utils.translation import ugettext as _ @@ -50,7 +45,7 @@ class HdalabRenkanStateTransition(models.Model): - renkan = models.ForeignKey(HdalabRenkan, blank=False, null=False) + renkan = models.ForeignKey(HdalabRenkan, blank=False, null=False, related_name='states') from_state = models.IntegerField(choices=HdalabRenkan.STATE_CHOICES, default=1, blank=False, null=False) to_state = models.IntegerField(choices=HdalabRenkan.STATE_CHOICES, default=1, blank=False, null=False) ts = models.DateTimeField(auto_now_add=True, blank=False, null=False) @@ -59,50 +54,4 @@ class Meta: app_label = 'hdalab' - -MAIL_TEMPLATES = { - (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é"), -} - - -#TODO put into queue -def send_renkan_moderation_messages(sender, **kwargs): - renkan_state = kwargs.get('instance', None) - if not renkan_state or (renkan_state.from_state,renkan_state.to_state) not in MAIL_TEMPLATES: - return - - template_key = (renkan_state.from_state,renkan_state.to_state) - msg_txt = "" - msg_html = "" - subject = "" - try: - 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) - 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) - - 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.attach_alternative(msg_html, "text/html") - emsg.send(fail_silently=True) - - -def queue_renkan_rendering(sender, **kwargs): - pass - #check state - #queue renkan for endering - - -RENKAN_MODERATION_UUID = "e2f84503-609b-4efa-819d-908e2efe7b1b" -RENKAN_RENDERING_UUID = "b8830748-be2b-479a-8aef-c8d952437b2f" - -post_save.connect(send_renkan_moderation_messages, sender=HdalabRenkanStateTransition, dispatch_uid=RENKAN_MODERATION_UUID) + ordering = ["-ts"]