Skip to content

Commit

Permalink
Added url to Spec detail view, added Spec list view
Browse files Browse the repository at this point in the history
  • Loading branch information
coagulant committed Oct 13, 2013
1 parent 3f5be52 commit 88cd117
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 5 deletions.
8 changes: 7 additions & 1 deletion gopython3/core/rest.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from django.db import transaction
from rest_framework import viewsets, routers, status, mixins
from rest_framework.generics import RetrieveAPIView
from rest_framework.generics import RetrieveAPIView, ListAPIView
from rest_framework.response import Response
from rest_framework_extensions.mixins import DetailSerializerMixin
from core.serializers import JobSerializer, PackageSerializer, JobDetailSerialzier
Expand All @@ -27,11 +27,17 @@ def create(self, request, *args, **kwargs):
headers=headers)


class PackageListView(ListAPIView):
model = Spec
serializer_class = PackageSerializer


class PackageView(RetrieveAPIView):
model = Spec
serializer_class = PackageSerializer
lookup_field = 'code'


router = routers.DefaultRouter()
router.include_format_suffixes = False
router.register(r'jobs', JobViewSet)
5 changes: 3 additions & 2 deletions gopython3/core/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ def to_native(self, obj):
}


class PackageSerializer(serializers.ModelSerializer):
class PackageSerializer(serializers.HyperlinkedModelSerializer):
id = serializers.Field(source='code')
name = serializers.Field(source='package.name')
pypi = PyPIField(source='*')
Expand All @@ -110,9 +110,10 @@ class PackageSerializer(serializers.ModelSerializer):
forks = ForkField(source='package')
ci = CIField(source='package')
pr = PullRequestField(source='package')
url = serializers.HyperlinkedIdentityField(view_name='spec-detail', lookup_field='code')

class Meta:
model = Spec
fields = ('id', 'name', 'version', 'status',
'created_at', 'updated_at', 'pypi', 'repo',
'issues', 'forks', 'ci')
'issues', 'forks', 'ci', 'url')
3 changes: 2 additions & 1 deletion gopython3/core/tests/test_rest.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,8 @@ def test_spec_detail(self):
"ci": {
"url": "https://travis-ci.org/jezdez/django_compressor",
"status": "passing"
}
},
'url': 'http://testserver/api/v1/packages/django_compressor/1.3/'
})


3 changes: 2 additions & 1 deletion gopython3/core/urls.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
# coding: utf-8
from django.conf.urls import patterns, url, include
from core.rest import router, PackageView
from core.rest import router, PackageView, PackageListView


urlpatterns = patterns('',
url(r'', include(router.urls)),
url(r'^packages/$', PackageListView.as_view(), name='spec-list'),
url(r'^packages/(?P<code>.+)/$', PackageView.as_view(), name='spec-detail'),
)

0 comments on commit 88cd117

Please sign in to comment.