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
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
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