src/hdalab/models/renkan.py
changeset 474 7ec378cc1f8a
parent 473 f469ab22542d
child 492 19220d52bce7
--- a/src/hdalab/models/renkan.py	Wed Mar 04 15:24:23 2015 +0100
+++ b/src/hdalab/models/renkan.py	Thu Mar 05 13:45:11 2015 +0100
@@ -61,31 +61,33 @@
         app_label = 'hdalab'
 
 MAIL_TEMPLATES = {
-    HdalabRenkan.PUBLISHED: ("mails/published_renkan", "Renkan publié"),
-    HdalabRenkan.REJECTED: ("mails/rejected_renkan", "Renkan rejeté")
+    (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.to_state not in MAIL_TEMPLATES:
+    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[renkan_state.to_state]
+        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[renkan_state.to_state], HdalabRenkan.STATE_CHOICES_DICT[renkan_state.to_state])
+        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[renkan_state.to_state], HdalabRenkan.STATE_CHOICES_DICT[renkan_state.to_state], 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)