def post(self, request, *args, **kwargs): data = request.data.copy() if 'course' in request.data: permissions.check_course_permission(request.user.pk, request.data['course']) if 'event' in request.data: permissions.check_event_permission(request.user.pk, request.data['event']) if 'homework' in request.data: permissions.check_homework_permission(request.user.pk, request.data['homework']) response_data = [] errors = [] for upload in request.data.getlist('file[]'): data['title'] = upload.name data['attachment'] = upload serializer = self.get_serializer(data=data) if serializer.is_valid(): serializer.save(user=request.user) logger.info( f'Attachment {serializer.instance.pk} created for user {request.user.get_username()}') response_data.append(serializer.data) else: errors.append(serializer.errors) if len(errors) > 0: return Response(errors, status=status.HTTP_400_BAD_REQUEST) elif len(response_data) > 0: return Response(response_data, status=status.HTTP_201_CREATED) else: return Response({'details': 'An unknown error occurred.'}, status=status.HTTP_400_BAD_REQUEST)
def put(self, request, *args, **kwargs): if 'event' in request.data: permissions.check_event_permission(request.user.pk, request.data['event']) elif 'homework' in request.data: permissions.check_homework_permission(request.user.pk, request.data['homework']) response = self.partial_update(request, *args, **kwargs) logger.info('Reminder {} updated for user {}'.format(kwargs['pk'], request.user.get_username())) return response
def post(self, request, *args, **kwargs): if 'event' in request.data: permissions.check_event_permission(request.user.pk, request.data['event']) if 'homework' in request.data: permissions.check_homework_permission(request.user.pk, request.data['homework']) response = self.create(request, *args, **kwargs) logger.info('Reminder {} created for user {}'.format(response.data['id'], request.user.get_username())) return response