def get_lines(self): from course.models.parsons_question import ParsonsQuestion if not isinstance(self.question, ParsonsQuestion): return {} random.seed(self.random_seed) lines = [] for line in self.question.lines: lines.append(render_text(line, self.get_variables())) random.shuffle(lines) return lines
def get_additional_file(self, submission): code = render_text(submission.answer, submission.uqj.get_variables()) filename = submission.question.additional_file_name if not filename: return None zipfile = BytesIO() z = ZipFile(zipfile, "w") z.writestr(filename, code) z.close() return encodebytes(zipfile.getvalue()).decode("UTF-8").strip()
def get_rendered_choices(self): if not isinstance(self.question, MultipleChoiceQuestion): return {} choices = json.loads(self.question.choices) if type( self.question.choices) == str else self.question.choices keys = list(choices.keys()) keys = keys[:self.question.visible_distractor_count + 1] random.seed(self.random_seed) random.shuffle(keys) return { key: render_text(choices[key], self.get_variables()) for key in keys }
def get_rendered_choices(self): from course.models.multiple_choice import MultipleChoiceQuestion if not isinstance(self.question, MultipleChoiceQuestion): return {} choices = json.loads(self.question.choices) if type( self.question.choices) == str else self.question.choices keys = list(choices.keys()) keys = keys[:self.question.visible_distractor_count + len(self.question.answer.split(','))] random.seed(self.random_seed) random.shuffle(keys) return { key: render_text(choices[key], self.get_variables()) for key in keys }
def get_lines(self): from course.models.parsons import ParsonsQuestion if not isinstance(self.question, ParsonsQuestion): return {} random.seed(self.random_seed) rendered_lines = [] for input_files in self.question.input_files: lines = [ render_text(line, self.get_variables()) for line in input_files['lines'] ] random.shuffle(lines) rendered_lines.append({ 'name': input_files['name'], 'lines': lines }) return rendered_lines
def get_rendered_text(self): return render_text(self.question.text, self.get_variables())
def get_source_code(self, submission): code = render_text(submission.question.junit_template, submission.uqj.get_variables()) return code.replace("{{code}}", submission.answer)
def get_source_code(self, submission): source_code = render_text(submission.question.junit_template, submission.uqj.get_variables()) for filename, code in submission.get_embed_files().items(): source_code = source_code.replace("{{" + filename + "}}", code) return source_code