Пример #1
0
def update_quiz(request, id):
    data = json.loads(request.raw_post_data)
    quiz = Quiz.objects.get(id=id)
    quiz.title = data.get("title", quiz.title)
    quiz.subtitle = data.get("subtitle", quiz.subtitle)
    quiz.text = data.get("text", quiz.text)
    quiz.email = data.get("email", quiz.email)
    qids = []
    for qd in data.get("questions", []):
        qid = qd.get("id", None)
        if not qid:
            q = Question(index=qd['index'],
                         text=qd.get('text', ''),
                         choices=json.dumps(qd.get('choices', {})),
                         explanation=qd.get('explanation'),
                         correct=qd.get('correct', ''))
            q.save()
            qids.append(q.id)
            quiz.questions.add(q)
        else:
            q = Question.objects.get(id=qid)
            q.text = qd.get('text', '')
            q.choices = json.dumps(qd['choices'])
            q.correct = qd.get('correct', '')
            q.explanation = qd.get('explanation')
            q.index = qd['index']
            qids.append(q.id)
            q.save()
    # Look for questions that don't exist and delete them
    for q in Question.objects.filter(quiz=quiz):
        if not q.id in qids:
            q.delete()
    quiz.save()
    return retrieve_quiz(request, id)
Пример #2
0
    def test_can_save_question_to_database(self):
        first_question = Question()
        first_question.text = '1 + 1 = 2'
        first_question.ans = 'True'
        first_question.save()

        saved_items = Question.objects.all()
        self.assertEqual(saved_items.count(), 1)

        second_question = Question()
        second_question.text = '1 = 2'
        second_question.ans = 'False'
        second_question.save()

        saved_items = Question.objects.all()
        self.assertEqual(saved_items.count(), 2)

        self.assertEqual(Question.objects.all()[0].text, '1 + 1 = 2')
        self.assertEqual(Question.objects.all()[1].text, '1 = 2')
Пример #3
0
def home_page(request):
    if request.method == 'POST':
        q = Question()
        question_text = request.POST.get('question_text', '')
        ans = request.POST.get('ans', '')
        q.text = question_text
        q.ans = ans
        q.save()

        return redirect('/')

    questions = Question.objects.all()
    return render(request, 'quiz/home.html', {'questions': questions})
Пример #4
0
def home_page(request):
    if request.method == 'POST':
        q = Question()
        question_text = request.POST.get('question_text','')
        ans = request.POST.get('ans','')
        q.text = question_text
        q.ans = ans
        q.save()

        return redirect('/')

    questions = Question.objects.all()
    return render(request, 'quiz/home.html', {'questions':questions})
Пример #5
0
def update_quiz(request, id):
	data = json.loads(request.raw_post_data)
	quiz = Quiz.objects.get(id=id)
	quiz.title = data.get("title", quiz.title)
	quiz.subtitle = data.get("subtitle", quiz.subtitle)
	quiz.text = data.get("text", quiz.text)
	quiz.email = data.get("email", quiz.email)
	qids = []
	for qd in data.get("questions",[]):
		qid = qd.get("id", None)
		if not qid:
			q = Question(
				index=qd['index'],
				text=qd.get('text',''),
				choices=json.dumps(qd.get('choices',{})),
				explanation=qd.get('explanation'),
				correct=qd.get('correct','')
			)
			q.save()
			qids.append(q.id)
			quiz.questions.add(q)
		else:
			q = Question.objects.get(id=qid)
			q.text = qd.get('text','')
			q.choices = json.dumps(qd['choices'])
			q.correct = qd.get('correct','')
			q.explanation = qd.get('explanation')
			q.index = qd['index']
			qids.append(q.id)
			q.save()
	# Look for questions that don't exist and delete them
	for q in Question.objects.filter(quiz=quiz):
		if not q.id in qids:
			q.delete()
	quiz.save()
	return retrieve_quiz(request, id)