basic safety quiz implementation
This commit is contained in:
parent
2caa43345c
commit
f2dfb84e1a
@ -1,10 +1,14 @@
|
||||
<?php
|
||||
namespace App\Controller;
|
||||
|
||||
use App\Form\SafetyQuizType;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Routing\Annotation\Route;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\Yaml\Yaml;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use jv\intranet\Types\NavbarItem;
|
||||
|
||||
class SafetyController extends AbstractController
|
||||
{
|
||||
#[Route('/training/safety')]
|
||||
@ -15,8 +19,16 @@ class SafetyController extends AbstractController
|
||||
return $this->render('Training/Safety/safetyHome.html.twig',['header' => $headerFile, 'content' => $contentFile]);
|
||||
}
|
||||
#[Route('/training/safety/quiz')]
|
||||
public function Quiz()
|
||||
public function Quiz(Request $request)
|
||||
{
|
||||
$headerFile = Yaml::parseFile('../config/portalLinks.yaml', 2, 2, Yaml::PARSE_OBJECT_FOR_MAP);
|
||||
|
||||
$form = $this->createForm(SafetyQuizType::class);
|
||||
$form->handleRequest($request);
|
||||
if($form->isSubmitted())
|
||||
{
|
||||
//TODO: Process quiz submissions. Calculate score & return a printable results page
|
||||
}
|
||||
return $this->render('Training/Safety/SafetyQuiz.html.twig',['header' => $headerFile, 'quiz'=>$form]);
|
||||
}
|
||||
}
|
||||
@ -6,18 +6,28 @@ use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\RadioType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||
|
||||
class SafetyQuizType extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options): void
|
||||
{
|
||||
$builder
|
||||
->add('q1', ChoiceType::class, [
|
||||
->add('Question_1', ChoiceType::class, [
|
||||
'choices' => [
|
||||
'Correct' => true,
|
||||
'False' => false,
|
||||
'False again' => false
|
||||
]
|
||||
],
|
||||
'expanded' => true
|
||||
])
|
||||
->add('Question_2', ChoiceType::class, [
|
||||
'choices' => [
|
||||
'Correct' => true,
|
||||
'False' => false,
|
||||
'False again' => false
|
||||
],
|
||||
'expanded' => true
|
||||
])
|
||||
;
|
||||
}
|
||||
|
||||
23
templates/Training/Safety/SafetyQuiz.html.twig
Normal file
23
templates/Training/Safety/SafetyQuiz.html.twig
Normal file
@ -0,0 +1,23 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
{{ include('_header.html.twig') }}
|
||||
|
||||
<body>
|
||||
<!-- Navigation -->
|
||||
<div class="siteNavbar">
|
||||
<ul class="list-group list-group-horizontal-md">
|
||||
{% for item in header.Navbar %}
|
||||
<h3 class="navitem"><a class=" list-group-item list-group-item-action text-decoration-none h-100 text-white border-0" href="{{item.url}}">{{item.title}}</a></h3>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="container">
|
||||
<h4>Complete the Safety Quiz below</h4>
|
||||
<p>When you're finished, click 'Submit' at the bottom and print your results.
|
||||
<br>You may retake this quiz as many times as you need.
|
||||
<br>To pass this quiz you must answer NaN% of questions correctly.</p> {#TODO: figure out what the correct number is #}
|
||||
{% form_theme quiz 'bootstrap_5_layout.html.twig' %}
|
||||
{{ form(quiz )}}
|
||||
</div>
|
||||
</body>
|
||||
@ -22,7 +22,7 @@
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<a class="col-12 btn btn-danger my-2 disabled" href="">
|
||||
<a class="col-12 btn btn-danger my-2" href="/training/safety/quiz">
|
||||
<h4>Take the Workplace Safety Quiz</h4>
|
||||
</a>
|
||||
{# Cards #}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user