Files
training-software/quizzes/urls.py
Paperclip CTO b59d06fddc
Some checks failed
CI / Tests (Python 3.12) (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / OpenAPI Schema (push) Has been cancelled
feat(TRA-239): implement Quiz Engine — SC/MC + short answer with deterministic randomization
- Quiz, Question, Choice, QuizAttempt, QuestionResponse models with migrations
- seed-based deterministic randomization for questions and choices per attempt
- SC/MC grading (all-or-nothing per question), short-answer regex/keyword matching
- submit_attempt: grades all responses, computes score_percent, marks passed/failed
- DRF API: start attempt, submit response, submit (finalize) attempt, quiz detail
- 25 unit + integration tests covering grading correctness, boundary conditions,
  randomization reproducibility, API flows, and access control

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-07 09:15:18 +02:00

20 lines
667 B
Python

from django.urls import path
from .views import (
AttemptDetailView,
QuizDetailView,
StartAttemptView,
SubmitAttemptView,
SubmitResponseView,
)
app_name = "quizzes"
urlpatterns = [
path("<uuid:quiz_id>/", QuizDetailView.as_view(), name="quiz-detail"),
path("<uuid:quiz_id>/attempts/", StartAttemptView.as_view(), name="start-attempt"),
path("attempts/<uuid:attempt_id>/", AttemptDetailView.as_view(), name="attempt-detail"),
path("attempts/<uuid:attempt_id>/responses/", SubmitResponseView.as_view(), name="submit-response"),
path("attempts/<uuid:attempt_id>/submit/", SubmitAttemptView.as_view(), name="submit-attempt"),
]