def home_view(request): if request.user.is_authenticated: #Check if form is submitted if request.method == 'POST': answers = [] quizId = request.POST.get('quiz', None) quizName = request.POST.get('quizName', None) for key in request.POST: if 'question' in key: questionId = key.split('_')[1] answer = request.POST[key] gameAnswer = GameAnswer(questionId, answer) quizAnswer = QuizAnswer(questionId=questionId, questionAnswer=answer) quizAnswer.save() answers.append(gameAnswer.__dict__) response = requests.post('http://127.0.0.1:8000/api/answers/' + quizId, json=answers) quizResult = GameResult(**response.json()) userQuizResult = QuizResult( quizName=quizName, correctAnswers=quizResult.correct_answers, userName=request.user) userQuizResult.save() return render(request, 'result.html', {'result': quizResult}) else: response = requests.get('http://127.0.0.1:8000/api/quiz') quiz = GameQuiz(**response.json()) return render(request, 'home.html', { 'user': request.user, 'quiz': quiz }) else: return redirect('login')
def tc_run_final_view(request, tc_id): tc = get_object_or_404(TaskCollection, pk=tc_id) response = HttpResponse() if "tc_task_id" not in request.session: response.write("<p>You haven't even started the quiz yet.</p>") return response if "tc_id" in request.session: if int(tc_id) != request.session["tc_id"]: response.write( "<p>You can't switch task collections on your own.</p>") return response tc_task_id = request.session["tc_task_id"] if tc_task_id < tc.number_of_tasks() - 1: response.write("<p>You're not done with the quiz yet.</p>") return response log = "" if "log" in request.session: log = request.session["log"] log += "Show final page." request.session.clear() current_date = datetime.now() date_iso8601 = current_date.isoformat(" ") hash_string = compute_hash(log, date_iso8601) quiz_result = QuizResult() quiz_result.date = current_date quiz_result.hash = hash_string quiz_result.log = log quiz_result.save() context_dict = dict(tc=tc) context_dict["hash"] = hash_string context = Context(context_dict) return render(request, 'tasks/tc_run_final.html', context)
def create(self, validated_data): # user = CurrentUserDefault() return QuizResult(**validated_data)