示例#1
0
文件: utiles.py 项目: nukru/projectQ
def new_answer(question, form, user):
    if isinstance(question, QuestionYN):
        answer = Answer(answerYN=(form["c" + str(question.id)].data == "Yes"), user=user, question=question)
        answer.answerText = str(answer.answerYN)
    if isinstance(question, QuestionText):
        if question.isNumber:
            if question.isNumberFloat:
                answer = Answer(
                    answerNumeric=form["c" + str(question.id)].data.replace(",", "."), user=user, question=question
                )
            else:
                answer = Answer(answerNumeric=form["c" + str(question.id)].data, user=user, question=question)
            answer.answerText = answer.answerNumeric
        else:
            answer = Answer(answerText=form["c" + str(question.id)].data, user=user, question=question)
    if isinstance(question, QuestionChoice):
        answer = Answer(answerNumeric=form["c" + str(question.id)].data, user=user, question=question)
        if question.render != "select":
            answer.answerText = form["c" + str(question.id)].choices[int(form["c" + str(question.id)].data)][1]
        else:
            # if ==select, the firts element is empty, form[0]=''
            answer.answerText = form["c" + str(question.id)].choices[int(form["c" + str(question.id)].data) + 1][1]
    if isinstance(question, QuestionLikertScale):
        answer = Answer(answerNumeric=form["c" + str(question.id)].data, user=user, question=question)
        answer.answerText = form["c" + str(question.id)].choices[int(form["c" + str(question.id)].data)][1]
    answer.globalTime = form["globalTimec" + str(question.id)].data
    answer.differentialTime = form["differentialTimec" + str(question.id)].data
    return answer
示例#2
0
def new_answer(question,form,user):
    if isinstance (question,QuestionYN):
        answer = Answer (answerYN = (form["c"+str(question.id)].data=='Yes'), user= user, question = question)
        answer.answerText = str(answer.answerYN)
    if isinstance (question,QuestionText):
        if question.isNumber:
            if question.isNumberFloat:
                answer = Answer (answerNumeric = form["c"+str(question.id)].data.replace(",","."), user= user, question = question)
            else:
                answer = Answer (answerNumeric = form["c"+str(question.id)].data, user= user, question = question)
            answer.answerText= answer.answerNumeric
        else:
            answer = Answer (answerText = form["c"+str(question.id)].data, user= user, question = question)
    if isinstance (question,QuestionChoice):
        answer = Answer (answerNumeric = form["c"+str(question.id)].data, user= user, question = question)
        answer.answerText = form["c"+str(question.id)].choices[int(form["c"+str(question.id)].data)][1]
    if isinstance (question, QuestionLikertScale):
        answer = Answer (answerNumeric = form["c"+str(question.id)].data, user= user, question = question)
        answer.answerText = form["c"+str(question.id)].choices[int(form["c"+str(question.id)].data)][1]
    answer.globalTime = form["globalTimec"+str(question.id)].data
    answer.differentialTime = form["differentialTimec"+str(question.id)].data
    return answer
示例#3
0
 def answer_question(user,q, time):
     l=[0,0.5,1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,6.5,7,7.5,8,8.5,9,9.5,10]
     l2=[0,2,4,6,8,10,12,14,16,18,20]
     if q.decision=="decision_one_v1":
         i=random.choice(l)
         answer=models.Answer(answerNumeric=i,user=user,question=q)
         answer.answerText=(i)
     elif q.decision=="decision_one_v2":
         i=random.choice(l)
         answer=models.Answer(answerNumeric=i,user=user,question=q)
         answer.answerText=(i)
     elif q.decision=="decision_two":
         i=random.choice(l)
         answer=models.Answer(answerNumeric=i,user=user,question=q)
         answer.answerText=(i)
     elif q.decision=="decision_three":
         i=random.choice(l)
         answer=models.Answer(answerNumeric=i,user=user,question=q)
         answer.answerText=(i)
     elif q.decision=="decision_four":
         i=random.choice(l2)
         answer=models.Answer(answerNumeric=i,user=user,question=q)
         answer.answerText=(i)
     elif q.decision=="decision_six":
         i=random.choice(l2)
         answer=models.Answer(answerNumeric=i,user=user,question=q)
         answer.answerText=(i)
     elif q.decision=="decision_five":
         i=random.randrange(0,2)
         answer=models.Answer(answerNumeric=i,user=user,question=q)
         answer.answerText = q.choices[answer.answerNumeric]
     elif isinstance (q, QuestionYN):
         answer = Answer (answerYN =random.randrange(0,2)==1, user= user, question = q)
         answer.answerText = str(answer.answerYN)
     elif isinstance (q, QuestionText):
         if q.isExpectedAnswer():
             if random.choice([0,1,1])==1:
             # 66% of know the answer
                 answer = Answer (answerText =q.expectedAnswer.lower(), user= user, question = q)
                 answer.numberAttempt= random.randrange(1, q.maxNumberAttempt+1)
             else:
                 answer = Answer (answerText =forgery_py.forgery.lorem_ipsum.word(), user= user, question = q)
                 answer.numberAttempt= q.maxNumberAttempt+1
         elif q.isNumber:
             answer = Answer (answerNumeric =random.randrange(0,100), user= user, question = q)
             answer.answerText = answer.answerNumeric
         else:
             answer = Answer (answerText =forgery_py.forgery.lorem_ipsum.word(), user= user, question = q)
     elif isinstance (q,QuestionChoice):
         if q.is_range:
             answer = Answer (answerNumeric =random.randrange(q.range_min,q.range_max), user= user, question = q)
             answer.answerText = answer.answerNumeric
         else:
             answer = Answer (answerNumeric =random.randrange(0,len(q.choices)), user= user, question = q)
             answer.answerText = q.choices[answer.answerNumeric]
     elif isinstance (q,QuestionLikertScale):
         answer = Answer (answerNumeric =random.randrange(q.minLikert,q.maxLikert+1), user= user, question = q)
         answer.answerText = answer.answerNumeric
     else:
         print "tipo de pregunta invalido"
         quit()
     t = random.randrange(900, 6500)
     time = time + t
     answer.globalTime = time
     answer.differentialTime = t
     db.session.add(answer)
     return time