From 6cd7c021a40a50e35ad5788d10a6357465c276ad Mon Sep 17 00:00:00 2001 From: maxbr Date: Mon, 26 Sep 2016 16:36:11 +0200 Subject: Restructure dashboard project for docker deploying Change-Id: I13cad51270504ee4bed8558598a8891af58a26ab Signed-off-by: maxbr --- pharos-dashboard/notification/__init__.py | 11 ----------- pharos-dashboard/notification/admin.py | 17 ---------------- pharos-dashboard/notification/apps.py | 18 ----------------- pharos-dashboard/notification/models.py | 32 ------------------------------ pharos-dashboard/notification/signals.py | 25 ----------------------- pharos-dashboard/notification/tasks.py | 33 ------------------------------- 6 files changed, 136 deletions(-) delete mode 100644 pharos-dashboard/notification/__init__.py delete mode 100644 pharos-dashboard/notification/admin.py delete mode 100644 pharos-dashboard/notification/apps.py delete mode 100644 pharos-dashboard/notification/models.py delete mode 100644 pharos-dashboard/notification/signals.py delete mode 100644 pharos-dashboard/notification/tasks.py (limited to 'pharos-dashboard/notification') 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() -- cgit 1.2.3-korg