Example #1
0
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)
Example #2
0
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)