def markdown_questionlist(qlist): qlist.formatted_questions = [] for q in qlist.questions: if isinstance(q,Question): question = q else: question = Question.get(q) if question: question.formatted_text = mymarkdown(question.text) qlist.formatted_questions.append(question)
def import_data(questions, categories, answers): categories_dict = {} num_lines = sum(1 for line in open(categories)) with open(categories, newline="") as csv_file: reader = csv.reader(csv_file) for row in tqdm(reader, desc="Reading categories", total=num_lines): id_ = int(row[0]) category = row[2] categories_dict[id_] = category if questions != "skip": num_lines = sum(1 for line in open(questions)) with open(questions, newline="") as csv_file: reader = csv.reader(csv_file) it = tqdm(reader, desc="Reading questions", total=num_lines) for i, row in enumerate(it): try: id_ = int(row[0]) category_id = int(row[3]) question = Question(meta={"id": id_}) question.date = row[1] question.category = categories_dict[category_id] question.title = row[4] question.body = "\n".join(row[5:]) question.save() except (IndexError, ValueError): continue if answers != "skip": with open(answers, newline="") as csv_file: reader = csv.reader(csv_file) it = tqdm(reader, desc="Reading answers") for i, row in enumerate(it): try: question_id = int(row[3]) question = Question.get(id=question_id) if question.answers is None: question.answers = row[4] else: question.answers += "\n\n" + row[4] question.save() except (IndexError, ValueError, NotFoundError): continue
def get(self): user = self.get_current_user() if not user: self.redirect('/') return key = db.Key(encoded=self.request.get('key')) qlist = QuestionList.get(key) questions = [] question_keys = [] for q in qlist.questions: question = Question.get(q) if question: question.formatted_text = mymarkdown(question.text) questions.append(question) question_keys.append(str(question.key())) edit = self.request.get("edit") if edit == 'true' and user.isTeacher(): edit = True class_list = get_teacher_classes(user) self.start_edit_question_list(qlist) else: edit = False class_list = [] goto = self.request.get("goto") if goto == None or goto == '': goto = '/' template_values = {'qlist': qlist, 'questions': questions, 'question_keys': question_keys, 'edit': edit, 'class_list': class_list, 'goto': goto, } write_template(self, user, 'question_list.html', template_values)