1 from .. import answerdb as _answerdb
4 class UserInterface (object):
5 "Give a quiz over a generic user interface"
6 def __init__(self, quiz=None, answers=None, stack=None):
9 answers = _answerdb.AnswerDatabase()
10 self.answers = answers
12 stack = self.answers.get_never_correctly_answered(
13 questions=quiz.leaf_questions())
17 raise NotImplementedError()
19 def display_results(self):
20 raise NotImplementedError()
22 def get_question(self):
24 return self.stack.pop(0)
26 def process_answer(self, question, answer):
27 correct = question.check(answer)
28 self.answers.add(question=question, answer=answer, correct=correct)
30 self.stack.insert(0, question)
31 for qid in reversed(question.dependencies):
32 self.stack.insert(0, self.quiz.get(id=qid))