from rest_framework.response import Response
from rest_framework.reverse import reverse
from rest_framework import serializers
+ from rest_framework import generics
from core.models import *
from django.forms import widgets
{% if ref.multi %}
{{ ref.plural }} = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='{{ ref }}-detail')
{% else %}
- {{ ref }} = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='{{ ref }}-detail')
+ {{ ref }} = serializers.HyperlinkedRelatedField(read_only=True, view_name='{{ ref }}-detail')
{% endif %}
{% endfor %}
class Meta:
- model = {{ object }}
- fields = ({% for prop in object.props %}'{{ prop }}',{% endfor %})
+ model = {{ object.camel }}
+ fields = ({% for prop in object.props %}'{{ prop }}',{% endfor %}{% for ref in object.refs %}{%if ref.multi %}'{{ ref.plural }}'{% else %}'{{ ref }}'{% endif %},{% endfor %})
{% endfor %}
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 %}
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
-from core.plus.sites import SitePlus
+from core.dashboard.sites import SitePlus
+from django.http import HttpResponseRedirect
admin.site = SitePlus()
admin.autodiscover()
+def redirect_to_apache(request):
+ """ bounce a request back to the apache server that is running on the machine """
+ apache_url = "http://%s%s" % (request.META['HOSTNAME'], request.path)
+ return HttpResponseRedirect(apache_url)
+
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'planetstack.views.home', name='home'),
#url(r'^profile/home', 'core.views.home'),
url(r'^plstackapi/$', api_root),
-
+
url(r'^plstackapi/deployments/$', DeploymentList.as_view(), name='deployment-list'),
url(r'^plstackapi/deployments/(?P<pk>[a-zA-Z0-9\-]+)/$', DeploymentDetail.as_view(), name='deployment-detail'),
url(r'^legacyapi/$', 'core.views.legacyapi.LegacyXMLRPC', name='xmlrpc'),
+# url(r'^analytics/(?P<name>\w+)/$', AnalyticsAjaxView.as_view(), name="analytics"),
+
+ url(r'^files/', redirect_to_apache),
#Adding in rest_framework urls
url(r'^plstackapi/', include('rest_framework.urls', namespace='rest_framework')),