From aebb690bd07460a9f61db36e46d79d502e7fc247 Mon Sep 17 00:00:00 2001 From: Sawyer Bergeron Date: Fri, 15 Dec 2017 14:35:40 -0500 Subject: Implement Notification Framework with Initial Email Support JIRA: None Notification/notifier objects are now created with title, content, sender, associated resource, and recipient and there is now support for emails at the very least to be sent as notifications. Change-Id: I456cf0e901d9a1e2a1e7d187dcc03d28fca003fb Signed-off-by: Sawyer Bergeron --- dashboard/src/api/serializers.py | 6 ++++++ dashboard/src/api/urls.py | 3 ++- dashboard/src/api/views.py | 5 ++++- 3 files changed, 12 insertions(+), 2 deletions(-) (limited to 'dashboard/src/api') diff --git a/dashboard/src/api/serializers.py b/dashboard/src/api/serializers.py index 4478175..dc79d9d 100644 --- a/dashboard/src/api/serializers.py +++ b/dashboard/src/api/serializers.py @@ -10,6 +10,7 @@ from rest_framework import serializers +from notifier.models import Notifier from booking.models import Booking from dashboard.models import Server, Resource, ResourceStatus @@ -37,3 +38,8 @@ class ResourceStatusSerializer(serializers.ModelSerializer): class Meta: model = ResourceStatus fields = ('id', 'resource', 'timestamp','type', 'title', 'content') + +class NotifierSerializer(serializers.ModelSerializer): + class Meta: + model = Notifier + fields = ('id', 'title', 'content', 'user', 'sender', 'message_type', 'msg_sent') diff --git a/dashboard/src/api/urls.py b/dashboard/src/api/urls.py index a4a4b2f..71cd3ef 100644 --- a/dashboard/src/api/urls.py +++ b/dashboard/src/api/urls.py @@ -33,8 +33,9 @@ router.register(r'resources', ResourceViewSet) router.register(r'servers', ServerViewSet) router.register(r'bookings', BookingViewSet) router.register(r'resource_status', ResourceStatusViewSet) +router.register(r'notifier', NotifierViewSet) urlpatterns = [ url(r'^', include(router.urls)), url(r'^token$', GenerateTokenView.as_view(), name='generate_token'), -] \ No newline at end of file +] diff --git a/dashboard/src/api/views.py b/dashboard/src/api/views.py index 84fa1b5..c16d57d 100644 --- a/dashboard/src/api/views.py +++ b/dashboard/src/api/views.py @@ -8,7 +8,7 @@ ############################################################################## -from django.contrib.auth.decorators import login_required +from django.contrib.auth.decorators import login_required, user_passes_test from django.shortcuts import redirect from django.utils.decorators import method_decorator from django.views import View @@ -41,6 +41,9 @@ class ResourceStatusViewSet(viewsets.ModelViewSet): queryset = ResourceStatus.objects.all() serializer_class = ResourceStatusSerializer +class NotifierViewSet(viewsets.ModelViewSet): + queryset = Notifier.objects.none() + serializer_class = NotifierSerializer @method_decorator(login_required, name='dispatch') class GenerateTokenView(View): -- cgit 1.2.3-korg