Example #1
0
File: views.py Project: pixyj/feel
    def put(self, request, pk):
        course = get_course_or_404(pk)
        if course.created_by.id != request.user.id:
            return Response({"permission": "denied"}, status=status.HTTP_403_FORBIDDEN)


        serializer = CourseSerializer(data=request.data)
        if not serializer.is_valid():
            return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

        if request.user.id != course.created_by.id:
            return Response({"permission": "denied"}, status=status.HTTP_403_FORBIDDEN)

        validated_data = serializer.data
        audit_attrs = get_audit_attrs(course.created_by, request.user)
        validated_data.update(audit_attrs)

        previous_is_published = course.is_published
        course = serializer.update(course, validated_data)

        response = serializer.data
        if previous_is_published != course.is_published:
            #import ipdb; ipdb.set_trace()
            response = dict(serializer.data)
            if course.is_published:
                courseslug = course.publish_and_slugify()
            else:
                courseslug = None
                course.unpublish()
            if courseslug is not None:
                response['slug'] = courseslug.slug
            else:
                response['slug'] = None
                
        return Response(response, status.HTTP_200_OK)
Example #2
0
def course_list(request):
    if request.method == 'GET':
        courses = Course.objects.all()

        title = request.GET.get('title', None)
        if title is not None:
            courses = courses.filter(title__icontains=title)

        courses_serializer = CourseSerializer(courses, many=True)
        return JsonResponse(courses_serializer.data, safe=False)
        # 'safe=False' for objects serialization

    elif request.method == 'POST':
        course_data = JSONParser().parse(request)
        course_serializer = CourseSerializer(data=course_data)
        if course_serializer.is_valid():
            course_serializer.save()
            return JsonResponse(course_serializer.data,
                                status=status.HTTP_201_CREATED)
        return JsonResponse(course_serializer.errors,
                            status=status.HTTP_400_BAD_REQUEST)

    elif request.method == 'DELETE':
        count = Course.objects.all().delete()
        return JsonResponse(
            {
                'message': '{} Courses were deleted successfully!'.format(
                    count[0])
            },
            status=status.HTTP_204_NO_CONTENT)
Example #3
0
def course_detail(request, pk):
    """
    获取、更新、删除单条课程
    :param request:
    :param pk:
    :return:
    """
    try:
        course = Course.objects.get(pk=pk)
    except Course.DoesNotExist:
        return Response(data={"msg": "没有此课程信息"},
                        status=status.HTTP_404_NOT_FOUND)
    else:

        if request.method == "GET":
            ser = CourseSerializer(instance=course)
            return Response(data=ser.data, status=status.HTTP_200_OK)
        elif request.method == "PUT":
            ser = CourseSerializer(instance=course, data=request.data)
            if ser.is_valid():
                ser.save()
                return Response(data=ser.data, status=status.HTTP_200_OK)
            return Response(data=ser.errors,
                            status=status.HTTP_400_BAD_REQUEST)
        elif request.method == "DELETE":
            course.delete()
            return Response(status=status.HTTP_204_NO_CONTENT)
Example #4
0
 def put_course(self, ex_id: int, data: dict):
     des = CourseRepository.get_course_detail(self, ex_id=ex_id)
     serializer = CourseSerializer(des, data=data)
     if serializer.is_valid():
         serializer.save()
         return CourseRepository.put_course(self, ex_id=ex_id, data=data)
     return serializer.errors, status.HTTP_400_BAD_REQUEST
Example #5
0
def createcourse(request):

    course_data = JSONParser().parse(request)
    course_serializer = CourseSerializer(data=course_data)
    if course_serializer.is_valid():
        course_serializer.save()
        return JsonResponse(course_serializer.data,
                            status=status.HTTP_201_CREATED)
    return JsonResponse(course_serializer.errors,
                        status=status.HTTP_400_BAD_REQUEST)
Example #6
0
 def put(self, request, pk):
     obj = self.get_object(pk=pk)
     if obj:
         ser = CourseSerializer(instance=obj, data=request.data)
         if ser.is_valid():
             ser.save()
             return Response(data=ser.data, status=status.HTTP_200_OK)
         return Response(data=ser.errors,
                         status=status.HTTP_400_BAD_REQUEST)
     return Response(data={"msg": "没有此课程信息"},
                     status=status.HTTP_404_NOT_FOUND)
Example #7
0
File: views.py Project: pixyj/feel
    def post(self, request):

        serializer = CourseSerializer(data=request.data)
        if not serializer.is_valid():
            return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

        validated_data = serializer.data
        audit_attrs = get_audit_attrs(request.user)
        validated_data.update(audit_attrs)
        
        course = serializer.create(validated_data)
        serializer = CourseSerializer(course)
        return Response(serializer.data, status.HTTP_201_CREATED)
Example #8
0
    def post(self, request):

        serializer = CourseSerializer(data=request.data)
        if not serializer.is_valid():
            return Response(serializer.errors,
                            status=status.HTTP_400_BAD_REQUEST)

        validated_data = serializer.data
        audit_attrs = get_audit_attrs(request.user)
        validated_data.update(audit_attrs)

        course = serializer.create(validated_data)
        serializer = CourseSerializer(course)
        return Response(serializer.data, status.HTTP_201_CREATED)
Example #9
0
def updatecourse(request, id):
    try:
        course = Course.objects.get(id=id)

    except Course.DoesNotExist:
        return JsonResponse({'message': 'The tutorial does not exist'},
                            status=status.HTTP_404_NOT_FOUND)

    course_data = JSONParser().parse(request)
    course_serializer = CourseSerializer(course, data=course_data)
    if course_serializer.is_valid():
        course_serializer.save()
        return JsonResponse(course_serializer.data)
    return JsonResponse(course_serializer.errors,
                        status=status.HTTP_400_BAD_REQUEST)
Example #10
0
    def post(request, cou_id):
        try:
            cou = course.objects.get(pk=cou_id)
        except cou.DoesNotExist:
            errors = "Error!"
            return HttpResponse(status=400)

        # if request.method == 'GET':
        #     serializer = CourseSerializer(cou)
        #     return JSONResponse(serializer.data)
        data = JSONParser().parse(request)
        serializer = CourseSerializer(cou, data=data)
        if serializer.is_valid():
            serializer.save()
            return JSONResponse(serializer.data)
        return JSONResponse(serializer.errors, status=400)
Example #11
0
def course_list(request):
    """
    获取所有课程信息或新增单条课程信息
    :param request:
    :return:
    """
    if request.method == "GET":
        ser = CourseSerializer(instance=Course.objects.all(), many=True)
        return Response(data=ser.data, status=status.HTTP_200_OK)

    elif request.method == "POST":
        ser = CourseSerializer(data=request.data, partial=True)
        if ser.is_valid():
            ser.save(teacher=request.user)
            return Response(data=ser.data, status=status.HTTP_201_CREATED)
        return Response(data=ser.errors, status=status.HTTP_400_BAD_REQUEST)
Example #12
0
    def put(self, request, pk):
        course = get_course_or_404(pk)
        if course.created_by.id != request.user.id:
            return Response({"permission": "denied"},
                            status=status.HTTP_403_FORBIDDEN)

        serializer = CourseSerializer(data=request.data)
        if not serializer.is_valid():
            return Response(serializer.errors,
                            status=status.HTTP_400_BAD_REQUEST)

        if request.user.id != course.created_by.id:
            return Response({"permission": "denied"},
                            status=status.HTTP_403_FORBIDDEN)

        validated_data = serializer.data
        audit_attrs = get_audit_attrs(course.created_by, request.user)
        validated_data.update(audit_attrs)

        previous_is_published = course.is_published
        course = serializer.update(course, validated_data)

        response = serializer.data
        if previous_is_published != course.is_published:
            #import ipdb; ipdb.set_trace()
            response = dict(serializer.data)
            if course.is_published:
                courseslug = course.publish_and_slugify()
            else:
                courseslug = None
                course.unpublish()
            if courseslug is not None:
                response['slug'] = courseslug.slug
            else:
                response['slug'] = None

        return Response(response, status.HTTP_200_OK)
Example #13
0
 def post_course(self, data: dict):
     serializer = CourseSerializer(data=data)
     if serializer.is_valid():
         serializer.save()
         return CourseRepository.post_course(self, data=data)
     return serializer.errors, status.HTTP_400_BAD_REQUEST
Example #14
0
 def post(self, request):
     ser = CourseSerializer(data=request.data)
     if ser.is_valid():
         ser.save(teacher=self.request.user)
         return Response(data=ser.data, status=status.HTTP_201_CREATED)
     return Response(data=ser.errors, status=status.HTTP_400_BAD_REQUEST)