From: Sapan Bhatia Date: Wed, 11 Jun 2014 20:58:58 +0000 (-0400) Subject: Merge branch 'apigen' X-Git-Url: http://git.onelab.eu/?p=plstackapi.git;a=commitdiff_plain;h=8e672994e36488438962554ce5a3529e34818e9d Merge branch 'apigen' --- 8e672994e36488438962554ce5a3529e34818e9d diff --cc planetstack/apigen/api.template.py index de05fe6,c3e76e1..6638808 --- a/planetstack/apigen/api.template.py +++ b/planetstack/apigen/api.template.py @@@ -57,41 -58,11 +58,41 @@@ serializerLookUp = {% for object in generator.all %} class {{ object.camel }}List(generics.ListCreateAPIView): - queryset = {{ object.camel }}.objects.select_related.all() + queryset = {{ object.camel }}.objects.select_related().all() serializer_class = {{ object.camel }}Serializer + + def get_queryset(self): + return {{ object.camel }}.select_by_user(self.request.user) + + def create(self, request, *args, **kwargs): + #obj = {{ object.camel }}().update(request.DATA) + obj = self.get_object() + obj.caller = request.user + if obj.can_update(request.user): + return super({{ object.camel }}List, self).create(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) class {{ object.camel }}Detail(generics.RetrieveUpdateDestroyAPIView): - queryset = {{ object.camel }}.objects.select_related.all() + queryset = {{ object.camel }}.objects.select_related().all() serializer_class = {{ object.camel }}Serializer + + def get_queryset(self): + return {{ object.camel }}.select_by_user(self.request.user) + + def update(self, request, *args, **kwargs): + obj = self.get_object() + if obj.can_update(request.user): + return super({{ object.camel }}Detail, self).update(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + + def destroy(self, request, *args, **kwargs): + obj = self.get_object() + if obj.can_update(request.user): + return super({{ object.camel }}Detail, self).destroy(request, *args, **kwargs) + else: + return Response(status=status.HTTP_400_BAD_REQUEST) + {% endfor %} diff --cc planetstack/planetstack/urls.py index 49b144f,9dceea9..599b20b --- a/planetstack/planetstack/urls.py +++ b/planetstack/planetstack/urls.py @@@ -16,9 -16,8 +16,9 @@@ from core.views.slices import SliceList from core.views.slice_privileges import SlicePrivilegeList, SlicePrivilegeDetail from core.views.slivers import SliverList, SliverDetail from core.views.tags import TagList, TagDetail - from core.views.users import UserList, UserDetail + from genapi import UserList, UserDetail from core.views.legacyapi import LegacyXMLRPC +#from core.views.analytics import AnalyticsAjaxView from core.models import * from core.api_root import api_root from rest_framework import generics