summaryrefslogtreecommitdiffstats
path: root/pharos-dashboard/notification/tasks.py
diff options
context:
space:
mode:
authormaxbr <maxbr@mi.fu-berlin.de>2016-09-19 10:13:26 +0200
committermaxbr <maxbr@mi.fu-berlin.de>2016-09-19 10:13:26 +0200
commitd77560162ebf4805bab5eaaf051467590f2b414f (patch)
treedb76388904b975891d308dc10de4e48b5f905a54 /pharos-dashboard/notification/tasks.py
parent3666bf8b35db7a4fb22e8f795185c599f510443f (diff)
Send notifications for booking start and end
JIRA: PHAROS-265 Change-Id: I53a37ac31dda70935752afc6da3315e6dfcbc90f Signed-off-by: maxbr <maxbr@mi.fu-berlin.de>
Diffstat (limited to 'pharos-dashboard/notification/tasks.py')
-rw-r--r--pharos-dashboard/notification/tasks.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/pharos-dashboard/notification/tasks.py b/pharos-dashboard/notification/tasks.py
new file mode 100644
index 0000000..ab3bddc
--- /dev/null
+++ b/pharos-dashboard/notification/tasks.py
@@ -0,0 +1,23 @@
+from celery import shared_task
+from datetime import timedelta
+
+from django.conf import settings
+from django.utils import timezone
+
+from notification.models import BookingNotification
+from notification_framework.notification import Notification
+
+
+@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()