Updating timeline API

remotes/origin/enhancement/email-actions
Alejandro Alonso 2015-04-06 12:35:05 +02:00 committed by David Barragán Merino
parent 982d79d8aa
commit 1d701a7cad
2 changed files with 22 additions and 3 deletions

View File

@ -150,9 +150,11 @@ router.register(r"history/wiki", WikiHistory, base_name="wiki-history")
# Timelines
from taiga.timeline.api import ProfileTimeline
from taiga.timeline.api import UserTimeline
from taiga.timeline.api import ProjectTimeline
router.register(r"timeline/profile", ProfileTimeline, base_name="profile-timeline")
router.register(r"timeline/user", UserTimeline, base_name="user-timeline")
router.register(r"timeline/project", ProjectTimeline, base_name="project-timeline")

View File

@ -18,14 +18,14 @@ from django.contrib.contenttypes.models import ContentType
from taiga.base import response
from taiga.base.api.utils import get_object_or_404
from taiga.base.api import GenericViewSet
from taiga.base.api import ReadOnlyListViewSet
from . import serializers
from . import service
from . import permissions
class TimelineViewSet(GenericViewSet):
class TimelineViewSet(ReadOnlyListViewSet):
serializer_class = serializers.TimelineSerializer
content_type = None
@ -57,19 +57,36 @@ class TimelineViewSet(GenericViewSet):
def list(self, request):
return response.NotFound()
def get_timeline(self, obj):
raise NotImplementedError
def retrieve(self, request, pk):
obj = self.get_object()
self.check_permissions(request, "retrieve", obj)
qs = service.get_timeline(obj)
qs = self.get_timeline(obj)
return self.response_for_queryset(qs)
class ProfileTimeline(TimelineViewSet):
content_type = "users.user"
permission_classes = (permissions.UserTimelinePermission,)
def get_timeline(self, user):
return service.get_profile_timeline(user, accessing_user=self.request.user)
class UserTimeline(TimelineViewSet):
content_type = "users.user"
permission_classes = (permissions.UserTimelinePermission,)
def get_timeline(self, user):
return service.get_user_timeline(user, accessing_user=self.request.user)
class ProjectTimeline(TimelineViewSet):
content_type = "projects.project"
permission_classes = (permissions.ProjectTimelinePermission,)
def get_timeline(self, project):
return service.get_project_timeline(project, accessing_user=self.request.user)