summaryrefslogtreecommitdiffstats
path: root/pharos-dashboard/notification
diff options
context:
space:
mode:
authormaxbr <maxbr@mi.fu-berlin.de>2016-09-26 16:36:11 +0200
committermaxbr <maxbr@mi.fu-berlin.de>2016-09-26 16:36:11 +0200
commit6cd7c021a40a50e35ad5788d10a6357465c276ad (patch)
treec0b814e4d0dca4443ab468fd13c750c215ad81d0 /pharos-dashboard/notification
parent4ef75ec4b7012de37598ae4a99b0f5580b579bea (diff)
Restructure dashboard project for docker deploying
Change-Id: I13cad51270504ee4bed8558598a8891af58a26ab Signed-off-by: maxbr <maxbr@mi.fu-berlin.de>
Diffstat (limited to 'pharos-dashboard/notification')
-rw-r--r--pharos-dashboard/notification/__init__.py11
-rw-r--r--pharos-dashboard/notification/admin.py17
-rw-r--r--pharos-dashboard/notification/apps.py18
-rw-r--r--pharos-dashboard/notification/models.py32
-rw-r--r--pharos-dashboard/notification/signals.py25
-rw-r--r--pharos-dashboard/notification/tasks.py33
6 files changed, 0 insertions, 136 deletions
diff --git a/pharos-dashboard/notification/__init__.py b/pharos-dashboard/notification/__init__.py
deleted file mode 100644
index 37dcbdd..0000000
--- a/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/pharos-dashboard/notification/admin.py b/pharos-dashboard/notification/admin.py
deleted file mode 100644
index bcaa1ab..0000000
--- a/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/pharos-dashboard/notification/apps.py b/pharos-dashboard/notification/apps.py
deleted file mode 100644
index 2de22c4..0000000
--- a/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/pharos-dashboard/notification/models.py b/pharos-dashboard/notification/models.py
deleted file mode 100644
index 2d19918..0000000
--- a/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/pharos-dashboard/notification/signals.py b/pharos-dashboard/notification/signals.py
deleted file mode 100644
index 936c25b..0000000
--- a/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/pharos-dashboard/notification/tasks.py b/pharos-dashboard/notification/tasks.py
deleted file mode 100644
index 61ab14a..0000000
--- a/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()