Ejemplo n.º 1
0
def userReport(sid):
    path = USER_PATH+os.path.basename(sid)

    test = Test()
    if not os.path.exists(path+'/test'):
	return {}
    test.readFromFile(path+'/test')

    answer = Answer()
    if not os.path.exists(path+'/answer'):
	return {}
    answer.readFromFile(path+'/answer')

    test.applyAnswers(answer)

    ret = {}
    qcount = test.questionsCount()
    ret['QUESTION_COUNT'] = str(qcount)
    aqcount = test.rightAnsweredQuestionsCount()
    ret['ANSWERED_QUESTION_COUNT'] = str(aqcount)
    ret['ANSWERED_QUESTION_COUNT_PERCENT'] = str(aqcount*100/qcount)

    ret['TEST_TITLE'] = escape(test.caption)

    db_conn = sqlite3.connect(USER_DB)
    db_cursor = db_conn.cursor()

    db_cursor.execute('SELECT `date`, `name`, `result`, `rank` FROM `users` WHERE `sid`=?', (sid,))
    for row in db_cursor:
	try:
	    date = datetime.fromtimestamp(int(row[0])).strftime("%d.%m.%Y %H:%m")
	except:
	    date = ""

        ret['DATE'] = date
        
        user_names = row[1].split(' ')
        full_user_name = user_names[0]
        for user_name in user_names[1:]:
	    if len(user_name):
		full_user_name += " "+user_name[0]+"."

        ret['USER_NAME'] = escape(full_user_name)
        ret['TEST_RESULT'] = str(row[2])
        ret['USER_RANK'] = escape(row[3])

    db_cursor.close()
    db_conn.close()

    return ret
Ejemplo n.º 2
0
def userControlTestHtml(sid):
    path = USER_PATH+os.path.basename(sid)

    test = Test()
    if not os.path.exists(path+'/test'):
	return u"Пользователь не проходил тест"
    test.readFromFile(path+'/test')

    answer = Answer()
    if not os.path.exists(path+'/answer'):
	return u"Пользователь не оправлял ответов"
    answer.readFromFile(path+'/answer')

    test.applyAnswers(answer)

    return test.serializeForHtml(show_hint=False)