Backport support for global and object event notification. GitLab issue #262.
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
@@ -10,9 +10,13 @@ from rest_framework import generics
|
||||
from acls.models import AccessControlList
|
||||
from rest_api.permissions import MayanPermission
|
||||
|
||||
from .classes import Event
|
||||
from .classes import EventType, EventTypeNamespace
|
||||
from .models import Notification
|
||||
from .permissions import permission_events_view
|
||||
from .serializers import EventSerializer, EventTypeSerializer
|
||||
from .serializers import (
|
||||
EventSerializer, EventTypeSerializer, EventTypeNamespaceSerializer,
|
||||
NotificationSerializer
|
||||
)
|
||||
|
||||
|
||||
class APIObjectEventListView(generics.ListAPIView):
|
||||
@@ -46,13 +50,72 @@ class APIObjectEventListView(generics.ListAPIView):
|
||||
return any_stream(obj)
|
||||
|
||||
|
||||
class APIEventTypeNamespaceDetailView(generics.RetrieveAPIView):
|
||||
"""
|
||||
Returns the details of an event type namespace.
|
||||
"""
|
||||
serializer_class = EventTypeNamespaceSerializer
|
||||
|
||||
def get_object(self):
|
||||
try:
|
||||
return EventTypeNamespace.get(name=self.kwargs['name'])
|
||||
except KeyError:
|
||||
raise Http404
|
||||
|
||||
|
||||
class APIEventTypeNamespaceListView(generics.ListAPIView):
|
||||
"""
|
||||
Returns a list of all the available event type namespaces.
|
||||
"""
|
||||
|
||||
serializer_class = EventTypeNamespaceSerializer
|
||||
queryset = EventTypeNamespace.all()
|
||||
|
||||
def get_serializer_context(self):
|
||||
return {
|
||||
'format': self.format_kwarg,
|
||||
'request': self.request,
|
||||
'view': self
|
||||
}
|
||||
|
||||
|
||||
class APIEventTypeNamespaceEventTypeListView(generics.ListAPIView):
|
||||
"""
|
||||
Returns a list of all the available event types from a namespaces.
|
||||
"""
|
||||
|
||||
serializer_class = EventTypeSerializer
|
||||
|
||||
def get_queryset(self):
|
||||
try:
|
||||
return EventTypeNamespace.get(
|
||||
name=self.kwargs['name']
|
||||
).get_event_types()
|
||||
except KeyError:
|
||||
raise Http404
|
||||
|
||||
def get_serializer_context(self):
|
||||
return {
|
||||
'format': self.format_kwarg,
|
||||
'request': self.request,
|
||||
'view': self
|
||||
}
|
||||
|
||||
|
||||
class APIEventTypeListView(generics.ListAPIView):
|
||||
"""
|
||||
Returns a list of all the available event types.
|
||||
"""
|
||||
|
||||
serializer_class = EventTypeSerializer
|
||||
queryset = sorted(Event.all(), key=lambda event: event.name)
|
||||
queryset = EventType.all()
|
||||
|
||||
def get_serializer_context(self):
|
||||
return {
|
||||
'format': self.format_kwarg,
|
||||
'request': self.request,
|
||||
'view': self
|
||||
}
|
||||
|
||||
|
||||
class APIEventListView(generics.ListAPIView):
|
||||
@@ -64,3 +127,20 @@ class APIEventListView(generics.ListAPIView):
|
||||
permission_classes = (MayanPermission,)
|
||||
queryset = Action.objects.all()
|
||||
serializer_class = EventSerializer
|
||||
|
||||
def get_serializer_context(self):
|
||||
return {
|
||||
'format': self.format_kwarg,
|
||||
'request': self.request,
|
||||
'view': self
|
||||
}
|
||||
|
||||
|
||||
class APINotificationListView(generics.ListAPIView):
|
||||
"""
|
||||
Return a list of notifications for the current user.
|
||||
"""
|
||||
serializer_class = NotificationSerializer
|
||||
|
||||
def get_queryset(self):
|
||||
return Notification.objects.filter(user=self.request.user)
|
||||
|
||||
Reference in New Issue
Block a user