def test_answer(self):
        u1 = User(username='******')
        u2 = User(username='******')
        q1 =Question(example="example1",system1="system1",system2="system2")
        q2 =Question(example="example1",system1="system3",system2="system4")
        q3 =Question(example="example2",system1="system1",system2="system2")

        db.session.add(u1)
        db.session.add(u2)
        db.session.add(q1)
        db.session.add(q2)
        db.session.add(q3)
        db.session.commit()

        self.assertEqual(u1.answers.all(), [])
        self.assertEqual(u2.answers.all(), [])

        a1 = q1.answer(0,u1)
        a2 = q2.answer(1,u1)

        a3 = q1.answer(1,u2)
        a4 = q3.answer(0,u2)



        db.session.add(a1)
        db.session.add(a2)
        db.session.add(a3)
        db.session.add(a4)
        db.session.commit()

        print(u1.answered_questions().all())
        self.assertEqual(u1.number_answers(),2)
        self.assertEqual(u2.answered_questions().all(),[q1,q3])
Esempio n. 2
0
def addComplete(qt_name):
    q = Question()
    qt = QuestionType.query.filter_by(name=qt_name).first()
    print qt.name
    form = AddQuestionForm()
    q.context = form.context.data
    subject = '数据结构'

    q.subject_id = Subject.query.filter_by(name=subject).first().id

    if qt_name == '选择题':
        q.options = form.options.data
    q.answer = form.answer.data
    q.degree = int(request.form['kn_point_degree'])

    q.kn_point_counts = int(request.form['kn_point_counts'])
    q.kn_point_id = KnowledgePoint.query.filter_by(
        name=request.form['kn_point_id_1']).first().id
    q.question_type_id = qt.id

    db.session.add(q)
    db.session.commit()
    qt_name = ''
    return render_template('ques/add.html',
                           form=form,
                           qt_name=qt_name,
                           message='添加成功')
Esempio n. 3
0
def insert_questions():
    f = open('/home/zhuzw/git/flasky/sql/data.txt', 'r')
    lines = f.readlines()
    f.close()

    for line in lines:
        print line
        tmp = line.replace("\n", "").split("|")
        q = Question()
        q.context = tmp[0]
        q.options = tmp[1]
        q.answer = tmp[2]
        qt = QuestionType.query.filter_by(name=tmp[3]).first()
        q.question_type = qt.id
        q.kn_point = tmp[4]
        q.degree = tmp[5]
        q.accuracy = 0
        q.appearance = 0
        u = User.query.filter_by(username="******").first()
        q.professor_id = u.id

        if q.question_type is "选择题":
            q.score = 3
        elif q.question_type is "判断题":
            q.score = 2
        elif q.question_type is "填空题":
            q.score = 5
        elif q.question_type is "主观题":
            q.score = 10
        else:
            print "error"
            print line
            sys.exit()
        db.session.add(q)
        db.session.commit()
def questions():
	questions = current_user.questions.all()
	form = CreateQuestionForm()
	users = User.query.all()
	userlist = [(u.username, u.username) for u in users]
	form.assign_to.choices=userlist
	if form.validate_on_submit():
		question = Question(expression=form.expression.data)
		evalans = EvaluateExpression(form.expression.data)
		question.answer = evalans.evaluate()
		question.author = current_user.id 
		challenge = Challenge(question=question)
		username_to = []
		for name in form.assign_to.data:
			username_to.append(User.query.filter_by(username=name).first())

		challenge.to_user = username_to
		db.session.add(question)
		db.session.add(challenge)
		db.session.commit()
		flash('Congratulations, you have created a new question.')
		questions = current_user.questions.all()
		return render_template('questions.html', title='Questions', 
							user=current_user,
							questions=questions,
							form=form)
	return render_template('questions.html', title='Questions', 
							user=current_user,
							questions=questions,
							form=form)
Esempio n. 5
0
    def new_question(course_id, test_id):
        form = QuestionForm()

        if form.validate_on_submit():
            q = Question()
            q.test_id = test_id
            q.question_type = int(form.question_type.data)
            q.question_string = repr(form.description.data.encode())[2:-1]
            q.code_string = repr(form.code_string.data.encode())[2:-1]
            q.mcq_1 = form.mcq_1.data
            q.mcq_2 = form.mcq_2.data
            q.mcq_3 = form.mcq_3.data
            q.mcq_4 = form.mcq_4.data
            q.mcq_answer = form.mcq_solution.data
            q.answer = form.solution.data
            q.mark_alloc = form.mark_alloc.data

            db.session.add(q)
            db.session.commit()

        return redirect(
            url_for('edit_test_view', course_id=course_id, test_id=test_id))
Esempio n. 6
0
def upload():
    if request.method == 'GET':
        return render_template('ques/upload.html')
    elif request.method == 'POST':
        f = request.files['file']

        fname = secure_filename(f.filename)

        filename = os.path.join(UPLOAD_FOLDER, fname)
        f.save(filename)

        print 'path:', filename
        datas = excel_table_byindex(filename)

        for row in datas:
            ques = Question()
            ques.context = row['context']
            ques.answer = row['answer']
            ques.degree = row['degree']

            if row['ques_type'] == '选择题':
                ques.options = row['options']

            ques.subject_id = Subject.query.filter_by(
                name=row['subject']).first().id
            ques.kn_point_id = KnowledgePoint.query.filter_by(
                name=row['kn_points']).first().id
            ques.question_type_id = QuestionType.query.filter_by(
                name=row['ques_type']).first().id
            ques.professor_id = User.query.filter_by(
                username='******').first().id

            db.session.add(ques)
        db.session.commit()

        return render_template('ques/message.html', message='上传成功')