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 = quiz.leaf_questions()
16 raise NotImplementedError()
18 def display_results(self):
19 raise NotImplementedError()
21 def get_question(self):
23 return self.stack.pop(0)
25 def process_answer(self, question, answer):
26 correct = question.check(answer)
27 self.answers.add(question=question, answer=answer, correct=correct)
29 self.stack.insert(0, question)
30 for qid in reversed(question.dependencies):
31 self.stack.insert(0, self.quiz.get(id=qid))