Merge branch 'master' of https://codefirst.iut.uca.fr/git/jade.van_brabandt/3.01-QCM_MuscuMaths
continuous-integration/drone/push Build is passing Details

pull/37/head
Maxence GUITARD 1 year ago
commit cc60aecd33

@ -19,19 +19,20 @@ class ControllerAdminAdministrators
session_start(); session_start();
try { try {
if($_SESSION["idAdminConnected"] != null){ if ($_SESSION["idAdminConnected"] != null) {
$this->twig =$twig; $this->twig = $twig;
$this->vues = $vues; $this->vues = $vues;
$this->mdAdministrator = new ModelAdministrator(); $this->mdAdministrator = new ModelAdministrator();
$administrators = $this->mdAdministrator->getAdministrators(); $administrators = $this->mdAdministrator->getAdministrators();
echo $twig->render($vues["adminAdministrators"], [ echo $twig->render($vues["adminAdministrators"], [
'administrators' => $administrators, 'administrators' => $administrators,
'error' => $_SESSION["error"],
]); ]);
} $_SESSION["error"] = null;
else { } else {
header("Location:/loginAdmin"); header("Location:/loginAdmin");
} }
} catch (PDOException $e) { } catch (PDOException $e) {
@ -41,27 +42,40 @@ class ControllerAdminAdministrators
} }
} }
function delete($param) { function delete($param)
{
$this->mdAdministrator->deleteAdministratorByID($param["id"]); $this->mdAdministrator->deleteAdministratorByID($param["id"]);
header("Location:/admin/administrators"); header("Location:/admin/administrators");
} }
function add($param) { function add($param)
{
$username = $_POST['username']; if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
$password = $_POST['password']; $_SESSION["error"]="Méthode non autorisée.";
} else {
$Admin = [ $username = $_POST['username'];
'username' => $username, $password = $_POST['password'];
'password' => $password, $username = trim($_POST['username']);
]; $password = trim($_POST['password']);
if (!isset($username) || !isset($password) || empty($username) || empty($password)) {
$this->mdAdministrator->addAdministrator($Admin); $_SESSION["error"]="Veuillez remplir tous les champs.";
} else {
header("Location:/admin/administrators"); $Admin = [
'username' => $username,
'password' => $password,
];
if ($this->mdAdministrator->verifyAdministratorByName($Admin) != null) {
$_SESSION["error"]="Cet admin existe déjà.";
} else {
$this->mdAdministrator->addAdministrator($Admin);
header("Location:/admin/administrators");
}
}
}
} }
function updatemodal($param) { function updatemodal($param)
{
$administrator = $this->mdAdministrator->getAdministratorByID($param["id"]); $administrator = $this->mdAdministrator->getAdministratorByID($param["id"]);
@ -70,7 +84,8 @@ class ControllerAdminAdministrators
]); ]);
} }
function update($param) { function update($param)
{
$id = $_POST['id']; $id = $_POST['id'];
$username = $_POST['username']; $username = $_POST['username'];
@ -81,8 +96,8 @@ class ControllerAdminAdministrators
'password' => $password, 'password' => $password,
]; ];
$this->mdAdministrator->updateAdministrator($id,$Admin); $this->mdAdministrator->updateAdministrator($id, $Admin);
header("Location:/admin/administrators"); header("Location:/admin/administrators");
} }
} }

@ -49,7 +49,9 @@ class ControllerUser
function home() function home()
{ {
echo $this->twig->render($this->vues["home"]); echo $this->twig->render($this->vues["home"], [
'idPlayerConnected' => $_SESSION["idPlayerConnected"]
]);
} }
function error() function error()
@ -78,6 +80,10 @@ class ControllerUser
function loginAdmin() function loginAdmin()
{ {
if ($_SESSION["idAdminConnected"] != null){
header("Location:/admin/administrators");
}
echo $this->twig->render($this->vues["loginAdmin"], [ echo $this->twig->render($this->vues["loginAdmin"], [
'error' => $_SESSION["error"], 'error' => $_SESSION["error"],
]); ]);
@ -87,6 +93,10 @@ class ControllerUser
function loginPlayer() function loginPlayer()
{ {
if ($_SESSION["idPlayerConnected"] != null){
header("Location:/userStatus");
}
echo $this->twig->render($this->vues["loginPlayer"], [ echo $this->twig->render($this->vues["loginPlayer"], [
'error' => $_SESSION["error"], 'error' => $_SESSION["error"],
]); ]);
@ -94,6 +104,25 @@ class ControllerUser
$_SESSION["error"] = ""; $_SESSION["error"] = "";
} }
function userStatus(){
if($_SESSION["idPlayerConnected"] != null){
$this->mdPlayer = new ModelPlayer();
$player = $this->mdPlayer->getPlayerByID($_SESSION["idPlayerConnected"]);
$maxscores = $this->mdPlayer->getMaxScoresWithChapter($player);
foreach ($maxscores as $maxscore) {
$maxscore["chapter"]=$this->mdChapter->getChapterByID($maxscore["idchapter"])->getName();
}
echo $this->twig->render($this->vues["userStatus"],
[
'player' => $player,
'maxscores' => $maxscores,
]);
}
else {
header("Location:/loginPlayer");
}
}
function verifyAdmin() function verifyAdmin()
{ {
$username = $_POST['username']; $username = $_POST['username'];
@ -258,21 +287,6 @@ class ControllerUser
} }
} }
function userStatus(){
if($_SESSION["idPlayerConnected"] != null){
//$this->mdAdministrator = new ModelAdministrator();
//$administrators = $this->mdAdministrator->getAdministrators();
echo $this->twig->render($this->vues["userStatus"]);
}
else {
header("Location:/loginPlayer");
}
}
function passer() function passer()
{ {
$numQuestion = $_POST["numQuestion"]; $numQuestion = $_POST["numQuestion"];

@ -87,6 +87,19 @@ class GatewayAdministrator
); );
$results = $this->con->getResults(); $results = $this->con->getResults();
return $results[0];
}
public function verifyAdministratorByName($administrator)
{
$query = "SELECT administrators.id FROM administrators WHERE username = :username";
$this->con->executeQuery(
$query,
array(
':username' => array($administrator['username'], PDO::PARAM_STR),
)
);
$results = $this->con->getResults();
return $results[0]; return $results[0];
} }
} }

@ -71,4 +71,16 @@ class GatewayJouer
$results = $this->con->getResults(); $results = $this->con->getResults();
return $results[0]; return $results[0];
} }
public function getMaxScoresWithChapter($player)
{
$query = "SELECT maxscore,idchapter FROM jouer WHERE idplayer = :idplayer;";
$this->con->executeQuery(
$query,
array(
':idplayer' => array($player->getId(), PDO::PARAM_STR)
)
);
$results = $this->con->getResults();
return $results;
}
} }

@ -93,7 +93,6 @@ class GatewayPlayer
) )
); );
$results = $this->con->getResults(); $results = $this->con->getResults();
return $results[0][0];
return $results[0];
} }
} }

@ -52,4 +52,9 @@ class ModelAdministrator
$administratorsId = $this->gwAdministrator->verifyAdministrator($Administrator); $administratorsId = $this->gwAdministrator->verifyAdministrator($Administrator);
return $administratorsId; return $administratorsId;
} }
public function verifyAdministratorByName($Administrator)
{
$administratorsId = $this->gwAdministrator->verifyAdministratorByName($Administrator);
return $administratorsId;
}
} }

@ -32,6 +32,7 @@ class ModelPlayer
{ {
$playerDataArray = $this->gwPlayer->getPlayerByID($id); $playerDataArray = $this->gwPlayer->getPlayerByID($id);
$player = new Player($playerDataArray["id"], $playerDataArray["nickname"], $playerDataArray["password"]); $player = new Player($playerDataArray["id"], $playerDataArray["nickname"], $playerDataArray["password"]);
return $player;
} }
public function updatePlayer($id, $player) public function updatePlayer($id, $player)
@ -60,6 +61,12 @@ class ModelPlayer
$this->gwJouer->updateJouer($jouer); $this->gwJouer->updateJouer($jouer);
} }
public function getMaxScoresWithChapter($player)
{
$maxScores = $this->gwJouer->getMaxScoresWithChapter($player);
return $maxScores;
}
public function verifyJouer($jouer) public function verifyJouer($jouer)
{ {
$tabidjouer = $this->gwJouer->verifyJouer($jouer); $tabidjouer = $this->gwJouer->verifyJouer($jouer);

@ -1,6 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="fr"> <html lang="fr">
<html>
<head> <head>
<meta charset=utf-8> <meta charset=utf-8>

@ -5,32 +5,33 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous">
</script> <link rel="stylesheet" href="../css/global.css">
<link rel="stylesheet" href="css/global.css">
</head> </head>
<body> <body id="bodyStyle">
<div class="container mt-5"> <div>
<a href="/" role="button" class="btn btn-secondary position-absolute top-0 mt-2 end-0 me-2">
Retour
</a>
</div>
<div class="container mt-5 text-light fs-4">
<h1>Liste des administrators</h1> <h1>Liste des administrators</h1>
<ul class="list-group"> <ul class="list-group">
{% for admin in administrators %} {% for admin in administrators %}
<li class="list-group-item d-flex justify-content-between align-items-center"> <li class="list-group-item d-flex justify-content-between align-items-center border-dark text-light bg-secondary">
{{ admin.username }} {{ admin.username }}
<div class="btn-group" role="group"> <div class="btn-group" role="group">
<a type="button" href="/admin/administrators/updatemodal/{{ admin.id }}" class="btn btn-primary">Modifier</a> <a type="button" href="/admin/administrators/updatemodal/{{ admin.id }}" class="btn btn-primary fs-5">Modifier</a>
<a type="button" href="/admin/administrators/delete/{{ admin.id }}" class="btn btn-danger">Supprimer</a> <a type="button" href="/admin/administrators/delete/{{ admin.id }}" class="btn btn-danger fs-5">Supprimer</a>
</div> </div>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
<div class="container mt-3"> <div class="container mt-3 d-flex justify-content-between">
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#modalAdministrators">Ajouter un administrateur</button> <a type="button" href="/admin/questions" class="btn btn-secondary fs-5"> ← Questions </a>
<div class="btn-group" role="group"> <button type="button" class="btn btn-primary fs-5" data-bs-toggle="modal" data-bs-target="#modalAdministrators">Ajouter un administrateur</button>
<a href="/admin/questions" class="btn btn-secondary"> ← Questions </a> <a type="button" href="/admin/chapters" class="btn btn-secondary fs-5">Chapitres →</a>
<a href="/" class="btn btn-secondary">Retour</a>
<a href="/admin/chapters" class="btn btn-secondary">Chapitres →</a>
</div>
</div> </div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>

@ -6,31 +6,33 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous">
</script> </script>
<link rel="stylesheet" href="css/global.css"> <link rel="stylesheet" href="../css/global.css">
</head> </head>
<body> <body id="bodyStyle">
<div class="container mt-5"> <div>
<a href="/" role="button" class="btn btn-secondary position-absolute top-0 mt-2 end-0 me-2">
Retour
</a>
</div>
<div class="container mt-5 text-light fs-4">
<h1>Liste des chapitres</h1> <h1>Liste des chapitres</h1>
<ul class="list-group"> <ul class="list-group">
{% for chapter in chapters %} {% for chapter in chapters %}
<li class="list-group-item d-flex justify-content-between align-items-center"> <li class="list-group-item d-flex justify-content-between align-items-center border-dark text-light bg-secondary">
{{ chapter.name }} {{ chapter.name }}
<div class="btn-group" role="group"> <div class="btn-group" role="group">
<a type="button" href="/admin/chapters/updatemodal/{{ chapter.id }}" class="btn btn-primary">Modifier</a> <a type="button" href="/admin/chapters/updatemodal/{{ chapter.id }}" class="btn btn-primary fs-5">Modifier</a>
<a type="button" href="/admin/chapters/delete/{{ chapter.id }}" class="btn btn-danger">Supprimer</a> <a type="button" href="/admin/chapters/delete/{{ chapter.id }}" class="btn btn-danger fs-5">Supprimer</a>
</div> </div>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
<div class="container mt-3"> <div class="container mt-3 d-flex justify-content-between">
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#modalchapters">Ajouter un chapitre</button> <a type="button" href="/admin/administrators" class="btn btn-secondary fs-5"> ← Administrateur</a>
<div class="btn-group" role="group"> <button type="button" class="btn btn-primary fs-5" data-bs-toggle="modal" data-bs-target="#modalchapters">Ajouter un chapitre</button>
<a href="/admin/administrators" class="btn btn-secondary"> ← Administrateur</a> <a type="button" href="/admin/questions" class="btn btn-secondary fs-5">Questions →</a>
<a href="/" class="btn btn-secondary">Retour</a>
<a href="/admin/questions" class="btn btn-secondary">Questions →</a>
</div>
</div> </div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>

@ -6,31 +6,33 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous">
</script> </script>
<link rel="stylesheet" href="css/global.css"> <link rel="stylesheet" href="../css/global.css">
</head> </head>
<body> <body id="bodyStyle">
<div class="container mt-5"> <div>
<a href="/" role="button" class="btn btn-secondary position-absolute top-0 mt-2 end-0 me-2">
Retour
</a>
</div>
<div class="container mt-5 text-light fs-4">
<h1>Liste des questions</h1> <h1>Liste des questions</h1>
<ul class="list-group"> <ul class="list-group">
{% for question in questions %} {% for question in questions %}
<li class="list-group-item d-flex justify-content-between align-items-center"> <li class="list-group-item d-flex justify-content-between align-items-center border-dark text-light bg-secondary">
{{ question.content }} {{ question.content }}
<div class="btn-group" role="group"> <div class="btn-group" role="group">
<a type="button" href="/admin/questions/updatemodal/{{ question.id }}" class="btn btn-primary">Modifier</a> <a type="button" href="/admin/questions/updatemodal/{{ question.id }}" class="btn btn-primary fs-5">Modifier</a>
<a type="button" href="/admin/questions/delete/{{ question.id }}" class="btn btn-danger">Supprimer</a> <a type="button" href="/admin/questions/delete/{{ question.id }}" class="btn btn-danger fs-5">Supprimer</a>
</div> </div>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
<div class="container mt-3"> <div class="container mt-3 d-flex justify-content-between">
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#modalquestions">Ajouter un chapitre</button> <a type="button" href="/admin/chapters" class="btn btn-secondary fs-5"> ← Chapitres</a>
<div class="btn-group" role="group"> <button type="button" class="btn btn-primary fs-5" data-bs-toggle="modal" data-bs-target="#modalquestions">Ajouter un chapitre</button>
<a href="/admin/chapters" class="btn btn-secondary"> ← Chapitres</a> <a type="button" href="/admin/administrators" class="btn btn-secondary fs-5">Administrateurs →</a>
<a href="/" class="btn btn-secondary">Retour</a>
<a href="/admin/administrators" class="btn btn-secondary">Administrateurs →</a>
</div>
</div> </div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>

@ -10,7 +10,15 @@
<body id="bodyStyle"> <body id="bodyStyle">
<div> <div>
<a href="/loginPlayer">CONNEXION</a> {% if idPlayerConnected == null %}
<a href="/loginPlayer" role="button" class="fs-4 btn btn-secondary btn-lg position-absolute top-0 mt-2 end-0 me-2">
CONNEXION
</a>
{% else %}
<a href="/loginPlayer" role="button" class="fs-4 btn btn-secondary btn-lg position-absolute top-0 mt-2 end-0 me-2">
PROFIL
</a>
{% endif %}
</div> </div>
<div class="d-flex flex-column align-items-center justify-content-between" style="height:95vh"> <div class="d-flex flex-column align-items-center justify-content-between" style="height:95vh">
<img src="Media/Logo.png" style="margin-top:50px; object-fit:fill;" class="h-25"> <img src="Media/Logo.png" style="margin-top:50px; object-fit:fill;" class="h-25">
@ -21,7 +29,7 @@
</h1> </h1>
</div> </div>
</a> </a>
<a href="/multiplayer" class="text-white m-3 container text-center d-flex align-items-center w-75 rounded border border-white text-center" style="background-color:orange;text-decoration: none;color: black;height:20vh;"> <a href="/lobby" class="text-white m-3 container text-center d-flex align-items-center w-75 rounded border border-white text-center" style="background-color:orange;text-decoration: none;color: black;height:20vh;">
<div class="container text-center d-flex align-items-center text-center"> <div class="container text-center d-flex align-items-center text-center">
<h1 class="mx-auto fs-1"> <h1 class="mx-auto fs-1">
MULTIJOUEUR MULTIJOUEUR

@ -6,7 +6,12 @@
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous">
<link rel="stylesheet" href="css/global.css"> <link rel="stylesheet" href="css/global.css">
</head> </head>
<body> <body id="bodyStyle">
<div>
<a href="/" role="button" class="fs-4 btn btn-secondary btn-lg position-absolute top-0 mt-2 end-0 me-2">
Retour
</a>
</div>
<div class="container mt-5"> <div class="container mt-5">
<div class="row"> <div class="row">
<div class="col-md-4 offset-md-4"> <div class="col-md-4 offset-md-4">

@ -6,7 +6,12 @@
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous">
<link rel="stylesheet" href="css/global.css"> <link rel="stylesheet" href="css/global.css">
</head> </head>
<body> <body id="bodyStyle">
<div>
<a href="/" role="button" class="fs-4 btn btn-secondary btn-lg position-absolute top-0 mt-2 end-0 me-2">
Retour
</a>
</div>
<div class="container mt-5"> <div class="container mt-5">
<div class="row"> <div class="row">
<div class="col-md-4 offset-md-4"> <div class="col-md-4 offset-md-4">

@ -11,9 +11,11 @@
</head> </head>
<body id="bodyStyle"> <body id="bodyStyle">
<a href="/" role="button" class="fs-4 btn btn-secondary btn-lg position-absolute end-0 me-2"> <div>
Retour <a href="/" role="button" class="fs-4 btn btn-secondary btn-lg position-absolute top-0 mt-2 end-0 me-2">
</a> Retour
</a>
</div>
<form action="/verifySingleplayer" method="post"> <form action="/verifySingleplayer" method="post">
<div class="text-center" style="padding-top: 6vh"> <div class="text-center" style="padding-top: 6vh">
<h1 style="color: white; font-size: 50px">Difficulte :</h1> <h1 style="color: white; font-size: 50px">Difficulte :</h1>

@ -5,7 +5,6 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous">
</script>
<link rel="stylesheet" href="css/global.css"> <link rel="stylesheet" href="css/global.css">
</head> </head>

@ -1,16 +1,29 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="fr"> <html lang="fr">
<head> <head>
<meta charset=utf-8> <title>Maths Educ</title>
<title>Math'Educ</title> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous">
<link rel="stylesheet" href="/css/global.css"> <link rel="stylesheet" href="css/global.css">
</head> </head>
<body id="bodyStyle"> <body id="bodyStyle">
<div>
<a href="/" role="button" class="fs-4 btn btn-secondary btn-lg position-absolute top-0 mt-2 end-0 me-2">
Retour
</a>
</div>
<div class="container mt-5"> <div class="container mt-5">
<div> <div class="col-5 bg-light border border-warning rounded">
<p>test</p> <p> Player Nickname : </p>
<p>{{ player.nickname }} </p>
</div> </div>
{% for maxscore in maxscores %}
<div class="col-5 bg-light border border-warning rounded">
<p> Maxscore pour le chapitre {{ maxscore["chapter"] }} : </p>
<p>{{ maxscore["maxscore"] }} </p>
</div>
{% endfor %}
</body> </body>
</html> </html>
Loading…
Cancel
Save