예제 #1
0
def saveEssay(request):

    result = {}
    if request.POST:
        #获取表单
        #TODO:title从数据库获取
        # title = request.POST['title']
        content = request.POST['content']
        sign = request.POST['sign']
        user_essay_id = request.POST['record_id']
        result['sign'] = sign

        # 1.session获取截止日期的任务id
        record = User_Essay.objects.get(id=user_essay_id)
        essay = record.essay_id

        # 2.session获取用户id
        user = User.objects.get(user_id=request.session['user_id'])

        if len(User_Essay.objects.filter(user_id=user, essay_id=essay)) > 0:
            # 有就更新
            record = User_Essay.objects.get(user_id=user, essay_id=essay)
            record.content = content
            # record.user_title = title
            record.save()
            # if sign == '1':
            #     return HttpResponseRedirect('/main/login_action')

        # else:
        #没有就创建
        # User_Essay.objects.create(content=content, isSubmit=False, essay_id=essay, user_id=user, user_title=title)

        # 1为保存; 2 为提交
        # if sign == '1':
        #     #TODO:经验值
        #     return HttpResponseRedirect('/login_action')

        if sign == '2':
            # User_Essay.objects.create(content=content, isSubmit=True, essay_id=essay, user_id=user, user_title=title)

            #创建结果
            result['chart1'] = json.dumps(check.getChart1(content))
            result['chart2'] = json.dumps(check.getChart2(content))
            errors, detail = check.getErrors(content)
            result['errors'] = json.dumps(errors)
            result['detail'] = json.dumps(detail)
            result['feedback'] = check.getFeedback(content)
            result['actual_name'] = request.session['actual_name']
            # TODO:排名
            #
            #TODO:经验值
            user.exp = user.exp + 10
            user.save()
            #评分
            if "water" in record.user_title:
                scorer = sc.Score(title=1)
            else:
                #haste waste
                scorer = sc.Score(title=0)
            result['score'] = scorer.run([content])

            #检测离题
            if "water" in record.user_title:
                detector_su = offtopic.Detection(title=1)
            else:
                #haste waste
                detector_su = offtopic.Detection(title=0)

            # detector_su = offtopic.Detection(title=0)
            contentwrapper = []
            contentwrapper.append(content)
            detect_result = detector_su.run(contentwrapper)
            temp = False
            if detect_result == 'true':
                result['isOffTopic'] = "切题"
                temp = True
            elif detect_result == 'false':
                result['isOffTopic'] = "跑题"
                temp = False
            Report.objects.get_or_create(user_id=user,
                                         essay_id=essay,
                                         error=result['errors'],
                                         chart1=result['chart1'],
                                         chart2=result['chart2'],
                                         detail=result['detail'],
                                         isOffTopic=temp,
                                         score=result['score'],
                                         feedback=result['feedback'])

            print '++++++++++++++', result['score']

            # 传入内容渲染
            dict = {}
            dict['content'] = record.content
            result['content'] = json.dumps(dict)

            # 更新属性
            record = User_Essay.objects.get(user_id=user, essay_id=essay)
            record.isSubmit = True
            record.save()

            return render(request, 'planResult.html', result)

        user = record.user_id
        # print report
        # 创建结果
        result['title'] = record.user_title
        result['content'] = record.content
        result['type'] = essay.type
        result['user_id'] = user.user_id
        result['record_id'] = record.id
        request.session['user_id'] = user.user_id
        return render(request, 'planWrite.html', result)
예제 #2
0
def saveUnsuperviesd(request):
    result = {}
    if request.POST:
        # 获取表单
        title = request.POST['title']
        content = request.POST['content']
        sign = request.POST['sign']
        user_essay_id = request.POST['record_id']
        print '+++++++++++++++', type(user_essay_id)
        result['sign'] = sign
        # 1.session获取截止日期的任务id
        # TODO:改正
        record = User_Essay.objects.get(id=user_essay_id)
        essay = record.essay_id
        # 2.session获取用户id
        #TODO:改
        user = User.objects.get(user_id=request.session['user_id'])

        if len(User_Essay.objects.filter(user_id=user, essay_id=essay)) > 0:
            # 有就更新
            record = User_Essay.objects.get(user_id=user, essay_id=essay)
            record.content = content
            record.user_title = title
            record.save()
            # if sign == '1':
            #     return HttpResponseRedirect('/main/login_action')#*************************

        else:
            # 没有就创建
            User_Essay.objects.create(content=content,
                                      isSubmit=False,
                                      essay_id=essay,
                                      user_id=user,
                                      user_title=title)

        # 1为保存; 2 为提交
        # if sign == '1':
        #     return HttpResponseRedirect('/login_action')

        if sign == '2':
            # User_Essay.objects.create(content=content, isSubmit=True, essay_id=essay, user_id=user, user_title=title)

            # 创建结果
            result['chart1'] = json.dumps(check.getChart1(content))
            result['chart2'] = json.dumps(check.getChart2(content))
            errors, detail = check.getErrors(content)
            result['errors'] = json.dumps(errors)
            result['detail'] = json.dumps(detail)
            result['feedback'] = check.getFeedback(content)
            result['actual_name'] = request.session['actual_name']
            # TODO:排名
            user.exp = user.exp + 10
            user.save()
            #
            # 检测离题
            detector_un.set_title(title)
            # detect_result=float(detector_un.offtopic_detect(content, 'LDA'))
            detect_result = float(
                detector_un.offtopic_detect(content, 'TextRank'))
            boolean_value = False
            if detect_result < 0.15:
                result['isOffTopic'] = "跑题"
                boolean_value = False
            else:
                result['isOffTopic'] = "切题"
                boolean_value = True

            result['score'] = 'no'

            Report.objects.get_or_create(user_id=user,
                                         essay_id=essay,
                                         error=result['errors'],
                                         chart1=result['chart1'],
                                         chart2=result['chart2'],
                                         detail=result['detail'],
                                         isOffTopic=boolean_value,
                                         score='no',
                                         feedback=result['feedback'])

            # 传入内容渲染
            dict = {}
            dict['content'] = record.content
            result['content'] = json.dumps(dict)

            # 更新属性
            record = User_Essay.objects.get(user_id=user, essay_id=essay)
            record.isSubmit = True
            record.save()

            return render(request, 'planResult.html', result)

        user = record.user_id
        # print report
        # 创建结果
        result['title'] = record.user_title
        result['content'] = record.content
        result['type'] = essay.type
        result['user_id'] = user.user_id
        result['record_id'] = record.id
        request.session['user_id'] = user.user_id
        return render(request, 'selfWrite.html', result)