Example #1
0
    def post(self, request, *args, **kwargs):
        response = ResponseContent(code=200,
                                   token=request.auth,
                                   description=12035)
        state = status.HTTP_200_OK
        params = request.data

        detail = self.readiness(request)
        if isinstance(detail, ResponseContent):
            return Response(detail.content(),
                            status=status.HTTP_406_NOT_ACCEPTABLE)

        try:
            question = []
            if 'hid' in params:
                question = HomeworkDetail.objects.filter(
                    homework=params['hid'],
                    homework__curriculum__lesson__course__ClsCourseCourse__teacher
                    =request.user.id,
                ).order_by('idx')
            elif 'oid' in params and 'lid' in params:
                question = HomeworkDetail.objects.filter(
                    homework__curriculum__cls=params['oid'],
                    homework__curriculum__lesson=params['lid'],
                    homework__curriculum__lesson__course__ClsCourseCourse__teacher
                    =request.user.id,
                ).order_by('idx')
            serializer = QuestionSerializer(question, many=True)
            response.data = serializer.data
        except Exception as e:
            response.refresh(code=604, description=10533, error=e.__str__())
            state = status.HTTP_500_INTERNAL_SERVER_ERROR

        return Response(response.content(), status=state)
Example #2
0
    def post(self, request, *args, **kwargs):
        response = ResponseContent(code=200,
                                   token=request.auth,
                                   description=12053)
        state = status.HTTP_200_OK
        params = request.data
        detail = self.readiness(request)
        if isinstance(detail, ResponseContent):
            return Response(detail.content(),
                            status=status.HTTP_406_NOT_ACCEPTABLE)

        try:
            recode = MaoRecord.objects.filter(
                stage=request.data['gsid'],
                user=params['student']).order_by('judge_time')
            serializer = MaoRecordSerializer(recode, many=True)
            response.data = serializer.data
        except Exception as e:
            response.refresh(mark=True,
                             code=602,
                             description=10556,
                             error=e.__str__())
            state = status.HTTP_500_INTERNAL_SERVER_ERROR

        return Response(response.content(), status=state)
Example #3
0
    def post(self, request, *args, **kwargs):
        response = ResponseContent(code=200,
                                   token=request.auth,
                                   description=12032)
        state = status.HTTP_200_OK
        params = request.data

        detail = self.readiness(request)
        if isinstance(detail, ResponseContent):
            return Response(detail.content(),
                            status=status.HTTP_406_NOT_ACCEPTABLE)

        try:
            condition = Q(
                curriculum__lesson__course__ClsCourseCourse__teacher=request.
                user.id)
            if 'oid' in params:
                condition = condition & Q(curriculum__cls=params['oid'])
            if 'lid' in params:
                condition = condition & Q(curriculum__lesson=params['lid'])

            homework = Homework.objects.filter(condition)
            serializer = HomeworkSerializer(homework, many=True)
            response.data = serializer.data
        except Exception as e:
            response.refresh(code=604, description=10530, error=e.__str__())
            state = status.HTTP_500_INTERNAL_SERVER_ERROR

        return Response(response.content(), status=state)
Example #4
0
    def post(self, request, *args, **kwargs):
        response = ResponseContent(code=200,
                                   token=request.auth,
                                   description=12046)
        state = status.HTTP_200_OK
        params = request.data

        detail = self.readiness(request)
        if isinstance(detail, ResponseContent):
            return Response(detail.content(),
                            status=status.HTTP_406_NOT_ACCEPTABLE)

        try:
            enroll = ClsStudent.objects.filter(
                cls=params['oid'],
                cls__clscourse__teacher=request.user.id,
            )
            score = MaoScore.objects.filter(stage__chapter=params['gcid'])
            stage = MaoGameStage.objects.filter(
                chapter=params['gcid']).order_by('idx')
            response.data['student'] = EnrollSerializer(enroll, many=True).data
            response.data['score'] = HighScoreSerializer(score, many=True).data
            response.data['stage'] = MaoGameStageSerializer(stage,
                                                            many=True).data
        except Exception as e:
            response.refresh(code=604, description=10544, error=e.__str__())
            state = status.HTTP_500_INTERNAL_SERVER_ERROR

        return Response(response.content(), status=state)
Example #5
0
    def post(self, request, *args, **kwargs):
        response = ResponseContent(code=200,
                                   token=request.auth,
                                   description=12033)
        state = status.HTTP_200_OK

        detail = self.readiness(request)
        if isinstance(detail, ResponseContent):
            return Response(detail.content(),
                            status=status.HTTP_406_NOT_ACCEPTABLE)

        serializer = HomeworkSerializer(data=self.formatData(request),
                                        partial=True)
        if serializer.is_valid():
            serializer.save()
            serializer = CurriculumSerializer(detail['curriculum'],
                                              data=self.formatData(request),
                                              partial=True)
            if serializer.is_valid():
                serializer.save()
            else:
                response.refresh(code=11001,
                                 description=11001,
                                 error=serializer.errors)
                state = status.HTTP_501_NOT_IMPLEMENTED
        else:
            response.refresh(code=11001,
                             description=10531,
                             error=serializer.errors)
            state = status.HTTP_501_NOT_IMPLEMENTED

        return Response(response.content(), status=state)
Example #6
0
    def post(self, request, *args, **kwargs):
        response = ResponseContent(mark=False,
                                   code=200,
                                   token=request.auth,
                                   description=12002)
        state = status.HTTP_200_OK

        detail = self.readiness(request)
        if isinstance(detail, ResponseContent):
            return Response(detail.content(),
                            status=status.HTTP_406_NOT_ACCEPTABLE)

        serializer = UserSerializer(
            detail['user'],
            data={'password': request.data['password']},
            partial=True)
        if serializer.is_valid():
            serializer.save()
        else:
            response.refresh(code=601,
                             description=12002,
                             error=serializer.errors)
            state = status.HTTP_501_NOT_IMPLEMENTED

        return Response(response.content(), status=state)
Example #7
0
    def post(self, request, *args, **kwargs):
        response = ResponseContent(code=200,
                                   token=request.auth,
                                   description=12023)
        state = status.HTTP_200_OK

        detail = self.readiness(request)
        if isinstance(detail, ResponseContent):
            return Response(detail.content(),
                            status=status.HTTP_406_NOT_ACCEPTABLE)

        params = request.data

        try:
            curriculum = Curriculum.objects.filter(
                cls=params['oid'],
                lesson__course=params['cid'],
                lesson__course__ClsCourseCourse__teacher=request.user.id)
            serializer = CurriculumSerializer(curriculum, many=True)
            response.data = serializer.data
        except Exception as e:
            response.refresh(code=604, description=10521, error=e.__str__())
            state = status.HTTP_500_INTERNAL_SERVER_ERROR

        return Response(response.content(), status=state)
Example #8
0
    def post(self, request, *args, **kwargs):
        response = ResponseContent(code=200,
                                   token=request.auth,
                                   description=12053)
        state = status.HTTP_200_OK
        params = request.data

        detail = self.readiness(request)
        if isinstance(detail, ResponseContent):
            return Response(detail.content(),
                            status=status.HTTP_406_NOT_ACCEPTABLE)

        openStatus = False

        try:
            enroll = ClsStudent.objects.filter(
                cls=params['oid'],
                cls__clscourse__teacher=request.user.id,
            )
            if enroll.exists():
                for item in enroll:
                    result = mao_chapter_unlock(item.student, params['gcid'])
                    if result:
                        openStatus = result
            else:
                response.refresh(code=11001, description=10153, error=10153)
        except Exception as e:
            response.refresh(code=602, description=10560, error=e.__str__())
            state = status.HTTP_500_INTERNAL_SERVER_ERROR

        response.data = openStatus

        return Response(response.content(), status=state)
Example #9
0
    def post(self, request, *args, **kwargs):
        response = ResponseContent(code=200,
                                   token=request.auth,
                                   description=12043)
        state = status.HTTP_200_OK
        params = request.data

        detail = self.readiness(request)
        if isinstance(detail, ResponseContent):
            return Response(detail.content(),
                            status=status.HTTP_406_NOT_ACCEPTABLE)

        try:
            if int(params['enable']) == 2:
                example = LessonDetail.objects.filter(
                    lesson=params['lid'],
                    lesson__course__ClsCourseCourse__teacher=request.user.id,
                ).order_by('idx')
            else:
                example = LessonDetail.objects.filter(
                    lesson=params['lid'],
                    enable=params['enable'],
                    lesson__course__ClsCourseCourse__teacher=request.user.id,
                ).order_by('idx')
            serializer = ExampleSerializer(example, many=True)
            response.data = serializer.data
        except Exception as e:
            response.refresh(code=604, description=10541, error=e.__str__())
            state = status.HTTP_500_INTERNAL_SERVER_ERROR

        return Response(response.content(), status=state)
Example #10
0
    def post(self, request, *args, **kwargs):
        response = ResponseContent(code=200,
                                   token=request.auth,
                                   description=12017)
        state = status.HTTP_200_OK
        detail = self.readiness(request)

        result = {}
        count = 0
        formerly = 0
        refreshName = 0
        add = 0
        surplus = 0
        try:
            users = User.objects.all()
            count = len(users)
            for user in users:
                if not hasattr(user, 'userteachingprofile'):
                    role = 0
                    if user.is_superuser > 0:
                        role = 100
                    serializer = UserProfileSerializer(data={
                        'name':
                        user.first_name + user.last_name,
                        'role':
                        role,
                        'user':
                        user.id
                    },
                                                       partial=True)
                    if serializer.is_valid():
                        serializer.save()
                        add += 1
                    else:
                        result[user.username] = serializer.errors
                        surplus += 1
                else:
                    formerly += 1
                    if user.first_name + user.last_name:
                        serializer = UserProfileSerializer(
                            user.userteachingprofile,
                            data={
                                'name': user.first_name + user.last_name,
                            },
                            partial=True)
                        if serializer.is_valid():
                            serializer.save()
            response.data = {
                'count': count,
                'formerly': formerly,
                'add': add,
                'surplus': surplus,
                'reason': result
            }
        except Exception as e:
            response.refresh(code=604, description=10551, error=e.__str__())
            state = status.HTTP_500_INTERNAL_SERVER_ERROR

        return Response(response.content(), status=state)
Example #11
0
    def get_list(self, request, pk=None):
        response = ResponseContent(code=200,
                                   token=request.auth,
                                   description=self.success_code['get'])
        state = status.HTTP_200_OK

        instance = self.get_object()
        serializer = self.get_serializer(instance, many=True)
        response.data = serializer.data

        return Response(response.content(), status=state)
Example #12
0
    def post(self, request, *args, **kwargs):
        response = ResponseContent(code=200, description=12054)
        state = status.HTTP_200_OK

        logout(request)
        jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
        jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER
        payload = jwt_payload_handler(request.user)
        token = jwt_encode_handler(payload)

        return Response(response.content(), status=state)
Example #13
0
    def post(self, request, *args, **kwargs):
        response = ResponseContent(code=200,
                                   token=request.auth,
                                   description=12017)
        state = status.HTTP_200_OK

        try:
            calss_list = Cls.objects.filter(students=request.user.id, enable=1)
            serializer = ClassSerializer(calss_list, many=True)
            response.data = serializer.data
        except Exception as e:
            response.refresh(code=604, description=10515, error=e.__str__())
            state = status.HTTP_500_INTERNAL_SERVER_ERROR

        return Response(response.content(), status=state)
Example #14
0
    def add_instance(self, request, pk=None):
        response = ResponseContent(code=200,
                                   token=request.auth,
                                   description=self.success_code['post'])
        state = status.HTTP_200_OK

        serializer = self.get_serializer(data=request.data, partial=True)
        if serializer.is_valid():
            serializer.save()
        else:
            response.refresh(code=604,
                             description=self.fail_code['post'],
                             error=serializer.errors)
            state = status.HTTP_500_INTERNAL_SERVER_ERROR

        return Response(response.content(), status=state)
Example #15
0
    def post(self, request, *args, **kwargs):
        response = ResponseContent(code=200,
                                   token=request.auth,
                                   description=12053)
        state = status.HTTP_200_OK
        params = request.data

        detail = self.readiness(request)
        if isinstance(detail, ResponseContent):
            return Response(detail.content(),
                            status=status.HTTP_406_NOT_ACCEPTABLE)

        student = detail['student']
        result = mao_chapter_unlock(student.user, params['gcid'])
        response.data = result

        return Response(response.content(), status=state)
Example #16
0
    def post(self, request, *args, **kwargs):
        response = ResponseContent(code=200,
                                   token=request.auth,
                                   description=12020)
        state = status.HTTP_200_OK
        detail = self.readiness(request)

        try:
            lessons = Lesson.objects.filter(course=request.data['cid'],
                                            enable=1)
            serializer = LessonSerializer(lessons, many=True)
            response.data = serializer.data
        except Exception as e:
            response.refresh(code=604, description=10518, error=e.__str__())
            state = status.HTTP_500_INTERNAL_SERVER_ERROR

        return Response(response.content(), status=state)
Example #17
0
    def post(self, request, *args, **kwargs):
        response = ResponseContent(code=200, description=12003)
        state = status.HTTP_200_OK

        detail = self.readiness(request)
        if isinstance(detail, ResponseContent):
            return Response(detail.content(),
                            status=status.HTTP_406_NOT_ACCEPTABLE)

        sms_captcha = SMSCaptcha()
        result = sms_captcha.send(request.data['phone'],
                                  int(request.data['scene']))
        if isinstance(result, ResponseContent):
            response = result
        if response.code > 300 or response.status == 'sms':
            state = status.HTTP_200_OK
        return Response(response.content(), status=state)
Example #18
0
    def post(self, request, *args, **kwargs):
        response = ResponseContent(code=200,
                                   token=request.auth,
                                   description=12050)
        state = status.HTTP_200_OK

        detail = self.readiness(request)
        if isinstance(detail, ResponseContent):
            return Response(detail.content(),
                            status=status.HTTP_406_NOT_ACCEPTABLE)

        account = detail['account']
        url = mao_access_chapter(account, request.data['gcid'])
        if url:
            response.data = url
        else:
            response.refresh(code=604, description=10553, error=10553)
        return Response(response.content(), status=state)
Example #19
0
    def post(self, request, *args, **kwargs):
        detail = self.readiness(request)
        if isinstance(detail, ResponseContent):
            return Response(detail.content(),
                            status=status.HTTP_406_NOT_ACCEPTABLE)

        token = self.get_jwt_token(detail['user'])
        response = self.auth(request, detail['user'])
        if isinstance(response, ResponseContent):
            return Response(response.content(),
                            status=status.HTTP_401_UNAUTHORIZED)

        serializer = UserProfileSerializer(detail['profile'])
        response = ResponseContent(code=200,
                                   description=12000,
                                   token=token,
                                   data=serializer.data)
        return Response(response.content(), status=status.HTTP_200_OK)
Example #20
0
    def post(self, request, *args, **kwargs):
        response = ResponseContent(code=200,
                                   token=request.auth,
                                   description=12041)
        state = status.HTTP_200_OK
        params = request.data
        try:
            if int(params['gametype']) == 0:
                game_chapter = MaoGameChapter.objects.filter(enable=1)
                serializer = MaoGameChapterSerializer(game_chapter, many=True)
                response.data = serializer.data
            elif params['gametype'] == 1:
                pass
        except Exception as e:
            response.refresh(code=604, description=10539, error=e.__str__())
            state = status.HTTP_500_INTERNAL_SERVER_ERROR

        return Response(response.content(), status=state)
Example #21
0
    def post(self, request, *args, **kwargs):
        response = ResponseContent(code=601, description=10500)
        state = status.HTTP_500_INTERNAL_SERVER_ERROR

        detail = self.readiness(request)
        if isinstance(detail, ResponseContent):
            return Response(detail.content(),
                            status=status.HTTP_406_NOT_ACCEPTABLE)

        params = request.data

        serializer = UserSerializer(data={
            'username': params['account'],
            'password': params['password']
        },
                                    partial=True)

        if serializer.is_valid():
            user = serializer.save()
            serializer = UserProfileSerializer(data={
                'user': user.id,
                'phone': params['account']
            },
                                               partial=True)
            if serializer.is_valid():
                profile = serializer.save()
                token = self.get_jwt_token(user)

                result = self.auth(request, user)
                if isinstance(result, ResponseContent):
                    return Response(result.content(),
                                    status=status.HTTP_401_UNAUTHORIZED)

                response.refresh(code=200,
                                 token=token,
                                 description=12001,
                                 data=serializer.data)
                state = status.HTTP_200_OK
            else:
                response.error = serializer.errors
        else:
            response.error = serializer.errors

        return Response(response.content(), status=state)
Example #22
0
    def post(self, request, *args, **kwargs):
        response = ResponseContent(code=200,
                                   token=request.auth,
                                   description=12051)
        state = status.HTTP_200_OK

        detail = self.readiness(request)
        if isinstance(detail, ResponseContent):
            return Response(detail.content(),
                            status=status.HTTP_406_NOT_ACCEPTABLE)
        try:
            stages = MaoStage.objects.filter(chapter__id=request.data['gcid'])
            serializer = MaoStageSerializer(stages, many=True)
            response.data = serializer.data
        except Exception as e:
            response.refresh(code=602, description=10554, error=e.__str__())
            state = status.HTTP_500_INTERNAL_SERVER_ERROR

        return Response(response.content(), status=state)
Example #23
0
    def post(self, request, *args, **kwargs):
        response = ResponseContent(code=200,
                                   token=request.auth,
                                   description=12007)
        state = status.HTTP_200_OK
        params = request.data

        detail = self.readiness(request)
        if isinstance(detail, ResponseContent):
            return Response(detail.content(),
                            status=status.HTTP_406_NOT_ACCEPTABLE)

        user = detail['user']
        profile = detail['profile']

        if 'name' in params:
            serializer = UserSerializer(user,
                                        data={
                                            'first_name': params['name'][0:1],
                                            'last_name': params['name'][1:]
                                        },
                                        partial=True)
            if serializer.is_valid():
                serializer.save()
            else:
                response.refresh(code=601,
                                 description=10505,
                                 error=serializer.errors)
                state = status.HTTP_500_INTERNAL_SERVER_ERROR

        serializer = UserProfileSerializer(profile,
                                           data=request.data,
                                           partial=True)
        if serializer.is_valid():
            serializer.save()
            response.data = serializer.data
        else:
            response.refresh(code=601,
                             description=10505,
                             error=serializer.errors)
            state = status.HTTP_500_INTERNAL_SERVER_ERROR

        return Response(response.content(), status=state)
Example #24
0
    def post(self, request, *args, **kwargs):
        response = ResponseContent(code=200,
                                   token=request.auth,
                                   description=12017)
        state = status.HTTP_200_OK

        detail = self.readiness(request)
        if isinstance(detail, ResponseContent):
            return Response(detail.content(),
                            status=status.HTTP_406_NOT_ACCEPTABLE)

        try:
            course = Course.objects.filter(
                ClsCourseCourse__teacher=request.user.id)
            serializer = CourseSerializer(course, many=True)
            response.data = serializer.data
        except Exception as e:
            response.refresh(code=604, description=10515, error=e.__str__())
            state = status.HTTP_500_INTERNAL_SERVER_ERROR

        return Response(response.content(), status=state)
Example #25
0
    def post(self, request, *args, **kwargs):
        response = ResponseContent(code=200,
                                   token=request.auth,
                                   description=12032)
        state = status.HTTP_200_OK
        params = request.data
        data = []
        detail = self.readiness(request)

        try:
            question = HomeworkDetail.objects.filter(
                homework__curriculum__cls=params['oid'],
                homework__curriculum__lesson=params['lid'],
                enable=1)
            serializer = QuestionSerializer(question, many=True)
            response.data = serializer.data
        except Exception as e:
            response.refresh(code=604, description=10533, error=e.__str__())
            state = status.HTTP_500_INTERNAL_SERVER_ERROR

        return Response(response.content(), status=state)
Example #26
0
    def post(self, request, *args, **kwargs):
        response = ResponseContent(code=200,
                                   token=request.auth,
                                   description=12004)
        state = status.HTTP_200_OK
        params = request.data
        try:
            record = MaoRecord.objects.filter(id=request.data['mrcid'])
            if record.exists():
                record = record.last()
                response.data = {
                    'code': record.origin_code,
                    'result': record.result,
                    'output': record.output,
                    'score': record.score,
                    'success': record.success
                }
        except Exception as e:
            response.refresh(code=602, description=10557, error=e.__str__())
            state = status.HTTP_500_INTERNAL_SERVER_ERROR

        return Response(response.content(), status=state)
Example #27
0
    def post(self, request, *args, **kwargs):
        response = ResponseContent(code=200,
                                   token=request.auth,
                                   description=12037)
        state = status.HTTP_200_OK

        detail = self.readiness(request)
        if isinstance(detail, ResponseContent):
            return Response(detail.content(),
                            status=status.HTTP_406_NOT_ACCEPTABLE)

        serializer = QuestionSerializer(detail['question'],
                                        data=request.data,
                                        partial=True)
        if serializer.is_valid():
            serializer.save()
        else:
            response.refresh(code=11001,
                             description=10535,
                             error=serializer.errors)
            state = status.HTTP_500_INTERNAL_SERVER_ERROR

        return Response(response.content(), status=state)
Example #28
0
    def post(self, request, *args, **kwargs):
        response = ResponseContent(mark=False,
                                   code=200,
                                   token=request.auth,
                                   description=12017)
        state = status.HTTP_200_OK
        params = request.data
        data = []

        detail = self.readiness(request)
        try:
            example = LessonDetail.objects.filter(lesson=params['lid'],
                                                  enable=1).order_by('idx')
            serializer = ExampleSerializer(example, many=True)
            response.data = serializer.data
        except Exception as e:
            response.refresh(mark=True,
                             code=604,
                             description=10515,
                             error=e.__str__())
            state = status.HTTP_500_INTERNAL_SERVER_ERROR

        return Response(response.content(), status=state)
Example #29
0
    def post(self, request, *args, **kwargs):
        response = ResponseContent(code=200,
                                   token=request.auth,
                                   description=12005)
        state = status.HTTP_200_OK
        params = request.data

        detail = self.readiness(request)
        if isinstance(detail, ResponseContent):
            return Response(detail.content(),
                            status=status.HTTP_406_NOT_ACCEPTABLE)

        try:
            comment = Comment.objects.filter(homework=params['hid'],
                                             student=params['student'])
            if comment.exists():
                response.data = CommentSerializer(comment[0]).data
            else:
                response.data = {}
        except Exception as e:
            response.refresh(code=602, description=10503, error=e.__str__())
            state = status.HTTP_500_INTERNAL_SERVER_ERROR

        return Response(response.content(), status=state)