--- a/server/python/django2/renkanmanager/api/views.py Fri Mar 18 14:15:23 2016 +0100
+++ b/server/python/django2/renkanmanager/api/views.py Thu Mar 31 17:12:38 2016 +0200
@@ -27,7 +27,7 @@
logger = logging.getLogger(__name__)
-
+
class RenkanList(APIView):
"""
View for listing renkans or posting new renkan
@@ -36,15 +36,15 @@
permissions.IsAuthenticatedOrReadOnly,
CanCreateRenkan,
)
-
+
def get(self, request, workspace_guid='', format=None):
if workspace_guid == '':
renkans = Renkan.objects.all()
else:
renkans = Renkan.objects.filter(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 = request.data
source_renkan_guid = request.GET.get("source_renkan_id", request.data.get("source_renkan_id", None))
@@ -69,13 +69,13 @@
except Workspace.DoesNotExist:
return Response({'detail': 'Workspace '+workspace_guid+' does not exist'}, status=status.HTTP_404_NOT_FOUND)
create_data["workspace_id"] = workspace_guid
-
+
serializer = RenkanSerializer(data=create_data)
if serializer.is_valid():
- serializer.save(creator=request.user)
+ serializer.save(creator=request.user)
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):
"""
@@ -83,19 +83,19 @@
"""
lookup_field = "renkan_guid"
permission_classes = (
- permissions.IsAuthenticatedOrReadOnly,
+ permissions.IsAuthenticatedOrReadOnly,
CanEditRenkan,
CanDeleteRenkan,
)
authentication_classes = tuple(APIView.authentication_classes) + (CsrfExemptSessionAuthentication,)
-
+
@csrf_exempt
def dispatch(self, *args, **kwargs):
return super(RenkanDetail, self).dispatch(*args, **kwargs)
-
+
def get_object(self, renkan_guid):
return Renkan.objects.get(renkan_guid=renkan_guid)
-
+
def get(self, request, renkan_guid, format=None):
try:
renkan = self.get_object(renkan_guid=renkan_guid)
@@ -106,7 +106,7 @@
if {'true': True, 'false': False, "0": False, "1": True}.get(request.GET.get("content_only", "false").lower()):
return Response(json.loads(serializer.data["content"]), status=status.HTTP_200_OK, content_type='application/json')
return Response(serializer.data, status=status.HTTP_200_OK, content_type='application/json')
-
+
def put(self, request, renkan_guid, format=None):
try:
renkan = self.get_object(renkan_guid=renkan_guid)
@@ -117,14 +117,14 @@
put_data = {}
put_data["content"] = json.dumps(request.data)
put_data["title"] = request.data.get("title", "")
- else:
+ else:
put_data = request.data
serializer = RenkanSerializer(renkan, data=put_data)
if serializer.is_valid():
serializer.save(updator=request.user)
return Response(serializer.data, status=status.HTTP_200_OK, content_type='application/json')
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
-
+
def delete(self, request, renkan_guid, format=None):
try:
to_delete_renkan = self.get_object(renkan_guid=renkan_guid)
@@ -149,19 +149,19 @@
permissions.IsAuthenticatedOrReadOnly,
CanCreateWorkspace,
)
-
+
def get(self, request, format=None):
workspaces = Workspace.objects.all()
serializer = WorkspaceSerializer(workspaces, many=True)
return Response(serializer.data)
-
+
def post(self, request, format=None):
serializer = WorkspaceSerializer(data=request.data)
if serializer.is_valid():
- serializer.save(creator=request.user)
+ serializer.save(creator=request.user)
return Response(serializer.data, status=status.HTTP_201_CREATED, content_type='application/json')
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
-
+
class WorkspaceDetail(APIView):
"""
View for retrieving, updating or deleting a single workspace
@@ -171,10 +171,10 @@
CanEditWorkspace,
CanDeleteWorkspace,
)
-
+
def get_object(self, workspace_guid):
return Workspace.objects.get(workspace_guid=workspace_guid)
-
+
def get(self, request, workspace_guid, format=None):
try:
workspace = Workspace.objects.get(workspace_guid=workspace_guid)
@@ -183,7 +183,7 @@
self.check_object_permissions(request, workspace)
serializer = WorkspaceSerializer(workspace)
return Response(serializer.data, status=status.HTTP_200_OK, content_type='application/json')
-
+
def put(self, request, workspace_guid, format=None):
try:
workspace = Workspace.objects.get(workspace_guid=workspace_guid)
@@ -192,10 +192,10 @@
self.check_object_permissions(request, workspace)
serializer = WorkspaceSerializer(workspace, data=request.data)
if serializer.is_valid():
- serializer.save()
+ serializer.save()
return Response(serializer.data, status=status.HTTP_200_OK, content_type='application/json')
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
-
+
def delete(self, request, workspace_guid, format=None):
try:
to_delete_workspace = self.get_object(workspace_guid=workspace_guid)
@@ -212,10 +212,10 @@
View for listing revisions from a given renkan
"""
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
-
+
def get_queryset(self, renkan_guid):
return Revision.objects.filter(parent_renkan_guid=renkan_guid)
-
+
def get(self, request, renkan_guid, format=None):
revisions = self.get_queryset(renkan_guid)
if not revisions:
@@ -231,10 +231,10 @@
permissions.IsAuthenticatedOrReadOnly,
CanDeleteRevision,
)
-
+
def get_queryset(self, renkan_guid):
return Revision.objects.filter(parent_renkan_guid=renkan_guid)
-
+
def get(self, request, renkan_guid, revision_guid, format=None):
revisions = self.get_queryset(renkan_guid)
if not revisions:
@@ -246,7 +246,7 @@
self.check_object_permissions(request, revision)
serializer = RevisionSerializer(revision)
return Response(serializer.data, status=status.HTTP_200_OK, content_type='application/json')
-
+
def delete(self, request, renkan_guid, revision_guid, format=None):
revisions = self.get_queryset(renkan_guid)
if not revisions:
@@ -260,10 +260,10 @@
return Response({'detail': 'You cannot delete the last remaining revision of a renkan from the Revision API. Try deleting the parent Renkan with the Renkan API'}, status=status.HTTP_400_BAD_REQUEST)
if revision.is_current_revision:
return Response({'detail': 'You cannot delete the current revision of a renkan from the Revision API.'}, status=status.HTTP_400_BAD_REQUEST)
-
+
# Deleting reference to revision in renkans copied from this revision
for related_renkan in Renkan.objects.filter(source_revision_guid=revision_guid):
related_renkan.source_revision_guid = ''
related_renkan.save()
revision.delete()
- return Response(status=status.HTTP_204_NO_CONTENT)
\ No newline at end of file
+ return Response(status=status.HTTP_204_NO_CONTENT)