LIL-276. Fix courses category bulk change endpoint.

remotes/origin/hasaccess
Ivlev Denis 8 years ago
parent bc1438721c
commit 1f39fc9811
  1. 7
      api/v1/serializers/course.py
  2. 27
      api/v1/views.py

@ -73,11 +73,8 @@ class CategorySerializer(serializers.ModelSerializer):
class CourseBulkChangeCategorySerializer(serializers.Serializer):
category = serializers.IntegerField()
courses = serializers.ListField(
child=serializers.IntegerField(),
min_length=1,
)
old_category = serializers.IntegerField()
new_category = serializers.IntegerField()
class CourseCreateSerializer(DispatchContentMixin,

@ -106,20 +106,29 @@ class CourseViewSet(ExtendedModelViewSet):
serializer_class = self.get_serializer_class()
serializer = serializer_class(data=request.data)
if serializer.is_valid():
category_id = serializer.validated_data['category']
courses_ids = serializer.validated_data['courses']
old_category_id = serializer.validated_data['old_category']
new_category_id = serializer.validated_data['new_category']
try:
category = Category.objects.get(id=category_id)
old_category = Category.objects.get(id=old_category_id)
except Category.DoesNotExist:
return Response(
{'success': False, 'detail': f'Category with id {category_id} not found'},
{'success': False, 'detail': f'Category with id {old_category_id} not found'},
status=status.HTTP_400_BAD_REQUEST,
)
else:
c = Course.objects.filter(
id__in=courses_ids,
).update(category=category)
return Response({'success': True})
try:
new_category = Category.objects.get(id=new_category_id)
except Category.DoesNotExist:
return Response(
{'success': False, 'detail': f'Category with id {new_category_id} not found'},
status=status.HTTP_400_BAD_REQUEST,
)
c = Course.objects.filter(
category=old_category,
).update(
category=new_category
)
return Response({'success': True})
else:
return Response(
{'success': False},

Loading…
Cancel
Save