diff options
author | Jack Morgan <jack.morgan@intel.com> | 2018-01-08 23:56:29 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@opnfv.org> | 2018-01-08 23:56:29 +0000 |
commit | ffc10727531acbb52f87c52f948e0158a18c65c9 (patch) | |
tree | 62905b84bce04e7ef1776888131e6051ba9500f2 /src/notifier/dispatchers.py | |
parent | 6173050b6bfc3d96d3056c5de4c927f1b461fe6e (diff) | |
parent | eb7cb88c62feae0b412f4ecc9a5e62c3f7bdc138 (diff) |
Merge "Implement Notification Framework with Initial Email Support"
Diffstat (limited to 'src/notifier/dispatchers.py')
-rw-r--r-- | src/notifier/dispatchers.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/notifier/dispatchers.py b/src/notifier/dispatchers.py new file mode 100644 index 0000000..64be2a5 --- /dev/null +++ b/src/notifier/dispatchers.py @@ -0,0 +1,34 @@ +############################################################################## +# Copyright (c) 2016 Max Breitenfeldt and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +from django.db.models.signals import pre_save +from django.dispatch import receiver +from django.contrib import messages +from django.core.mail import send_mail + +class DispatchHandler(): + + @receiver(pre_save, sender='notifier.Notifier') + def dispatch(sender, instance, *args, **kwargs): + try: + msg_type = getattr(DispatchHandler, instance.message_type) + msg_type(instance) + except AttributeError: + instance.msg_sent = 'no dispatcher by given name exists: sending by email' + email(instance) + + def email(instance): + if instance.msg_sent != 'no dispatcher by given name exists: sending by email': + instance.msg_sent = 'by email' + send_mail(instance.title,instance.content + + '\n\n This message pertains to the following resource: ' + + instance.resource.name,instance.sender,[instance.user.email_addr], fail_silently=False) + + def webnotification(instance): + instance.msg_sent='by web notification' |