85 |
85 |
86 def get(self, request, renkan_guid, format=None): |
86 def get(self, request, renkan_guid, format=None): |
87 try: |
87 try: |
88 renkan = self.get_object(renkan_guid=renkan_guid) |
88 renkan = self.get_object(renkan_guid=renkan_guid) |
89 except Renkan.DoesNotExist: |
89 except Renkan.DoesNotExist: |
90 return Response({'detail': 'Renkan project %r does not exist'.format(renkan_guid)}, status=status.HTTP_404_NOT_FOUND) |
90 return Response({'detail': 'Renkan project '+renkan_guid+' does not exist'}, status=status.HTTP_404_NOT_FOUND) |
91 self.check_object_permissions(request, renkan) |
91 self.check_object_permissions(request, renkan) |
92 serializer = RenkanSerializer(renkan) |
92 serializer = RenkanSerializer(renkan) |
93 if {'true': True, 'false': False, "0": False, "1": True}.get(request.GET.get("content_only", "false").lower()): |
93 if {'true': True, 'false': False, "0": False, "1": True}.get(request.GET.get("content_only", "false").lower()): |
94 return Response(json.loads(serializer.data["content"]), status=status.HTTP_200_OK, content_type='application/json') |
94 return Response(json.loads(serializer.data["content"]), status=status.HTTP_200_OK, content_type='application/json') |
95 return Response(serializer.data, status=status.HTTP_200_OK, content_type='application/json') |
95 return Response(serializer.data, status=status.HTTP_200_OK, content_type='application/json') |
96 |
96 |
97 def put(self, request, renkan_guid, format=None): |
97 def put(self, request, renkan_guid, format=None): |
98 try: |
98 try: |
99 renkan = self.get_object(renkan_guid=renkan_guid) |
99 renkan = self.get_object(renkan_guid=renkan_guid) |
100 except Renkan.DoesNotExist: |
100 except Renkan.DoesNotExist: |
101 return Response({'detail': 'Renkan project %r does not exist'.format(renkan_guid)}, status=status.HTTP_404_NOT_FOUND) |
101 return Response({'detail': 'Renkan project '+renkan_guid+' does not exist'}, status=status.HTTP_404_NOT_FOUND) |
102 logger.debug("RENKAN PUT %r : CHECKING OBJECT PERMISSION", renkan_guid) |
102 logger.debug("RENKAN PUT %r : CHECKING OBJECT PERMISSION", renkan_guid) |
103 logger.debug("RENKAN PUT: permission? %r", request.user.has_perm("change_renkan", renkan)) |
103 logger.debug("RENKAN PUT: permission? %r", request.user.has_perm("change_renkan", renkan)) |
104 self.check_object_permissions(request, renkan) |
104 self.check_object_permissions(request, renkan) |
105 logger.debug("RENKAN PUT: PERMISSION GRANTED") |
105 logger.debug("RENKAN PUT: PERMISSION GRANTED") |
106 if {'true': True, 'false': False, "0": False, "1": True}.get(request.GET.get("content_only", "false").lower()): |
106 if {'true': True, 'false': False, "0": False, "1": True}.get(request.GET.get("content_only", "false").lower()): |
107 put_data = {} |
107 put_data = {} |
108 put_data["content"] = json.dumps(request.data) |
108 put_data["content"] = json.dumps(request.data) |
109 put_data["title"] = request.data.get("title", "") |
109 put_data["title"] = request.data.get("title", "") |
110 else: |
110 else: |
111 put_data = request.data |
111 put_data = request.data |
|
112 if put_data.get("validation_timestamp", None) is None and put_data.get("content", None) is not None: |
|
113 put_data["validation_timestamp"] = json.loads(put_data["content"]).get("updated", "") |
112 serializer = RenkanSerializer(renkan, data=put_data) |
114 serializer = RenkanSerializer(renkan, data=put_data) |
113 if serializer.is_valid(): |
115 if serializer.is_valid(): |
114 serializer.save(updator=request.user) |
116 serializer.save(updator=request.user) |
|
117 if {'true': True, 'false': False, "0": False, "1": True}.get(request.GET.get("content_only", "false").lower()): |
|
118 return Response(json.loads(serializer.data["content"]), status=status.HTTP_200_OK, content_type='application/json') |
115 return Response(serializer.data, status=status.HTTP_200_OK, content_type='application/json') |
119 return Response(serializer.data, status=status.HTTP_200_OK, content_type='application/json') |
116 return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) |
120 return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) |
117 |
121 |
118 @transaction.atomic |
122 @transaction.atomic |
119 def delete(self, request, renkan_guid, format=None): |
123 def delete(self, request, renkan_guid, format=None): |