diff options
author | maxbr <maxbr@mi.fu-berlin.de> | 2016-09-26 16:36:11 +0200 |
---|---|---|
committer | maxbr <maxbr@mi.fu-berlin.de> | 2016-09-26 16:36:11 +0200 |
commit | ff30b14a212f38cf59084d30e9f13f9f92d2be3b (patch) | |
tree | cbe10ef00ef2be5650bedb5b81e24bd3b205f52c /tools/pharos-dashboard/notification | |
parent | 3ebfdcbcc91202482edb3f63fedde48646728fcd (diff) |
Restructure dashboard project for docker deploying
Change-Id: I13cad51270504ee4bed8558598a8891af58a26ab
Signed-off-by: maxbr <maxbr@mi.fu-berlin.de>
Diffstat (limited to 'tools/pharos-dashboard/notification')
-rw-r--r-- | tools/pharos-dashboard/notification/__init__.py | 11 | ||||
-rw-r--r-- | tools/pharos-dashboard/notification/admin.py | 17 | ||||
-rw-r--r-- | tools/pharos-dashboard/notification/apps.py | 18 | ||||
-rw-r--r-- | tools/pharos-dashboard/notification/models.py | 32 | ||||
-rw-r--r-- | tools/pharos-dashboard/notification/signals.py | 25 | ||||
-rw-r--r-- | tools/pharos-dashboard/notification/tasks.py | 33 |
6 files changed, 0 insertions, 136 deletions
diff --git a/tools/pharos-dashboard/notification/__init__.py b/tools/pharos-dashboard/notification/__init__.py deleted file mode 100644 index 37dcbddf..00000000 --- a/tools/pharos-dashboard/notification/__init__.py +++ /dev/null @@ -1,11 +0,0 @@ -############################################################################## -# 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 -############################################################################## - - -default_app_config = 'notification.apps.NotificationConfig'
\ No newline at end of file diff --git a/tools/pharos-dashboard/notification/admin.py b/tools/pharos-dashboard/notification/admin.py deleted file mode 100644 index bcaa1ab7..00000000 --- a/tools/pharos-dashboard/notification/admin.py +++ /dev/null @@ -1,17 +0,0 @@ -############################################################################## -# 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.conf import settings -from django.contrib import admin - -from notification.models import BookingNotification - -if settings.DEBUG: - admin.site.register(BookingNotification)
\ No newline at end of file diff --git a/tools/pharos-dashboard/notification/apps.py b/tools/pharos-dashboard/notification/apps.py deleted file mode 100644 index 2de22c4e..00000000 --- a/tools/pharos-dashboard/notification/apps.py +++ /dev/null @@ -1,18 +0,0 @@ -############################################################################## -# 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.apps import AppConfig - - -class NotificationConfig(AppConfig): - name = 'notification' - - def ready(self): - import notification.signals #noqa
\ No newline at end of file diff --git a/tools/pharos-dashboard/notification/models.py b/tools/pharos-dashboard/notification/models.py deleted file mode 100644 index 2d199181..00000000 --- a/tools/pharos-dashboard/notification/models.py +++ /dev/null @@ -1,32 +0,0 @@ -############################################################################## -# 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 import models - -class BookingNotification(models.Model): - id = models.AutoField(primary_key=True) - type = models.CharField(max_length=100) - booking = models.ForeignKey('booking.Booking', on_delete=models.CASCADE) - submit_time = models.DateTimeField() - submitted = models.BooleanField(default=False) - - def get_content(self): - return { - 'start': self.booking.start.isoformat(), - 'end': self.booking.end.isoformat(), - 'user': self.booking.user.username, - 'purpose': self.booking.purpose - } - - def save(self, *args, **kwargs): - notifications = self.booking.bookingnotification_set.filter(type=self.type) - if notifications.count() > 1: - raise ValueError('Doubled Notification') - return super(BookingNotification, self).save(*args, **kwargs)
\ No newline at end of file diff --git a/tools/pharos-dashboard/notification/signals.py b/tools/pharos-dashboard/notification/signals.py deleted file mode 100644 index 936c25ba..00000000 --- a/tools/pharos-dashboard/notification/signals.py +++ /dev/null @@ -1,25 +0,0 @@ -############################################################################## -# 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 post_save -from django.dispatch import receiver - -from booking.models import Booking -from notification.models import BookingNotification - - -@receiver(post_save, sender=Booking) -def booking_notification_handler(sender, instance, **kwargs): - BookingNotification.objects.update_or_create( - booking=instance, type='booking_start', defaults={'submit_time': instance.start} - ) - BookingNotification.objects.update_or_create( - booking=instance, type='booking_end', defaults={'submit_time': instance.end} - )
\ No newline at end of file diff --git a/tools/pharos-dashboard/notification/tasks.py b/tools/pharos-dashboard/notification/tasks.py deleted file mode 100644 index 61ab14af..00000000 --- a/tools/pharos-dashboard/notification/tasks.py +++ /dev/null @@ -1,33 +0,0 @@ -############################################################################## -# 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 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() |