def render(self, qn, idgen, renderer): assert self.text is not None, "Short answer question with no question text" self.note = renderer.render_text_html(self.note) self.rendered = renderer.render_text(self.text) template = Template(filename=template_filename("shortanswer")) fragment = template.render(question=self, title=qn, id=idgen()) return fragment
def render(self, qn, idgen, renderer): """ Render a question 'in house'. """ if 'random_order' in self.confopts: ro = self.confopts['random_order'] if ro == "yes" or ro == "Yes": ro = "Yes" elif ro == "no" or ro == "No": ro = "No" else: raise Exception(f"Invalid mcq random_order value, expected 'yes' or 'no' in question starting at line {self.startline}") self.random_order = ro else: self.random_order = "No" assert self.index is not None, "MCQ with no correct answer" template = Template(filename = template_filename("mcq")) self.note = renderer.render_text_html(self.note) self.rendered = renderer.render_text(self.stem) for option in self.options: option.rendered = renderer.render_text(option.text) return template.render( question = self, id = idgen(), title = qn )
def render(self, qn, idgen, renderer): assert len(self.options) > 0, "MAQ with no answers" template = Template(filename=template_filename("maq")) self.note = renderer.render_text_html(self.note) self.rendered = renderer.render_text(self.text) for option in self.options: option.rendered = renderer.render_text(option.text) fragment = template.render(question=self, title=qn, id=idgen()) return fragment
def render(self, counter, idgen, renderer): """ Render a question 'in house'. """ assert self.index is not None, "MCQ with no correct answer" template = Template(filename=template_filename("mcq")) self.rendered = renderer.render_text(self.stem) for option in self.options: option.rendered = renderer.render_text(option.text) return template.render(question=self, id=idgen(), title="Q" + str(counter))
def render(self, qn, idgen, renderer): template = Template(filename=template_filename("fillblank")) rendered = renderer.render_text(self.text) bcounter = 0 while re.search('[{][}]', rendered): tag = self.next_tag() if bcounter >= len(self.blanks): raise Exception( "Fewer answers than {} placeholders in fill-in-the-blank question, starting at line " + str(self.startline)) answer = self.blanks[bcounter] self.mapping[tag] = answer bcounter += 1 rendered = rendered.replace('{}', f"[{tag}]", 1) self.rendered = rendered if bcounter < len(self.blanks): raise Exception( "More answers than {} placeholders in fill-in-the-blank question starting at line " + str(self.startline)) return template.render(question=self, id=idgen(), title=qn)
def display(self, fmt): t = Template(filename=template_filename("html_blanks")) return t.render(question=self, fmt=fmt)
def render(self, qn, idgen, renderer): template = Template(filename=template_filename("numeric")) self.note = renderer.render_text_html(self.note) self.rendered = renderer.render_text(self.text) return template.render(question=self, id=idgen(), title=qn)
def display(self, fmt): """ Return a view of this question for the HTML output. """ t = Template(filename=template_filename("html_mcq")) return t.render(question=self, fmt=fmt)
def render(self, qn, idgen, renderer): template = Template(filename=template_filename("jumbled")) self.rendered = renderer.render_text(self.text2) return template.render(question=self, id=idgen(), title=qn)
def render(self, counter, idgen, renderer): template = Template(filename=template_filename("numeric")) self.rendered = renderer.render_text(self.text) return template.render(question=self, id=idgen(), title="Q" + str(counter))