diff options
Diffstat (limited to 'tools/pharos-dashboard/src/notification/tasks.py')
-rw-r--r-- | tools/pharos-dashboard/src/notification/tasks.py | 40 |
1 files changed, 28 insertions, 12 deletions
diff --git a/tools/pharos-dashboard/src/notification/tasks.py b/tools/pharos-dashboard/src/notification/tasks.py index 4173433c..e2b34ca9 100644 --- a/tools/pharos-dashboard/src/notification/tasks.py +++ b/tools/pharos-dashboard/src/notification/tasks.py @@ -8,6 +8,8 @@ ############################################################################## +import os +import sys from datetime import timedelta from celery import shared_task @@ -15,19 +17,33 @@ from django.conf import settings from django.utils import timezone from notification.models import BookingNotification -from notification_framework.notification import Notification + +# this adds the top level directory to the python path, this is needed so that we can access the +# notification library +sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..')) + +from dashboard_notification.notification import Notification, Message @shared_task def send_booking_notifications(): - messaging = Notification(dashboard_url=settings.RABBITMQ_URL) - - now = timezone.now() - notifications = BookingNotification.objects.filter(submitted=False, - submit_time__gt=now, - submit_time__lt=now + timedelta(minutes=5)) - for notification in notifications: - messaging.send(notification.type, notification.booking.resource.name, - notification.get_content()) - notification.submitted = True - notification.save() + with Notification(dashboard_url=settings.RABBITMQ_URL) as messaging: + now = timezone.now() + notifications = BookingNotification.objects.filter(submitted=False, + submit_time__gt=now - timedelta(minutes=1), + submit_time__lt=now + timedelta(minutes=5)) + for notification in notifications: + message = Message(type=notification.type, topic=notification.booking.resource.name, + content=notification.get_content()) + messaging.send(message) + notification.submitted = True + notification.save() + +@shared_task +def notification_debug(): + with Notification(dashboard_url=settings.RABBITMQ_URL) as messaging: + notifications = BookingNotification.objects.all() + for notification in notifications: + message = Message(type=notification.type, topic=notification.booking.resource.name, + content=notification.get_content()) + messaging.send(message) |