diff options
author | Sawyer Bergeron <sbergeron@iol.unh.edu> | 2017-12-15 14:35:40 -0500 |
---|---|---|
committer | Sawyer Bergeron <sbergeron@iol.unh.edu> | 2018-01-02 22:29:22 +0000 |
commit | aebb690bd07460a9f61db36e46d79d502e7fc247 (patch) | |
tree | 908774bba0d7d0297f512ce9cf5eef7c5f439e0b /dashboard/src/notifier/dispatchers.py | |
parent | ac0ae9e3069e582fcaeaff35f28a5b45343bae84 (diff) |
Implement Notification Framework with Initial Email Support
JIRA: None
Notification/notifier objects are now created with title,
content, sender, associated resource, and recipient and there is
now support for emails at the very least to be sent as notifications.
Change-Id: I456cf0e901d9a1e2a1e7d187dcc03d28fca003fb
Signed-off-by: Sawyer Bergeron <sbergeron@iol.unh.edu>
Diffstat (limited to 'dashboard/src/notifier/dispatchers.py')
-rw-r--r-- | dashboard/src/notifier/dispatchers.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/dashboard/src/notifier/dispatchers.py b/dashboard/src/notifier/dispatchers.py new file mode 100644 index 0000000..64be2a5 --- /dev/null +++ b/dashboard/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' |