Merge branch '2-add-a-home-page'

# Conflicts:
#	docker-compose.yml
#	server_files/config.php
#	server_files/views/connexion.php
#	setup/create_database.sql
This commit is contained in:
Yohann D'ANELLO 2019-10-31 15:13:45 +01:00
commit a368dfbead
17 changed files with 481 additions and 532 deletions

View File

@ -1,80 +1,8 @@
body { :root {
display: flex; --navbar-height: 32px;
} }
html, body { #navbar-logo {
height: 100%; height: var(--navbar-height);
width: 100%;
margin: 0;
}
#menu {
list-style-type: none;
margin: 0;
padding: 0;
width: 220px;
background-color: #f1f1f1;
height: 100%;
overflow: auto;
flex-grow: 0;
}
#menu a {
display: block;
color: #000;
padding: 10px 20px;
text-decoration: none;
}
#menu a.active {
background-color: #4CAF50;
color: white;
}
#menu a:hover:not(.active) {
background-color: #555;
color: white;
}
#menu-logo img {
width: calc(100% - 40px);
margin: 40px auto;
display: block; display: block;
} }
#main-container {
margin: 0;
flex-grow: 1;
height: 100%;
overflow-y: scroll;
}
#main-content {
padding-top: 100px;
padding-bottom: 100px;
margin: 0 auto;
max-width: 1000px;
text-align: justify;
}
@media only screen and (max-width: 700px) {
body {
flex-direction: column;
height: auto;
}
#menu {
height: auto;
width: 100%;
padding-bottom: 20px;
}
#menu-logo img {
height: 70px;
padding-left: 7px;
}
#menu a {
text-align: center;
}
#main-content {
padding: 100px 16px;
}
}

View File

@ -3,19 +3,19 @@
* Config options * Config options
*/ */
$YEAR = $_ENV["TFJM_YEAR"]; $YEAR = getenv("TFJM_YEAR");
$URL_BASE = $_ENV["TFJM_URL_BASE"]; $URL_BASE = getenv("TFJM_URL_BASE");
$LOCAL_PATH = $_ENV["TFJM_LOCAL_PATH"]; $LOCAL_PATH = getenv("TFJM_LOCAL_PATH");
$MAIL_DOMAIN = $_ENV["TFJM_MAIL_DOMAIN"]; $MAIL_DOMAIN = getenv("TFJM_MAIL_DOMAIN");
/** /**
* DB infos * DB infos
*/ */
$DB_HOST = $_ENV["TFJM_DB_HOST"]; $DB_HOST = getenv("TFJM_DB_HOST");
$DB_NAME = $_ENV["TFJM_DB_NAME"]; $DB_NAME = getenv("TFJM_DB_NAME");
$DB_USER = $_ENV["TFJM_DB_USER"]; $DB_USER = getenv("TFJM_DB_USER");
$DB_PASSWORD = $_ENV["TFJM_DB_PASSWORD"]; $DB_PASSWORD = getenv("TFJM_DB_PASSWORD");
try { try {
$DB = new PDO("mysql:host=$DB_HOST;dbname=$DB_NAME;charset=utf8", "$DB_USER", "$DB_PASSWORD", array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); $DB = new PDO("mysql:host=$DB_HOST;dbname=$DB_NAME;charset=utf8", "$DB_USER", "$DB_PASSWORD", array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

View File

@ -185,7 +185,7 @@ function printDocuments($documents)
$first_name = $user->getFirstName(); $first_name = $user->getFirstName();
$name = DocumentType::getTranslatedName($document->getType()); $name = DocumentType::getTranslatedName($document->getType());
$version = $document->getVersion(); $version = $document->getVersion();
echo "$name de $first_name $surname (version $version) : <a href=\"$URL_BASE/file/$file_id\">Télécharger</a><br />"; echo "$name de $first_name $surname (version $version) : <a href=\"/file/$file_id\">Télécharger</a><br />";
} }
} }

View File

@ -1,100 +1,64 @@
<?php <?php
require_once "header.php"; require_once "header.php";
if ($has_error) if (isset($error_message) && $error_message === FALSE) {
echo "<h2>Erreur : " . $error_message . "</h2>";
else {
if (isset($recuperate_account)) if (isset($recuperate_account))
echo "<h2>Le mail de récupération de mot de passe a bien été envoyé.</h2>"; echo "<div class=\"alert alert-success\">Le mail de récupération de mot de passe a bien été envoyé.</div>";
elseif (isset($reset_password)) else if (isset($reset_password))
echo "<h2>Le mot de passe a bien été changé. Vous pouvez désormais vous connecter.</h2>"; echo "<div class=\"alert alert-success\">Le mot de passe a bien été changé. Vous pouvez désormais vous connecter.</div>";
elseif (isset($_GET["confirmation-mail"])) else if (isset($_GET["confirmation-mail"]))
echo "<h2>Le mail a bien été renvoyé.</h2>"; echo "<div class=\"alert alert-success\">Le mail a bien été renvoyé.</div>";
else if (isset($logging_in_user)) { else if (isset($logging_in_user))
echo "<h2>Connexion réussie !</h2>"; echo "<div class=\"alert alert-success\">Connexion réussie !</div>";
require_once "footer.php"; } else if (isset($_SESSION["user_id"])) { ?>
} else if (isset($_SESSION["user_id"])) { <div class="alert alert-danger">Vous êtes déjà connecté !</div>
echo "<h2>Vous êtes déjà connecté.</h2>";
require_once "footer.php";
}
}
if (isset($_GET["mdp_oublie"])) { ?>
<form method="POST">
<table style="width: 100%;">
<tbody>
<tr>
<td style="width: 30%;">
<label for="email">E-mail associée au compte :</label>
</td>
<td style="width: 70%;">
<input style="width: 100%;" type="email" id="email" name="email"/>
</td>
</tr>
<tr>
<td colspan="2">
<input style="width: 100%;" type="submit" name="forgotten_password"
value="Envoyer l'e-mail de récupération"/>
</td>
</tr>
</tbody>
</table>
</form>
<?php } elseif (isset($_GET["reset_password"])) {
if ($reset_password->user != null) { ?>
<form method="POST">
<table style="width: 100%;">
<tbody>
<tr>
<td style="width: 30%;">
<label for="password">Nouveau mot de passe :</label>
</td>
<td style="width: 70%;">
<input style="width: 100%;" type="password" id="password" name="password"/>
</td>
</tr>
<tr>
<td style="width: 30%;">
<label for="confirm_password">Confirmer le mot de passe :</label>
</td>
<td style="width: 70%;">
<input style="width: 100%;" type="password" id="confirm_password" name="confirm_password"/>
</td>
</tr>
<tr>
<td colspan="2">
<input style="width: 100%;" type="submit" name="reset_password"
value="Changer le mot de passe"/>
</td>
</tr>
</tbody>
</table>
</form>
<?php }
} elseif (isset($_GET["confirmation-mail"])) { ?>
<?php } else { ?> <?php } else { ?>
<form method="POST">
<input type="hidden" name="submitted" value="true"/> <?php if (isset($_GET["mdp_oublie"])) { ?>
<table style="width: 100%;"> <form method="POST" class="jumbotron mt-5">
<tr> <h1 class="display-4">Réinitialisation du mot de passe</h1>
<td style="width: 30%;"><label for="email">E-mail :</label></td> <label for="email">E-mail associée au compte :</label>
<td style="width: 70%;"><input style="width: 100%;" type="email" id="email" name="email" <input type="email" class="form-control" id="email" name="email"/>
value="<?php if (isset($email)) echo $email ?>"/></td> </div>
</tr> <input class="btn btn-lg btn-primary" type="submit" name="forgotten_password"
<tr> value="Envoyer l'e-mail de récupération"/>
<td><label for="password">Mot de passe :</label></td>
<td><input style="width: 100%;" type="password" id="password" name="password"/></td>
</tr>
<tr>
<td colspan="2">
<!--suppress HtmlUnknownTarget -->
<a href="<?= $URL_BASE ?>/connexion/mdp_oublie">Mot de passe oublié ?</a>
</td>
</tr>
<tr>
<td colspan="2"><input style="width: 100%;" type="submit" value="Se connecter"/></td>
</tr>
</table>
</form> </form>
<?php } elseif (isset($_GET["reset_password"])) { ?>
<form method="POST" class="jumbotron mt-5">
<h1 class="display-4">Connexion</h1>
<input type="hidden" name="token" value="<?= $_GET["token"] ?>"/>
<div class="form-group">
<label for="password">Nouveau mot de passe :</label>
<input type="password" id="password" name="password" class="form-control" />
</div>
<div class="form-group">
<label for="confirm_password">Confirmer le mot de passe :</label>
<input type="password" id="confirm_password" name="confirm_password" class="form-control" />
</div>
<input type="submit" name="reset_password" class="btn btn-block btn-primary"
value="Changer le mot de passe"/>
</form>
<?php } elseif (isset($_GET["confirmation-mail"])) { ?>
<?php } else { ?>
<form method="POST" class="jumbotron mt-5">
<h1 class="display-4">Connexion</h1>
<hr class="mt-2 mb-4"/>
<input type="hidden" name="submitted" value="true"/>
<div class="form-group">
<label for="email">E-mail :</label>
<input class="form-control" type="email" id="email" name="email"
value="<?php if (isset($email)) echo $email ?>"/>
</div>
<div class="form-group">
<label for="password">Mot de passe :</label>
<input class="form-control" type="password" id="password" name="password"/>
</div>
<input class="btn btn-primary btn-block" type="submit" value="Se connecter"/>
</form>
<div class="alert">
<a href="/connexion/mdp_oublie">Mot de passe oublié ?</a>
</div>
<?php } ?>
<?php } ?> <?php } ?>
<?php require_once "footer.php" ?> <?php require_once "footer.php" ?>

View File

@ -4,25 +4,25 @@
Nom de l'équipe : <?= $team->getName() ?><br/> Nom de l'équipe : <?= $team->getName() ?><br/>
Trigramme : <?= $team->getTrigram() ?><br/> Trigramme : <?= $team->getTrigram() ?><br/>
Tournoi : <a href="<?= $URL_BASE . "/tournoi/" . $tournament->getName() ?>"><?= $tournament->getName() ?></a><br/> Tournoi : <a href="<?= "/tournoi/" . $tournament->getName() ?>"><?= $tournament->getName() ?></a><br/>
<?php <?php
for ($i = 1; $i <= 2; ++$i) { for ($i = 1; $i <= 2; ++$i) {
if ($team->getEncadrants()[$i - 1] == NULL) if ($team->getEncadrants()[$i - 1] == NULL)
continue; continue;
$encadrant = User::fromId($team->getEncadrants()[$i - 1]); $encadrant = User::fromId($team->getEncadrants()[$i - 1]);
$id = $encadrant->getId(); $id = $encadrant->getId();
echo "Encadrant $i : <a href=\"$URL_BASE/informations/$id/" . $encadrant->getFirstName() . " " . $encadrant->getSurname() . "\">" . $encadrant->getFirstName() . " " . $encadrant->getSurname() . "</a><br />"; echo "Encadrant $i : <a href=\"/informations/$id/" . $encadrant->getFirstName() . " " . $encadrant->getSurname() . "\">" . $encadrant->getFirstName() . " " . $encadrant->getSurname() . "</a><br />";
} }
for ($i = 1; $i <= 6; ++$i) { for ($i = 1; $i <= 6; ++$i) {
if ($team->getParticipants()[$i - 1] == NULL) if ($team->getParticipants()[$i - 1] == NULL)
continue; continue;
$participant = User::fromId($team->getParticipants()[$i - 1]); $participant = User::fromId($team->getParticipants()[$i - 1]);
$id = $participant->getId(); $id = $participant->getId();
echo "Participant $i : <a href=\"$URL_BASE/informations/$id/" . $participant->getFirstName() . " " . $participant->getSurname() . "\">" . $participant->getFirstName() . " " . $participant->getSurname() . "</a><br />"; echo "Participant $i : <a href=\"/informations/$id/" . $participant->getFirstName() . " " . $participant->getSurname() . "\">" . $participant->getFirstName() . " " . $participant->getSurname() . "</a><br />";
} }
if ($team->isSelectedForFinal()) { if ($team->isSelectedForFinal()) {
$final_name = $FINAL->getName(); $final_name = $FINAL->getName();
echo "<strong>Équipe sélectionnée pour la <a href=\"$URL_BASE/tournoi/$final_name\">finale nationale</a>.</strong>"; echo "<strong>Équipe sélectionnée pour la <a href=\"/tournoi/$final_name\">finale nationale</a>.</strong>";
} }
?> ?>

View File

@ -1,6 +1,4 @@
</div> </div>
</div>
</div>
</body> </body>
</html> </html>
<?php exit() ?> <?php exit() ?>

View File

@ -1,76 +1,109 @@
<!DOCTYPE html> <!DOCTYPE html>
<!--suppress HtmlUnknownTarget -->
<html lang="fr"> <html lang="fr">
<head> <head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <meta http-equiv="content-type" content="text/html; 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"/>
<meta name="google-site-verification" content="pCj5PNYVI9sAMZm8T9qoSjRrcXnEPj7tI07hBBfii04" />
<title>Site d'inscription pour le TFJM² <?= $YEAR ?></title> <title>Site d'inscription pour le TFJM² <?= $YEAR ?></title>
<link rel="stylesheet" type="text/css" href="<?= $URL_BASE ?>/style.css"/> <link rel="stylesheet" type="text/css" href="/style.css"/>
<link REL="shortcut icon" href="<?= $URL_BASE ?>/favicon.ico" /> <link REL="shortcut icon" href="/favicon.ico"/>
<!-- Bootstrap core CSS --> <!-- Bootstrap -->
<link rel="stylesheet" type="text/css" href="https://s3-eu-west-1.amazonaws.com/tfjm2-inscriptions/static/inscription/vendor/bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<!-- Custom fonts for this template -->
<link rel="stylesheet" type="text/css" href="https://s3-eu-west-1.amazonaws.com/tfjm2-inscriptions/static/inscription/vendor/font-awesome/css/font-awesome.min.css">
<!-- Plugin CSS -->
<link rel="stylesheet" type="text/css" href="https://s3-eu-west-1.amazonaws.com/tfjm2-inscriptions/static/inscription/vendor/datatables/dataTables.bootstrap4.css">
<!-- Custom styles for this template -->
<link rel="stylesheet" type="text/css" href="https://s3-eu-west-1.amazonaws.com/tfjm2-inscriptions/static/inscription/css2/sb-admin.css">
</head> </head>
<body> <body>
<ul id="menu"> <div class="container.fluid bg-light">
<li id="menu-logo"><img src="<?= $URL_BASE ?>/logo.svg" alt="Logo TFJM²"></li> <nav class="navbar navbar-expand-lg navbar-light">
<li><a href="<?= $URL_BASE ?>/">Accueil</a></li> <div class="container">
<li><a href="<?= $URL_BASE ?>/tournois">Liste des tournois</a></li> <a class="navbar-brand" href="/">
<?php if (!isset($_SESSION["user_id"])) { ?> <img src="/logo.svg" alt="Logo TFJM²" id="navbar-logo">
<li><a href="<?= $URL_BASE ?>/connexion">Connexion</a></li> </a>
<li><a href="<?= $URL_BASE ?>/inscription">Inscription</a></li> <ul class="navbar-nav mr-auto">
<?php } else { ?> <li class="nav-item active">
<li><a href="<?= $URL_BASE ?>/mon_compte">Mon compte</a></li> <a href="/" class="nav-link">Accueil</a>
</li>
<li class="nav-item active">
<a class="nav-link" href="/tournois">Liste des tournois</a>
</li>
<?php if (isset($_SESSION["user_id"])) { ?>
<li class="nav-item active">
<a class="nav-link" href="/mon_compte">Mon compte</a>
</li>
<?php if ($_SESSION["role"] == Role::ENCADRANT || $_SESSION["role"] == Role::PARTICIPANT) { ?> <?php if ($_SESSION["role"] == Role::ENCADRANT || $_SESSION["role"] == Role::PARTICIPANT) { ?>
<?php if ($_SESSION["team"] == NULL) { ?> <?php if ($_SESSION["team"] == NULL) { ?>
<li><a href="<?= $URL_BASE ?>/ajouter_equipe">Ajouter une équipe</a></li> <li class="nav-item active">
<li><a href="<?= $URL_BASE ?>/rejoindre_equipe">Rejoindre une équipe</a></li> <a class="nav-link" href="/ajouter_equipe">Ajouter une équipe</a>
</li>
<li class="nav-item active">
<a class="nav-link" href="/rejoindre_equipe">Rejoindre une équipe</a>
</li>
<?php } else { ?> <?php } else { ?>
<li><a href="<?= $URL_BASE ?>/mon_equipe">Mon équipe</a></li> <li class="nav-item active">
<a class="nav-link" href="/mon_equipe">Mon équipe</a>
</li>
<?php if ($_SESSION["team"]->getValidationStatus() == ValidationStatus::VALIDATED || true) { ?> <?php if ($_SESSION["team"]->getValidationStatus() == ValidationStatus::VALIDATED || true) { ?>
<li><a href="https://paypal.me/galaxyoyo42">Paiement</a></li> <li class="nav-item active">
<li><a href="<?= $URL_BASE ?>/solutions">Solutions</a></li> <a class="nav-link" href="https://paypal.me/galaxyoyo42">Paiement</a>
<li><a href="<?= $URL_BASE ?>/syntheses">Notes de synthèse</a></li> </li>
<li class="nav-item active">
<a class="nav-link" href="/solutions">Solutions</a>
</li>
<li class="nav-item active">
<a class="nav-link" href="/syntheses">Notes de synthèse</a>
</li>
<?php } ?> <?php } ?>
<?php } ?> <?php } ?>
<?php } ?> <?php } ?>
<?php if ($_SESSION["role"] == Role::ADMIN) { ?> <?php if ($_SESSION["role"] == Role::ADMIN) { ?>
<li><a href="<?= $URL_BASE ?>/ajouter_tournoi">Ajouter un tournoi</a></li> <li class="nav-item active">
<li><a href="<?= $URL_BASE ?>/ajouter_organisateur">Ajouter un organisateur</a></li> <a class="nav-link" href="/ajouter_tournoi">Ajouter un tournoi</a>
</li>
<li class="nav-item active">
<a class="nav-link" href="/ajouter_organisateur">Ajouter un organisateur</a>
</li>
<?php } ?> <?php } ?>
<?php if ($_SESSION["role"] == Role::ADMIN || $_SESSION["role"] == Role::ORGANIZER) { ?> <?php if ($_SESSION["role"] == Role::ADMIN || $_SESSION["role"] == Role::ORGANIZER) { ?>
<li><a href="<?= $URL_BASE ?>/solutions_orga">Solutions</a></li> <li class="nav-item active">
<li><a href="<?= $URL_BASE ?>/syntheses_orga">Notes de synthèse</a></li> <a class="nav-link" href="/solutions_orga">Solutions</a>
</li>
<li class="nav-item active">
<a class="nav-link" href="/syntheses_orga">Notes de synthèse</a>
</li>
<?php } ?> <?php } ?>
<li><a href="<?= $URL_BASE ?>/deconnexion">Déconnexion</a></li> <?php } ?>
<hr /> </ul>
<ul class="navbar-nav">
<?php if (!isset($_SESSION["user_id"])) { ?>
<li class="nav-item active">
<a class="nav-link" href="/connexion">Connexion</a>
</li>
<li class="nav-item active">
<a class="nav-link" href="/inscription">Inscription</a>
</li>
<?php } else { ?>
<?php <?php
if ($_SESSION["role"] != Role::ADMIN) { if ($_SESSION["role"] != Role::ADMIN) {
echo "<li><a href=\"?be-admin=1\">Devenir administrateur</a></li>\n"; echo "<li><a class=\"nav-link\" href=\"?be-admin=1\">Devenir administrateur</a></li>\n";
} }
if ($_SESSION["role"] != Role::ORGANIZER) { if ($_SESSION["role"] != Role::ORGANIZER) {
echo "<li><a href=\"?be-organizer=1\">Devenir organisateur</a></li>\n"; echo "<li><a class=\"nav-link\" href=\"?be-organizer=1\">Devenir organisateur</a></li>\n";
} }
if ($_SESSION["role"] != Role::PARTICIPANT) { if ($_SESSION["role"] != Role::PARTICIPANT) {
echo "<li><a href=\"?be-participant=1\">Devenir participant</a></li>\n"; echo "<li><a class=\"nav-link\" href=\"?be-participant=1\">Devenir participant</a></li>\n";
} }
if ($_SESSION["role"] != Role::ENCADRANT) { if ($_SESSION["role"] != Role::ENCADRANT) {
echo "<li><a href=\"?be-encadrant=1\">Devenir encadrant</a></li>\n"; echo "<li><a class=\"nav-link\" href=\"?be-encadrant=1\">Devenir encadrant</a></li>\n";
} }
?> ?>
<li class="nav-item active">
<a class="nav-link" href="/deconnexion">Déconnexion</a>
</li>
<?php } ?> <?php } ?>
</ul> </ul>
</nav>
</div>
<div id="main-container">
<div id="main-content"> <div class="container">
<div class="container-fluid">

View File

@ -1,126 +1,115 @@
<?php require_once "header.php" ?> <?php require_once "header.php" ?>
<!--suppress HtmlUnknownTarget, HtmlDeprecatedAttribute, HtmlDeprecatedTag --> <div>
<div class="container-fluid">
<div id="header"> <div class="jumbotron bg-white">
<center> <div class="row">
<img src="https://s3-eu-west-1.amazonaws.com/tfjm2-inscriptions/static/inscription/images/header.jpg" <h1 class="display-3">
alt="" width="720" height="160"> Bienvenue sur le site d'inscription au <a href="https://tfjm.org">TFJM^2</a> !
</center> </h1>
<h2 class="display-4 text-muted">
Le Tournoi Français des Jeunes Mathématiciens et Mathématiciennes
</h2>
</div>
</div>
<div class="row jumbotron bg-white">
<div class="col-sm">
<h3>
Tu souhaites participer au tournoi ?
<br/>
Ton équipe est déjà formée ?
</h3>
</div>
<div class="col-sm text-right">
<div class="btn-group-vertical">
<a class="btn btn-primary btn-lg" href="/inscription" role="button">Inscris-toi maintenant!</a>
<a class="btn btn-light btn-lg" href="/connexion" role="button">J'ai déjà un compte</a>
</div>
</div>
</div> </div>
<br> <div class="alert alert-warning">
<h5 class="alert-heading">Attentions aux échéances</h5>
<center> <p class="mb-0">
<h3>Vous souhaitez participer au tournoi ? Votre équipe est déjà formée ?</h3> Chaque tournoi a une date limite pour les inscriptions et une date limite pour
<h4><a href="<?= $URL_BASE ?>/inscription">Créez un compte</a> pour commencer la procédure d'inscription ou déposer vos solutions. <a href="https://tfjm.org/infos-tournois/">En savoir plus</a>
<a href="<?= $URL_BASE ?>/connexion">connectez-vous</a> si votre équipe a déjà un compte.</h4>
</center>
<br>
<center>
<h2>Bienvenue sur le site d'inscription du TFJM<sup>2</sup> !</h2>
</center>
<center>
Ce site a été conçu pour gérer les inscriptions au Tournoi Français des Jeunes Mathématiciennes et
Mathématiciens.
<br>
<a href="http://www.tfjm.org/">Cliquez ici pour accéder au site de présentation du tournoi.</a>
</center>
<br>
<p align="justify"><strong>
Attention aux échéances ! Chaque tournoi a une date limite pour les inscriptions et une date limite pour
déposer vos solutions. Elles sont affichées avec les informations de chaque tournoi. Merci de vous y
référer !
<br>
Une fois l'échéance passée, le site bloque tout accès aux inscriptions (et respectivement au dépôt des
solutions).</strong>
</p> </p>
</div>
<p style="color:red;"> <div class="alert alert-info" href="mailto:contact@tfjm.org">
Attention, modification du règlement par rapport aux années précédentes : article 4.3 <h5 class="alert-heading">Modification du règlement</h5>
<br> <p class="mb-0">
"léquipe doit envoyer par mail à contact@tfjm.org, une lettre (au format pdf), répondant aux questions Depuis l'année dernière, l'équipe doit envoyer par mail à contact@tfjm.org les informations suivantes:
suivantes : <ul>
<br>
</p>
<ul style="color:red;">
<li>Comment léquipe sest-elle formée ?</li> <li>Comment léquipe sest-elle formée ?</li>
<li>Comment léquipe va-t-elle travailler ( peut-elle se rencontrer, à quelle fréquence, rencontres avec <li>
lencadrant•e) ? Comment léquipe va-t-elle travailler ( peut-elle se rencontrer, à quelle fréquence, rencontres
avec lencadrant•e) ?
</li> </li>
</ul> </ul>
Cette lettre permettra aux organisateurs•trices de vérifier que léquipe dispose des conditions nécessaires à Cette lettre permettra aux organisateurs•trices de vérifier que léquipe dispose des conditions nécessaires
une participation sérieuse. Sont dispensées les équipes dont la moitié ou plus des membres sont scolarisés dans à une participation sérieuse. Sont dispensées les équipes dont la moitié ou plus des membres sont scolarisés
le même établissement. Le comité National dOrganisation se réserve le droit daccepter ou non linscription des dans le même établissement. Le comité National dOrganisation se réserve le droit daccepter ou non
équipes concernées par cette lettre." linscription des équipes concernées par cette lettre.
<br>
Pour plus de détail, voir le règlement : <a href="https://tfjm.org/infos-tournois/">https://tfjm.org/infos-tournois/</a>
<p></p>
<center>
<h2>Comment ça marche ?</h2>
</center>
<p align="justify">
Pour participer à l'un des tournois régionaux, il suffit de créer un compte sur la rubrique
<b>Inscription</b>. Il vous faudra une adresse email pour ce faire. Un mail de confirmation sera envoyé à
cette adresse. Il vous fournira un nom d'utilisateur et un mot de passe que vous allez devoir changer par la
suite.
</p> </p>
</div>
<div class="spacer" style="height: 48px"></div>
<div class="jumbotron">
<h5 class="display-4">Comment ça marche ?</h5>
<p>
Pour participer à l'un des tournois régionaux, il suffit de créer un compte sur la rubrique
<b>Inscription</b>. Il vous faudra une adresse email pour ce faire. Un mail de confirmation sera envoyé
à cette adresse. Il vous fournira un nom d'utilisateur et un mot de passe que vous allez devoir changer
par la suite.
</p>
<p> <p>
Vous pouvez accéder à votre compte via la rubrique <b>Connexion</b>. Une fois connecté, vous pourrez : Vous pouvez accéder à votre compte via la rubrique <b>Connexion</b>. Une fois connecté, vous pourrez :
</p> </p>
<ul> <ul>
<li>rentrer des informations sur les membres de votre équipe, tant participants qu'encadrants ;</li> <li>rentrer des informations sur les membres de votre équipe, tant participants qu'encadrants ;</li>
<li>enregistrer et télécharger des versions préliminaires de vos solutions (seulement la dernière version <li>
enregistrée avant la date limite sera prise en compte pour le tournoi). enregistrer et télécharger des versions préliminaires de vos solutions (seulement la dernière
version enregistrée avant la date limite sera prise en compte pour le tournoi).
</li> </li>
</ul> </ul>
Une fois que vous aurez fourni toutes les informations demandées dans la rubrique <b>Mon Équipe</b>, votre
inscription pourra être validée par les organisateurs locaux.
<p></p>
<p class="text-danger">
ATTENTION ! Votre équipe ne sera considérée comme admissible à participer au tournoi que
lorsque cette première étape aura été franchie.
</p>
<p> <p>
Pensez donc à former une équipe complète (minimum 4 participants et 1 encadrant) le plus tôt possible pour Une fois que vous aurez fourni toutes les informations demandées dans la rubrique <b>Mon Équipe</b>,
avoir plus de chances de participer, compte tenu du nombre des places disponibles dans chaque tournoi (qui votre inscription pourra être validée par les organisateurs locaux.
sera dûment affiché sur la rubrique <b>Liste des Tournois</b>). Les équipes restantes seront placées en
liste d'attente.
</p> </p>
<div class="alert alert-warning">
<strong>Attention!</strong> Votre équipe ne sera considérée comme admissible à participer au tournoi que
lorsque cette première étape aura été franchie.
</div>
<div class="alert alert-info">
Pensez donc à former une équipe complète (minimum 4 participants et 1 encadrant) le plus tôt possible
pour avoir plus de chances de participer, compte tenu du nombre des places disponibles dans chaque
tournoi (qui sera dûment affiché sur la rubrique <b>Liste des Tournois</b>). Les équipes restantes
seront placées en liste d'attente.
</div>
<p> <p>
Pour les équipes dont l'inscription aura été validée, des documents à télécharger, remplir et signer Pour les équipes dont l'inscription aura été validée, des documents à télécharger, remplir et signer
deviendront disponibles sur votre compte. Vous allez devoir ensuite les scanner et les télécharger vers le deviendront disponibles sur votre compte. Vous allez devoir ensuite les scanner et les télécharger vers
site pour compléter votre inscription. le site pour compléter votre inscription.
</p> </p>
<div class="alert alert-warning">
<strong>Attention</strong> Les équipes qui ne respecteront pas les délais pour rendre ces documents
<p class="text-danger">
ATTENTION ! Les équipes qui ne respecteront pas les délais pour rendre ces documents
risquent d'être disqualifiées et de laisser leur place aux équipes placées en liste d'attente. risquent d'être disqualifiées et de laisser leur place aux équipes placées en liste d'attente.
</p> </div>
</div>
<p>
<em><strong>NB :</strong> Ce site est récent et il est encore possible que certaines pages ne fonctionnent <div class="alert alert-light">
pas correctement. Si vous remarquez des bugs, merci de les signaler à l'adresse <a Ce site est récent et il est encore possible que certaines pages ne fonctionnent
href="mailto:contact@tfjm.org">contact@tfjm.org</a>.</em> pas correctement.
</p> <br/>
Si vous remarquez des bugs, merci de les signaler à l'adresse
<a href="mailto:contact@tfjm.org">contact@tfjm.org</a>.</em>
</div>
</div> </div>

View File

@ -3,7 +3,7 @@
<h1><?= $user->getFirstName() . " " . $user->getSurname() ?></h1> <h1><?= $user->getFirstName() . " " . $user->getSurname() ?></h1>
<?php if ($user->getRole() == Role::PARTICIPANT || $user->getRole() == Role::ENCADRANT) { ?> <?php if ($user->getRole() == Role::PARTICIPANT || $user->getRole() == Role::ENCADRANT) { ?>
Équipe : <?= $team === null ? "Pas d'équipe" : "<a href=\"$URL_BASE/equipe/" . $team->getTrigram() . "\">" . $team->getName() . " (" . $team->getTrigram() . ")</a>" ?><br /> Équipe : <?= $team === null ? "Pas d'équipe" : "<a href=\"/equipe/" . $team->getTrigram() . "\">" . $team->getName() . " (" . $team->getTrigram() . ")</a>" ?><br />
<?php } ?> <?php } ?>
Date de naissance : <?= formatDate($user->getBirthDate()) ?><br /> Date de naissance : <?= formatDate($user->getBirthDate()) ?><br />
Sexe : <?= $user->getGender() == "M" ? "Masculin" : "Féminin" ?><br /> Sexe : <?= $user->getGender() == "M" ? "Masculin" : "Féminin" ?><br />
@ -25,7 +25,7 @@ echo "<hr />";
if ($user->getRole() == Role::ADMIN || $user->getRole() == Role::ORGANIZER) { if ($user->getRole() == Role::ADMIN || $user->getRole() == Role::ORGANIZER) {
foreach ($tournaments as $tournament) { foreach ($tournaments as $tournament) {
echo "Organise le tournoi <a href=\"$URL_BASE/tournoi/" . $tournament->getName(). "\">" . $tournament->getName() . "</a><br />"; echo "Organise le tournoi <a href=\"/tournoi/" . $tournament->getName(). "\">" . $tournament->getName() . "</a><br />";
} }
} }
elseif ($user->getRole() == Role::PARTICIPANT || $user->getRole() == Role::ENCADRANT) { ?> elseif ($user->getRole() == Role::PARTICIPANT || $user->getRole() == Role::ENCADRANT) { ?>

View File

@ -2,136 +2,169 @@
require_once "header.php"; require_once "header.php";
if ($has_error) if ($has_error)
echo "<h2>Erreur : " . $error_message . "</h2>"; echo "<div class=\"alert alert-danger\">Erreur : " . $error_message . "</div>";
?> ?>
<div class="mt-4 mb-4">
<h1 class="display-4">Formulaire d'inscription</h1>
</div>
<?php <?php
/** @var NewUser $user */ /** @var NewUser $user */
if (isset($user) && !$has_error) { if (isset($user) && !$has_error) {
?> ?>
<div class="alert alert-success">
Votre inscription est validée ! Merci désormais de confirmer votre boîte mail pour valider votre adresse. Votre inscription est validée ! Merci désormais de confirmer votre boîte mail pour valider votre adresse.
</div>
<?php } else if (isset($_SESSION["user_id"])) { ?> <?php } else if (isset($_SESSION["user_id"])) { ?>
<h2>Vous êtes déjà connecté !</h2> <div class="alert alert-success">Vous êtes déjà connecté !</div>
<?php } else { ?> <?php } else { ?>
<form method="POST"> <form method="POST">
<input type="hidden" name="submitted" value="true"/> <input type="hidden" name="submitted" value="true"/>
<table style="width: 100%;">
<tr> <div class="form-group row">
<td style="width: 30%;"><label for="email">E-mail :</label></td> <label for="role">Rôle :</label>
<td style="width: 70%;"><input style="width: 100%;" type="email" id="email" name="email" <select id="role" name="role" onchange="selectRole()" class="custom-select">
value="<?php if (isset($user)) echo $user->email ?>"
required/></td>
</tr>
<tr>
<td><label for="password">Mot de passe :</label></td>
<td><input style="width: 100%;" type="password" id="password" name="password" required/></td>
</tr>
<tr>
<td><label for="confirm_password">Confirmer le mot de passe :</label></td>
<td><input style="width: 100%;" type="password" id="confirm_password" name="confirm_password" required/>
</td>
</tr>
<tr>
<td><label for="surname">Nom :</label></td>
<td><input style="width: 100%;" type="text" id="surname" name="surname"
value="<?php if (isset($user)) echo $user->surname ?>" required/></td>
</tr>
<tr>
<td><label for="first_name">Prénom :</label></td>
<td><input style="width: 100%;" type="text" id="first_name" name="first_name"
value="<?php if (isset($user)) echo $user->first_name ?>" required/></td>
</tr>
<tr>
<td><label for="birth_date">Date de naissance :</label></td>
<td><input style="width: 100%;" type="date" id="birth_date" name="birth_date"
value="<?php if (isset($user)) echo $user->birth_date ?>" required/></td>
</tr>
<tr>
<td><label for="gender">Sexe :</label></td>
<td><input type="radio" id="male" name="gender" value="M"
required <?= isset($_POST["gender"]) && $_POST["gender"] == "M" ? "checked" : "" ?> /><label
for="male">Homme</label>
<input type="radio" id="female" name="gender" value="F"
required <?= isset($_POST["gender"]) && $_POST["gender"] == "F" ? "checked" : "" ?> /><label
for="female">Femme</label></td>
</tr>
<tr>
<td><label for="address">Adresse :</label></td>
<td><input style="width: 100%;" type="text" id="address" name="address"
value="<?php if (isset($user)) echo $user->address ?>"/></td>
</tr>
<tr>
<td><label for="postal_code">Code postal :</label></td>
<td><input style="width: 100%;" type="number" id="postal_code" name="postal_code"
value="<?php if (isset($user)) echo $user->postal_code ?>" min="1000"
max="95999" required/></td>
</tr>
<tr>
<td><label for="city">Ville :</label></td>
<td><input style="width: 100%;" type="text" id="city" name="city"
value="<?php if (isset($user)) echo $user->city ?>"/></td>
</tr>
<tr>
<td><label for="country">Pays :</label></td>
<td><input style="width: 100%;" type="text" id="country" name="country"
value="<?= isset($user) ? $user->country : "France" ?>" required/></td>
</tr>
<tr>
<td><label for="phone_number">Numéro de téléphone :</label></td>
<td><input style="width: 100%;" type="text" id="phone_number" name="phone_number"
value="<?php if (isset($user)) echo $user->phone_number ?>"/></td>
</tr>
<tr>
<td><label for="role">Rôle :</label></td>
<td><select style="width: 100%;" id="role" name="role" onchange="selectRole()">
<option value="participant"><?= Role::getTranslatedName(Role::PARTICIPANT) ?></option> <option value="participant"><?= Role::getTranslatedName(Role::PARTICIPANT) ?></option>
<option value="encadrant"><?= Role::getTranslatedName(Role::ENCADRANT) ?></option> <option value="encadrant"><?= Role::getTranslatedName(Role::ENCADRANT) ?></option>
</select></td> </select>
</tr> </div>
<tr>
<td><label id="school_label" for="school">Établissement dans lequel l'élève étudie :</label></td> <div class="form-row">
<td><input style="width: 100%;" type="text" id="school" name="school" <div class="form-group col-md-6">
value="<?php if (isset($user)) echo $user->school ?>"/></td> <label for="surname">Nom :</label>
</tr> <input class="form-control" type="text" id="surname" name="surname"
<tr> value="<?php if (isset($user)) echo $user->surname ?>" required/>
<td><label id="class_label" for="class">Classe :</label></td> </div>
<td><select style="width: 100%;" id="class" name="class">
<div class="form-group col-md-6">
<label for="first_name">Prénom :</label>
<input class="form-control" type="text" id="first_name" name="first_name"
value="<?php if (isset($user)) echo $user->first_name ?>" required/>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="email">E-mail :</label>
<input class="form-control" type="email" id="email" name="email"
value="<?php if (isset($user)) echo $user->email ?>"
required/>
</div>
<div class="form-group col-md-6">
<label for="phone_number">Numéro de téléphone :</label>
<input class="form-control" type="text" id="phone_number" name="phone_number"
value="<?php if (isset($user)) echo $user->phone_number ?>"/>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="password">Mot de passe :</label>
<input class="form-control" type="password" id="password" name="password" required/>
</div>
<div class="form-group col-md-6">
<label for="confirm_password">Confirmer le mot de passe :</label>
<input class="form-control" type="password" id="confirm_password" name="confirm_password" required/>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="gender" class="mr-2">Sexe :</label>
<br/>
<div class="custom-control custom-radio custom-control-inline">
<input type="radio" class="custom-control-input" id="male" name="gender" value="M"
required <?= isset($_POST["gender"]) && $_POST["gender"] == "M" ? "checked" : "" ?> />
<label for="male" class="custom-control-label">Homme</label>
</div>
<div class="custom-control custom-radio custom-control-inline">
<input type="radio" class="custom-control-input" id="female" name="gender" value="F"
required <?= isset($_POST["gender"]) && $_POST["gender"] == "F" ? "checked" : "" ?> />
<label for="female" class="custom-control-label">Femme</label>
</div>
</div>
<div class="form-group col-md-6">
<label for="birth_date">Date de naissance :</label>
<input class="form-control" type="date" id="birth_date" name="birth_date"
value="<?php if (isset($user)) echo $user->birth_date ?>" required/>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-5">
<label for="address">Adresse :</label>
<input class="form-control" type="text" id="address" name="address"
value="<?php if (isset($user)) echo $user->address ?>"/>
</div>
<div class="form-group col-md-2">
<label for="postal_code">Code postal :</label>
<input class="form-control" type="number" id="postal_code" name="postal_code"
value="<?php if (isset($user)) echo $user->postal_code ?>" min="1000"
max="95999" required/>
</div>
<div class="form-group col-md-3">
<label for="city">Ville :</label>
<input class="form-control" type="text" id="city" name="city"
value="<?php if (isset($user)) echo $user->city ?>"/>
</div>
<div class="form-group col-md-2">
<label for="country">Pays :</label>
<input class="form-control" type="text" id="country" name="country"
value="<?= isset($user) ? $user->country : "France" ?>" required/>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label id="school_label" for="school">Établissement dans lequel l'élève étudie :</label>
<input class="form-control" type="text" id="school" name="school"
value="<?php if (isset($user)) echo $user->school ?>"/>
</div>
<div class="form-group col-md-6">
<label id="class_label" for="class">Classe :</label>
<select id="class" name="class" class="custom-select">
<option value="terminale"><?= SchoolClass::getTranslatedName(SchoolClass::TERMINALE) ?></option> <option value="terminale"><?= SchoolClass::getTranslatedName(SchoolClass::TERMINALE) ?></option>
<option value="premiere"><?= SchoolClass::getTranslatedName(SchoolClass::PREMIERE) ?></option> <option value="premiere"><?= SchoolClass::getTranslatedName(SchoolClass::PREMIERE) ?></option>
<option value="seconde"><?= SchoolClass::getTranslatedName(SchoolClass::SECONDE) ?></option> <option value="seconde"><?= SchoolClass::getTranslatedName(SchoolClass::SECONDE) ?></option>
</select></td> </select>
</tr> </div>
<tr> </div>
<td><label id="responsible_name_label" for="responsible_name">Nom du responsable légal :</label></td>
<td><input style="width: 100%;" type="text" id="responsible_name" name="responsible_name" <div class="form-row">
<div class="form-group col-md-4">
<label id="responsible_name_label" for="responsible_name">Nom du responsable légal :</label>
<input class="form-control" type="text" id="responsible_name" name="responsible_name"
value="<?php if (isset($user)) echo $user->responsible_name ?>"/> value="<?php if (isset($user)) echo $user->responsible_name ?>"/>
</td>
</tr> </div>
<tr> <div class="form-group col-md-4">
<td><label id="responsible_phone_label" for="responsible_phone">Téléphone du responsable légal :</label> <label id="responsible_phone_label" for="responsible_phone">Téléphone du responsable légal :</label>
</td>
<td><input style="width: 100%;" type="text" id="responsible_phone" name="responsible_phone" <input class="form-control" type="text" id="responsible_phone" name="responsible_phone"
value="<?php if (isset($user)) echo $user->responsible_phone ?>"/> value="<?php if (isset($user)) echo $user->responsible_phone ?>"/>
</td>
</tr> </div>
<tr> <div class="form-group col-md-4">
<td><label id="responsible_email_label" for="responsible_email">Email du responsable légal :</label> <label id="responsible_email_label" for="responsible_email">Email du responsable légal :</label>
</td>
<td><input style="width: 100%;" type="text" id="responsible_email" name="responsible_email" <input class="form-control" type="text" id="responsible_email" name="responsible_email"
value="<?php if (isset($user)) echo $user->responsible_email ?>"/> value="<?php if (isset($user)) echo $user->responsible_email ?>"/>
</td>
</tr> </div>
<tr>
<td><label id="description_label" for="description">Description :</label></td> </div>
<td><textarea style="width: 100%;" id="description"
<div class="form-group row">
<label id="description_label" for="description">Description :</label>
<textarea class="form-control" id="description"
name="description"><?php if (isset($user)) echo $user->description ?></textarea> name="description"><?php if (isset($user)) echo $user->description ?></textarea>
</td>
</tr> </div>
<tr>
<td colspan="2"><input style="width: 100%;" type="submit" value="S'inscrire"/></td> <div class="form-group row">
</tr> <input class="btn btn-primary btn-lg btn-block" type="submit" value="S'inscrire"/>
</table> </div>
</form> </form>
<script> <script>

View File

@ -18,20 +18,20 @@ for ($i = 1; $i <= 2; ++$i) {
continue; continue;
$encadrant = User::fromId($team->getEncadrants()[$i - 1]); $encadrant = User::fromId($team->getEncadrants()[$i - 1]);
$id = $encadrant->getId(); $id = $encadrant->getId();
echo "Encadrant $i : <a href=\"$URL_BASE/informations/$id/" . $encadrant->getFirstName() . " " . $encadrant->getSurname() . "\">" . $encadrant->getFirstName() . " " . $encadrant->getSurname() . "</a><br />"; echo "Encadrant $i : <a href=\"/informations/$id/" . $encadrant->getFirstName() . " " . $encadrant->getSurname() . "\">" . $encadrant->getFirstName() . " " . $encadrant->getSurname() . "</a><br />";
} }
for ($i = 1; $i <= 6; ++$i) { for ($i = 1; $i <= 6; ++$i) {
if ($team->getParticipants()[$i - 1] == NULL) if ($team->getParticipants()[$i - 1] == NULL)
continue; continue;
$participant = User::fromId($team->getParticipants()[$i - 1]); $participant = User::fromId($team->getParticipants()[$i - 1]);
$id = $participant->getId(); $id = $participant->getId();
echo "Participant $i : <a href=\"$URL_BASE/informations/$id/" . $participant->getFirstName() . " " . $participant->getSurname() . "\">" . $participant->getFirstName() . " " . $participant->getSurname() . "</a><br />"; echo "Participant $i : <a href=\"/informations/$id/" . $participant->getFirstName() . " " . $participant->getSurname() . "\">" . $participant->getFirstName() . " " . $participant->getSurname() . "</a><br />";
} }
?> ?>
Code d'accès : <strong><?= $team->getAccessCode() ?></strong><br/> Code d'accès : <strong><?= $team->getAccessCode() ?></strong><br/>
<?php if ($team->isSelectedForFinal()) { <?php if ($team->isSelectedForFinal()) {
$final_name = $FINAL->getName(); $final_name = $FINAL->getName();
echo "<strong>Équipe sélectionnée pour la <a href=\"$URL_BASE/tournoi/$final_name\">finale nationale</a>.</strong><br />"; echo "<strong>Équipe sélectionnée pour la <a href=\"/tournoi/$final_name\">finale nationale</a>.</strong><br />";
} ?> } ?>
<?php if (isset($_GET["modifier"])) { ?> <?php if (isset($_GET["modifier"])) { ?>
@ -83,7 +83,7 @@ for ($i = 1; $i <= 6; ++$i) {
<?php if ($_SESSION["team_validation_status"] == ValidationStatus::NOT_READY) { ?> <?php if ($_SESSION["team_validation_status"] == ValidationStatus::NOT_READY) { ?>
<!--suppress HtmlUnknownTarget --> <!--suppress HtmlUnknownTarget -->
<a href="<?= $URL_BASE ?>/mon_equipe/modifier">Modifier mon équipe</a> <a href="/mon_equipe/modifier">Modifier mon équipe</a>
<?php } ?> <?php } ?>
<hr/> <hr/>
<h2>Mes autorisations</h2> <h2>Mes autorisations</h2>

View File

@ -55,7 +55,7 @@ foreach ($solutions as $sol) {
$file_id = $sol->getFileId(); $file_id = $sol->getFileId();
$problem = $sol->getProblem(); $problem = $sol->getProblem();
$version = $sol->getVersion(); $version = $sol->getVersion();
echo "Problème $problem (Version $version) : <a href=\"$URL_BASE/file/$file_id\">Télécharger</a><br />"; echo "Problème $problem (Version $version) : <a href=\"/file/$file_id\">Télécharger</a><br />";
} }
if ($team->isSelectedForFinal()) { ?> if ($team->isSelectedForFinal()) { ?>
@ -68,7 +68,7 @@ if ($team->isSelectedForFinal()) { ?>
$file_id = $sol->getFileId(); $file_id = $sol->getFileId();
$problem = $sol->getProblem(); $problem = $sol->getProblem();
$version = $sol->getVersion(); $version = $sol->getVersion();
echo "Problème $problem (Version $version) : <a href=\"$URL_BASE/file/$file_id\">Télécharger</a><br />"; echo "Problème $problem (Version $version) : <a href=\"/file/$file_id\">Télécharger</a><br />";
} }
} }

View File

@ -13,7 +13,7 @@ foreach ($tournaments as $tournament) {
$team = Team::fromId($sol->getTeamId()); $team = Team::fromId($sol->getTeamId());
$team_name = $team->getName(); $team_name = $team->getName();
$team_trigram = $team->getTrigram(); $team_trigram = $team->getTrigram();
echo "Problème n°$problem de l'équipe $team_name ($team_trigram), version $version : <a href=\"$URL_BASE/file/$file_id\">Télécharger</a><br />"; echo "Problème n°$problem de l'équipe $team_name ($team_trigram), version $version : <a href=\"/file/$file_id\">Télécharger</a><br />";
} }
echo "<form method=\"POST\">\n"; echo "<form method=\"POST\">\n";

View File

@ -59,7 +59,7 @@ foreach ($syntheses as $synthesis) {
$file_id = $synthesis->getFileId(); $file_id = $synthesis->getFileId();
$dest = $synthesis->getDest(); $dest = $synthesis->getDest();
$version = $synthesis->getVersion(); $version = $synthesis->getVersion();
echo "Note de synthèse pour " . ($dest == DestType::OPPOSANT ? "l'opposant" : "le rapporteur") . " (version $version) : <a href=\"$URL_BASE/file/$file_id\">Télécharger</a><br />"; echo "Note de synthèse pour " . ($dest == DestType::OPPOSANT ? "l'opposant" : "le rapporteur") . " (version $version) : <a href=\"/file/$file_id\">Télécharger</a><br />";
} }
if ($team->isSelectedForFinal()) { ?> if ($team->isSelectedForFinal()) { ?>
@ -72,7 +72,7 @@ if ($team->isSelectedForFinal()) { ?>
$file_id = $synthesis->getFileId(); $file_id = $synthesis->getFileId();
$dest = $synthesis->getDest(); $dest = $synthesis->getDest();
$version = $synthesis->getVersion(); $version = $synthesis->getVersion();
echo "Note de synthèse pour " . ($dest == DestType::OPPOSANT ? "l'opposant" : "le rapporteur") . " (version $version) : <a href=\"$URL_BASE/file/$file_id\">Télécharger</a><br />"; echo "Note de synthèse pour " . ($dest == DestType::OPPOSANT ? "l'opposant" : "le rapporteur") . " (version $version) : <a href=\"/file/$file_id\">Télécharger</a><br />";
} }
} }

View File

@ -15,7 +15,7 @@ foreach ($tournaments as $tournament) {
$team_name = $team->getName(); $team_name = $team->getName();
$team_trigram = $team->getTrigram(); $team_trigram = $team->getTrigram();
echo "Note de synthèse de l'équipe $team_name ($team_trigram) pour " . ($dest == DestType::OPPOSANT ? "l'opposant" : "le rapporteur") echo "Note de synthèse de l'équipe $team_name ($team_trigram) pour " . ($dest == DestType::OPPOSANT ? "l'opposant" : "le rapporteur")
. ", version $version : <a href=\"$URL_BASE/file/$file_id\">Télécharger</a><br />"; . ", version $version : <a href=\"/file/$file_id\">Télécharger</a><br />";
} }
echo "<form method=\"POST\">\n"; echo "<form method=\"POST\">\n";

View File

@ -15,7 +15,7 @@ foreach ($orgas as $orga) {
$orga_id = $orga->getId(); $orga_id = $orga->getId();
$orga_name = $orga->getFirstName() . " " . $orga->getSurname(); $orga_name = $orga->getFirstName() . " " . $orga->getSurname();
if ($_SESSION["role"] == Role::ORGANIZER || $_SESSION["role"] == Role::ADMIN) if ($_SESSION["role"] == Role::ORGANIZER || $_SESSION["role"] == Role::ADMIN)
$s .= "<a href=\"$URL_BASE/informations/$orga_id/$orga_name\">$orga_name</a>"; $s .= "<a href=\"/informations/$orga_id/$orga_name\">$orga_name</a>";
else else
$s .= $orga_name; $s .= $orga_name;
$s .= ", "; $s .= ", ";
@ -37,7 +37,7 @@ if ($tournament->isFinal())
?> ?>
<?php if (!isset($_GET["modifier"]) && ($_SESSION["role"] == Role::ADMIN || $_SESSION["role"] == Role::ORGANIZER && $tournament->organize($_SESSION["user_id"]))) { ?> <?php if (!isset($_GET["modifier"]) && ($_SESSION["role"] == Role::ADMIN || $_SESSION["role"] == Role::ORGANIZER && $tournament->organize($_SESSION["user_id"]))) { ?>
<a href="<?= $URL_BASE ?>/tournoi/<?= $tournament->getName() ?>/modifier">Éditer le tournoi</a> <a href="/tournoi/<?= $tournament->getName() ?>/modifier">Éditer le tournoi</a>
<?php } ?> <?php } ?>
@ -72,7 +72,7 @@ if ($tournament->isFinal())
<td style="border: 1px solid black; text-align: center"> <td style="border: 1px solid black; text-align: center">
<?php <?php
if (isset($_SESSION["role"]) && ($_SESSION["role"] == Role::ADMIN || ($_SESSION["role"] == Role::ORGANIZER && $tournament->organize($_SESSION["user_id"])))) if (isset($_SESSION["role"]) && ($_SESSION["role"] == Role::ADMIN || ($_SESSION["role"] == Role::ORGANIZER && $tournament->organize($_SESSION["user_id"]))))
echo "<a href=\"$URL_BASE/equipe/" . $team->getTrigram() . "\">" . $team->getName(). "</a>"; echo "<a href=\"/equipe/" . $team->getTrigram() . "\">" . $team->getName(). "</a>";
else else
echo $team->getName(); echo $team->getName();
?> ?>

View File

@ -1,39 +1,43 @@
<?php require_once "header.php" ?> <?php require_once "header.php" ?>
<h2>Liste des tournois</h2> <div class="mt-4 mb-4">
<h2 class="display-3">Liste des tournois</h2>
</div>
<table style="border: 1px solid black; width: 100%"> <table class="table table-striped table-bordered table-hover">
<thead style="border: 1px solid black"> <thead>
<tr> <tr>
<th style="border: 1px solid black; text-align: center">Nom</th> <th scope="col">Nom</th>
<th style="border: 1px solid black; text-align: center">Dates</th> <th scope="col">Dates</th>
<th style="border: 1px solid black; text-align: center">Inscription avant le</th> <th scope="col">Inscription avant le</th>
<th style="border: 1px solid black; text-align: center">Date de rendu des solutions</th> <th scope="col">Date de rendu des solutions</th>
<th style="border: 1px solid black; text-align: center">Places disponibles</th> <th scope="col">Places disponibles</th>
</tr> </tr>
</thead> </thead>
<tbody style="border: 1px solid black"> <tbody>
<?php <?php
foreach ($tournaments as $tournament) { foreach ($tournaments as $tournament) {
?> ?>
<tr style="border: 1px solid black"> <tr>
<td style="border: 1px solid black; text-align: center"><a href="<?= $URL_BASE ?>/tournoi/<?= $tournament->getName() ?>"><?= $tournament->getName() ?></a></td> <th scope="row">
<td style="border: 1px solid black; text-align: center">Du <?= formatDate($tournament->getStartDate()) ?> au <?= formatDate($tournament->getEndDate()) ?></td> <a href="/tournoi/<?= $tournament->getName() ?>"><?= $tournament->getName() ?></a>
<td style="border: 1px solid black; text-align: center"><?= formatDate($tournament->getSolutionsDate()) ?></td> </th>
<td style="border: 1px solid black; text-align: center"><?= formatDate($tournament->getSynthesesDate()) ?></td> <td>Du <?= formatDate($tournament->getStartDate()) ?> au <?= formatDate($tournament->getEndDate()) ?></td>
<td style="border: 1px solid black; text-align: center"><?= $tournament->getSize() ?></td> <td><?= formatDate($tournament->getSolutionsDate()) ?></td>
<td><?= formatDate($tournament->getSynthesesDate()) ?></td>
<td><?= $tournament->getSize() ?></td>
</tr> </tr>
<?php <?php
} }
?> ?>
</tbody> </tbody>
<tfoot style="border: 1px solid black"> <tfoot>
<tr> <tr>
<th style="border: 1px solid black; text-align: center">Nom</th> <th>Nom</th>
<th style="border: 1px solid black; text-align: center">Dates</th> <th>Dates</th>
<th style="border: 1px solid black; text-align: center">Inscription avant le</th> <th>Inscription avant le</th>
<th style="border: 1px solid black; text-align: center">Date de rendu des solutions</th> <th>Date de rendu des solutions</th>
<th style="border: 1px solid black; text-align: center">Places disponibles</th> <th>Places disponibles</th>
</tr> </tr>
</tfoot> </tfoot>
</table> </table>