Add test template

This commit is contained in:
Piotr Kopycki 2022-01-17 16:31:09 +01:00
parent 6703406b7e
commit 1c4e733e78
5 changed files with 139 additions and 3 deletions

View File

@ -0,0 +1,46 @@
{% extends "base.html" %}
{% load rest_framework %}
{% block title %}New Test{% endblock %}
{% block content %}
<div class="newContainer">
<form method="post">
<h1>Add questions</h1>
{% for i in 1|range:4 %}
<h2>Question {{i}}</h2>
<label for="desc">Description: </label>
<input id="desc" type="text" name="desc">
<br>
<br>
<label for="ans1">Answer 1: </label>
<input id="ans1" type="text" name="ans1">
<br>
<br>
<label for="ans2">Answer 2: </label>
<input id="ans2" type="text" name="ans2">
<br>
<br>
<label for="ans3">Answer 3: </label>
<input id="ans3" type="text" name="ans3">
<br>
<br>
<label for="ans4">Answer 4: </label>
<input id="ans4" type="text" name="ans4">
<br>
<br>
<label for="category">Category: </label>
<select name="category" id="category">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<br>
<br>
{% endfor %}
<input type="submit" value="Add questions">
</form>
</div>
{% endblock %}

View File

@ -13,7 +13,7 @@
<body>
<div class="sidenav">
<a href="/home">Home</a>
<a href="/test/create">Create test</a>
<a href="{% url 'newTest' %}">Create test</a>
<a href="/users/tests">Your tests</a>
<p>Categories</p>
<a href="/category/JezykPolski">Język polski</a>

41
templates/createTest.html Normal file
View File

@ -0,0 +1,41 @@
{% extends "base.html" %}
{% load rest_framework %}
{% block title %}New Test{% endblock %}
{% block content %}
<div class="newContainer">
<form method="post">
<h1>Create test</h1>
<label for="name">Name: </label>
<input id="name" type="text" name="name" value="New test">
<br>
<br>
<label for="category">Category: </label>
<select name="category" id="category">
<option value="JezykPolski">Język Polski</option>
<option value="JezykAngielski">Język Angielski</option>
<option value="JezykNiemiecki">Język Niemiecki</option>
<option value="Matematyka">Matematyka</option>
<option value="Informatyka">Informatyka</option>
<option value="Fizyka">Fizyka</option>
<option value="Chemia">Chemia</option>
<option value="Biologia">Biologia</option>
<option value="Geografia">Geografia</option>
<option value="Historia">Historia</option>
</select>
<br>
<br>
<label for="questions">Number of questions: </label>
<input id="questions" type="number" name="questions" value="10">
<br>
<br>
<label for="passing">Passing score: </label>
<input id="passing" type="number" name="passing" value="5">
<br>
<br>
<input type="submit" value="Add questions">
</form>
</div>
{% endblock %}

View File

@ -4,7 +4,7 @@ from rest_framework.routers import DefaultRouter
from trials.views import TestModelViewSet
from trials.views import TestTemplateView
from trials.views import TestValidateAPIView
from trials.views import TestResultView
from trials.views import TestResultView, addTest, addQuestions
router = DefaultRouter(trailing_slash=False)
router.register("items", TestModelViewSet)
@ -12,7 +12,9 @@ router.register("items", TestModelViewSet)
urlpatterns = [
path('<int:test_id>/show', TestTemplateView.as_view()),
path('<int:test_id>/mark', TestValidateAPIView.as_view()),
path('<int:test_id>/result', TestResultView.as_view())
path('<int:test_id>/result', TestResultView.as_view()),
path('add/test', addTest, name="newTest"),
path('add/questions', addQuestions, name="addQuestions")
]
urlpatterns += router.urls

View File

@ -7,6 +7,53 @@ from trials.models import Test
from trials.serializers import TestSerializer
from django.conf import settings
from django.http import HttpResponseRedirect
from django.shortcuts import render, redirect
from django import template
register = template.Library()
@register.filter()
def range(min=0):
return range(min)
def addTest(request):
if request.POST:
# TODO pass test meta do addQuestions view and then create object?
# form = RegistrationForm(request.POST)
# if form.is_valid():
# User.objects.create(
# email=form.cleaned_data["email"],
# first_name=form.cleaned_data["first_name"],
# last_name=form.cleaned_data["last_name"],
# password=form.cleaned_data["password1"]
# )
# return redirect('register_success')
# else:
# context['registration_form'] = form
# Instead of context:
#request.session['questNum'] = range(1, 4)
return redirect('addQuestions')
return render(request, 'createTest.html')
def addQuestions(request):
if request.POST:
pass
# TODO create test object?
# form = RegistrationForm(request.POST)
# if form.is_valid():
# User.objects.create(
# email=form.cleaned_data["email"],
# first_name=form.cleaned_data["first_name"],
# last_name=form.cleaned_data["last_name"],
# password=form.cleaned_data["password1"]
# )
# return redirect('register_success')
# else:
# context['registration_form'] = form
return render(request, 'addQuestions.html')
class TestModelViewSet(viewsets.ModelViewSet):