summaryrefslogtreecommitdiffstats
path: root/dashboard/src/api
diff options
context:
space:
mode:
authorParker Berberian <pberberian@iol.unh.edu>2018-10-24 15:12:32 -0400
committerParker Berberian <pberberian@iol.unh.edu>2018-11-07 10:32:56 -0500
commit81cfb043f06ab71da7c021a063f80f6df58305cc (patch)
tree862b6b8a653298d503ecbf082e747211e6d33442 /dashboard/src/api
parentd6e337fa62c32155941333fe8fedc28e4f663700 (diff)
Rewrite Notification subsystem
In this commit: - delete a lot of really bad and / or unused code - redesign a much simpler Notification model - create and send notifications to the user's inbox on booking start & end - migrations - emails user when booking is ready and when it ends Not in this commit: - Creating notifications from lab messages - warning messages when a booking is about to end - creating "summary" notifications when e.g. a booking has been fulfilled by a lab Change-Id: I69b4dc36c3f2bce76d810106baadeef5a562cc7d Signed-off-by: Parker Berberian <pberberian@iol.unh.edu>
Diffstat (limited to 'dashboard/src/api')
-rw-r--r--dashboard/src/api/models.py12
-rw-r--r--dashboard/src/api/serializers/old_serializers.py7
-rw-r--r--dashboard/src/api/urls.py1
-rw-r--r--dashboard/src/api/views.py10
4 files changed, 15 insertions, 15 deletions
diff --git a/dashboard/src/api/models.py b/dashboard/src/api/models.py
index 7448ac4..9a7f775 100644
--- a/dashboard/src/api/models.py
+++ b/dashboard/src/api/models.py
@@ -217,6 +217,18 @@ class Job(models.Model):
tasklist += list(cls.objects.filter(job=self).filter(status=status))
return tasklist
+ def is_fulfilled(self):
+ """
+ This method should return true if all of the job's tasks are done,
+ and false otherwise
+ """
+ my_tasks = self.get_tasklist()
+ for task in my_tasks:
+ if task.status != JobStatus.DONE:
+ return False
+ return True
+
+
def get_delta(self, status):
d = {}
j = {}
diff --git a/dashboard/src/api/serializers/old_serializers.py b/dashboard/src/api/serializers/old_serializers.py
index f50b90b..0944881 100644
--- a/dashboard/src/api/serializers/old_serializers.py
+++ b/dashboard/src/api/serializers/old_serializers.py
@@ -11,13 +11,6 @@
from rest_framework import serializers
from account.models import UserProfile
-from notifier.models import Notifier
-
-
-class NotifierSerializer(serializers.ModelSerializer):
- class Meta:
- model = Notifier
- fields = ('id', 'title', 'content', 'user', 'sender', 'message_type', 'msg_sent')
class UserSerializer(serializers.ModelSerializer):
diff --git a/dashboard/src/api/urls.py b/dashboard/src/api/urls.py
index 94f8279..4b1fe40 100644
--- a/dashboard/src/api/urls.py
+++ b/dashboard/src/api/urls.py
@@ -32,7 +32,6 @@ from api.views import *
router = routers.DefaultRouter()
router.register(r'bookings', BookingViewSet)
-router.register(r'notifier', NotifierViewSet)
router.register(r'user', UserViewSet)
urlpatterns = [
diff --git a/dashboard/src/api/views.py b/dashboard/src/api/views.py
index 072354f..cc3a668 100644
--- a/dashboard/src/api/views.py
+++ b/dashboard/src/api/views.py
@@ -21,11 +21,11 @@ from django.views.decorators.csrf import csrf_exempt
import json
from api.serializers.booking_serializer import *
-from api.serializers.old_serializers import NotifierSerializer, UserSerializer
+from api.serializers.old_serializers import UserSerializer
from account.models import UserProfile
from booking.models import Booking
-from notifier.models import Notifier
from api.models import *
+from notifier.manager import NotificationHandler
class BookingViewSet(viewsets.ModelViewSet):
@@ -34,11 +34,6 @@ class BookingViewSet(viewsets.ModelViewSet):
filter_fields = ('resource', 'id')
-class NotifierViewSet(viewsets.ModelViewSet):
- queryset = Notifier.objects.none()
- serializer_class = NotifierSerializer
-
-
class UserViewSet(viewsets.ModelViewSet):
queryset = UserProfile.objects.all()
serializer_class = UserSerializer
@@ -87,6 +82,7 @@ def specific_task(request, lab_name="", job_id="", task_id=""):
if 'message' in request.POST:
task.message = request.POST.get('message')
task.save()
+ NotificationHandler.task_updated(task)
d = {}
d['task'] = task.config.get_delta()
m = {}