mirror of
https://github.com/MarijnDoeve/TijdVoorDeTest.git
synced 2026-07-05 23:20:18 +02:00
Answer on candidate (#72)
* Add Penalty Seconds on tests * Refactors and start of candidate answer relation * Add breadcrumbs and UI consistency updates across backoffice templates * Add breadcrumbs and UI consistency updates across backoffice templates * Add Dutch translations for email verification and security messages * Rector * Refactor for code consistency and type safety assertions across repositories and entities * Refactor candidate-related logic to optimize queries, improve template separation, and add "Answer Mapping" functionality. * Cleanup * Update Symfony * Add coderabbit config * Fixes from coderabbit
This commit is contained in:
@@ -99,6 +99,14 @@ final class QuizController extends AbstractController
|
||||
|
||||
if ('POST' === $request->getMethod()) {
|
||||
// TODO: Extract saving answer logic to a service
|
||||
// Check if candidate is inactive for this quiz
|
||||
$quizCandidate = $this->quizCandidateRepository->findOneBy(['quiz' => $quiz, 'candidate' => $candidate]);
|
||||
if (null !== $quizCandidate && !$quizCandidate->active) {
|
||||
$this->addFlash(FlashType::Danger, $this->translator->trans('You are not allowed to answer this quiz'));
|
||||
|
||||
return $this->redirectToRoute('tvdt_quiz_enter_name', ['seasonCode' => $season->seasonCode]);
|
||||
}
|
||||
|
||||
$answer = $this->answerRepository->findOneBy(['id' => $request->request->get('answer')]);
|
||||
|
||||
if (!$answer instanceof Answer) {
|
||||
@@ -123,7 +131,14 @@ final class QuizController extends AbstractController
|
||||
return $this->redirectToRoute('tvdt_quiz_enter_name', ['seasonCode' => $season->seasonCode]);
|
||||
}
|
||||
|
||||
$this->quizCandidateRepository->createIfNotExist($quiz, $candidate);
|
||||
$result = $this->quizCandidateRepository->createIfNotExist($quiz, $candidate);
|
||||
|
||||
// Check if candidate is inactive
|
||||
if (null === $result) {
|
||||
$this->addFlash(FlashType::Danger, $this->translator->trans('You are not allowed to answer this quiz'));
|
||||
|
||||
return $this->redirectToRoute('tvdt_quiz_enter_name', ['seasonCode' => $season->seasonCode]);
|
||||
}
|
||||
|
||||
// end of extracting getting next question logic
|
||||
return $this->render('quiz/question.twig', ['candidate' => $candidate, 'question' => $question, 'season' => $season]);
|
||||
|
||||
Reference in New Issue
Block a user