--- a/server/python/django2/renkanmanager/api/views.py Tue Jun 07 10:46:20 2016 +0200
+++ b/server/python/django2/renkanmanager/api/views.py Mon Jun 13 14:23:58 2016 +0200
@@ -23,22 +23,22 @@
from rest_framework.views import APIView
logger = logging.getLogger(__name__)
-
+
class RenkanList(APIView):
"""
View for listing renkans or posting new renkan
"""
-
+
queryset = Renkan.objects
-
+
def get(self, request, workspace_guid='', format=None):
if workspace_guid == '':
renkans = self.queryset.all()
else:
renkans = self.queryset.filter(workspace__workspace_guid=workspace_guid)
serializer = RenkanSerializer(renkans, many=True)
- return Response(serializer.data, status=status.HTTP_200_OK, content_type='application/json')
-
+ return Response(serializer.data, status=status.HTTP_200_OK, content_type='application/json')
+
def post(self, request, workspace_guid='', format=None):
create_data = {key:request.data[key] for key in request.data.keys()}
source_renkan_guid = request.GET.get("source_renkan_id", request.data.get("source_renkan_id", None))
@@ -65,10 +65,11 @@
create_data["workspace_id"] = workspace_guid
serializer = RenkanSerializer(data=create_data)
if serializer.is_valid():
- serializer.save(creator=request.user)
+ creator = request.user if request.user and not request.user.is_anonymous() else None
+ serializer.save(creator=creator)
return Response(serializer.data, status=status.HTTP_201_CREATED, content_type='application/json')
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
-
+
class RenkanDetail(APIView):
"""
@@ -76,13 +77,13 @@
"""
lookup_field = "renkan_guid"
queryset = Renkan.objects
-
+
def get_object(self, renkan_guid):
return self.queryset.get(renkan_guid=renkan_guid)
-
+
def dispatch(self, *args, **kwargs):
return super(RenkanDetail, self).dispatch(*args, **kwargs)
-
+
def get(self, request, renkan_guid, format=None):
try:
renkan = self.get_object(renkan_guid=renkan_guid)
@@ -133,9 +134,9 @@
"""
View for listing workspaces or creating new workspace
"""
-
+
queryset = Workspace.objects
-
+
def get(self, request, format=None):
workspaces = self.queryset.all()
serializer = WorkspaceSerializer(workspaces, many=True)
@@ -144,7 +145,8 @@
def post(self, request, format=None):
serializer = WorkspaceSerializer(data=request.data)
if serializer.is_valid():
- serializer.save(creator=request.user)
+ creator = request.user if request.user and not request.user.is_anonymous() else None
+ serializer.save(creator=creator)
return Response(serializer.data, status=status.HTTP_201_CREATED, content_type='application/json')
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
@@ -152,13 +154,13 @@
"""
View for retrieving, updating or deleting a single workspace
"""
-
+
lookup_field = "workspace_guid"
queryset = Workspace.objects
-
+
def get_object(self, workspace_guid):
return self.queryset.get(workspace_guid=workspace_guid)
-
+
def get(self, request, workspace_guid, format=None):
try:
workspace = self.get_object(workspace_guid=workspace_guid)
@@ -195,13 +197,13 @@
"""
View for listing revisions from a given renkan
"""
-
+
def get_queryset(self, renkan_guid=""):
if renkan_guid:
return Revision.objects.filter(parent_renkan__renkan_guid=renkan_guid)
else:
return Revision.objects
-
+
def get(self, request, renkan_guid, format=None):
revisions = self.get_queryset(renkan_guid)
if not revisions:
@@ -213,15 +215,15 @@
"""
View for retrieving or deleting a single revision from a given renkan
"""
-
+
lookup_field = "revision_guid"
-
+
def get_queryset(self, renkan_guid=""):
if renkan_guid:
return Revision.objects.filter(parent_renkan__renkan_guid=renkan_guid)
else:
return Revision.objects
-
+
def get(self, request, renkan_guid, revision_guid, format=None):
revisions = self.get_queryset(renkan_guid)
if not revisions: