--- 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)