1
0
mirror of https://gitlab.com/animath/si/plateforme.git synced 2024-12-26 05:42:22 +00:00

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>"; if (isset($recuperate_account))
else { echo "<div class=\"alert alert-success\">Le mail de récupération de mot de passe a bien été envoyé.</div>";
if (isset($recuperate_account)) else if (isset($reset_password))
echo "<h2>Le mail de récupération de mot de passe a bien été envoyé.</h2>"; echo "<div class=\"alert alert-success\">Le mot de passe a bien été changé. Vous pouvez désormais vous connecter.</div>";
elseif (isset($reset_password)) else if (isset($_GET["confirmation-mail"]))
echo "<h2>Le mot de passe a bien été changé. Vous pouvez désormais vous connecter.</h2>"; echo "<div class=\"alert alert-success\">Le mail a bien été renvoyé.</div>";
elseif (isset($_GET["confirmation-mail"])) else if (isset($logging_in_user))
echo "<h2>Le mail a bien été renvoyé.</h2>"; echo "<div class=\"alert alert-success\">Connexion réussie !</div>";
else if (isset($logging_in_user)) { } else if (isset($_SESSION["user_id"])) { ?>
echo "<h2>Connexion réussie !</h2>"; <div class="alert alert-danger">Vous êtes déjà connecté !</div>
require_once "footer.php";
} else if (isset($_SESSION["user_id"])) {
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> </form>
<td><input style="width: 100%;" type="password" id="password" name="password"/></td> <?php } elseif (isset($_GET["reset_password"])) { ?>
</tr> <form method="POST" class="jumbotron mt-5">
<tr> <h1 class="display-4">Connexion</h1>
<td colspan="2"> <input type="hidden" name="token" value="<?= $_GET["token"] ?>"/>
<!--suppress HtmlUnknownTarget --> <div class="form-group">
<a href="<?= $URL_BASE ?>/connexion/mdp_oublie">Mot de passe oublié ?</a> <label for="password">Nouveau mot de passe :</label>
</td> <input type="password" id="password" name="password" class="form-control" />
</tr> </div>
<tr> <div class="form-group">
<td colspan="2"><input style="width: 100%;" type="submit" value="Se connecter"/></td> <label for="confirm_password">Confirmer le mot de passe :</label>
</tr> <input type="password" id="confirm_password" name="confirm_password" class="form-control" />
</table> </div>
</form> <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,5 +1,3 @@
</div>
</div>
</div> </div>
</body> </body>
</html> </html>

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"/>
<title>Site d'inscription pour le TFJM² <?= $YEAR ?></title> <meta name="google-site-verification" content="pCj5PNYVI9sAMZm8T9qoSjRrcXnEPj7tI07hBBfii04" />
<link rel="stylesheet" type="text/css" href="<?= $URL_BASE ?>/style.css"/> <title>Site d'inscription pour le TFJM² <?= $YEAR ?></title>
<link REL="shortcut icon" href="<?= $URL_BASE ?>/favicon.ico" /> <link rel="stylesheet" type="text/css" href="/style.css"/>
<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>
<?php if ($_SESSION["role"] == Role::ENCADRANT || $_SESSION["role"] == Role::PARTICIPANT) { ?> </li>
<?php if ($_SESSION["team"] == NULL) { ?> <li class="nav-item active">
<li><a href="<?= $URL_BASE ?>/ajouter_equipe">Ajouter une équipe</a></li> <a class="nav-link" href="/tournois">Liste des tournois</a>
<li><a href="<?= $URL_BASE ?>/rejoindre_equipe">Rejoindre une équipe</a></li> </li>
<?php } else { ?> <?php if (isset($_SESSION["user_id"])) { ?>
<li><a href="<?= $URL_BASE ?>/mon_equipe">Mon équipe</a></li> <li class="nav-item active">
<?php if ($_SESSION["team"]->getValidationStatus() == ValidationStatus::VALIDATED || true) { ?> <a class="nav-link" href="/mon_compte">Mon compte</a>
<li><a href="https://paypal.me/galaxyoyo42">Paiement</a></li> </li>
<li><a href="<?= $URL_BASE ?>/solutions">Solutions</a></li> <?php if ($_SESSION["role"] == Role::ENCADRANT || $_SESSION["role"] == Role::PARTICIPANT) { ?>
<li><a href="<?= $URL_BASE ?>/syntheses">Notes de synthèse</a></li> <?php if ($_SESSION["team"] == NULL) { ?>
<li class="nav-item active">
<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 { ?>
<li class="nav-item active">
<a class="nav-link" href="/mon_equipe">Mon équipe</a>
</li>
<?php if ($_SESSION["team"]->getValidationStatus() == ValidationStatus::VALIDATED || true) { ?>
<li class="nav-item active">
<a class="nav-link" href="https://paypal.me/galaxyoyo42">Paiement</a>
</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 if ($_SESSION["role"] == Role::ADMIN) { ?>
<li class="nav-item active">
<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 if ($_SESSION["role"] == Role::ADMIN || $_SESSION["role"] == Role::ORGANIZER) { ?>
<li class="nav-item active">
<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 } ?> <?php } ?>
<?php } ?> </ul>
<?php } ?> <ul class="navbar-nav">
<?php if ($_SESSION["role"] == Role::ADMIN) { ?> <?php if (!isset($_SESSION["user_id"])) { ?>
<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="/connexion">Connexion</a>
<?php } ?> </li>
<?php if ($_SESSION["role"] == Role::ADMIN || $_SESSION["role"] == Role::ORGANIZER) { ?> <li class="nav-item active">
<li><a href="<?= $URL_BASE ?>/solutions_orga">Solutions</a></li> <a class="nav-link" href="/inscription">Inscription</a>
<li><a href="<?= $URL_BASE ?>/syntheses_orga">Notes de synthèse</a></li> </li>
<?php } ?> <?php } else { ?>
<li><a href="<?= $URL_BASE ?>/deconnexion">Déconnexion</a></li> <?php
<hr /> if ($_SESSION["role"] != Role::ADMIN) {
<?php echo "<li><a class=\"nav-link\" href=\"?be-admin=1\">Devenir administrateur</a></li>\n";
if ($_SESSION["role"] != Role::ADMIN) { }
echo "<li><a href=\"?be-admin=1\">Devenir administrateur</a></li>\n"; if ($_SESSION["role"] != Role::ORGANIZER) {
} echo "<li><a class=\"nav-link\" href=\"?be-organizer=1\">Devenir organisateur</a></li>\n";
if ($_SESSION["role"] != Role::ORGANIZER) { }
echo "<li><a href=\"?be-organizer=1\">Devenir organisateur</a></li>\n"; if ($_SESSION["role"] != Role::PARTICIPANT) {
} echo "<li><a class=\"nav-link\" href=\"?be-participant=1\">Devenir participant</a></li>\n";
if ($_SESSION["role"] != Role::PARTICIPANT) { }
echo "<li><a href=\"?be-participant=1\">Devenir participant</a></li>\n"; if ($_SESSION["role"] != Role::ENCADRANT) {
} echo "<li><a class=\"nav-link\" href=\"?be-encadrant=1\">Devenir encadrant</a></li>\n";
if ($_SESSION["role"] != Role::ENCADRANT) { }
echo "<li><a href=\"?be-encadrant=1\">Devenir encadrant</a></li>\n"; ?>
} <li class="nav-item active">
?> <a class="nav-link" href="/deconnexion">Déconnexion</a>
<?php } ?> </li>
</ul> <?php } ?>
</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>
<p class="mb-0">
Chaque tournoi a une date limite pour les inscriptions et une date limite pour
déposer vos solutions. <a href="https://tfjm.org/infos-tournois/">En savoir plus</a>
</p>
</div>
<center> <div class="alert alert-info" href="mailto:contact@tfjm.org">
<h3>Vous souhaitez participer au tournoi ? Votre équipe est déjà formée ?</h3> <h5 class="alert-heading">Modification du règlement</h5>
<h4><a href="<?= $URL_BASE ?>/inscription">Créez un compte</a> pour commencer la procédure d'inscription ou <p class="mb-0">
<a href="<?= $URL_BASE ?>/connexion">connectez-vous</a> si votre équipe a déjà un compte.</h4> Depuis l'année dernière, l'équipe doit envoyer par mail à contact@tfjm.org les informations suivantes:
</center> <ul>
<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 lencadrant•e) ?
</li>
</ul>
<br> 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 le même établissement. Le comité National dOrganisation se réserve le droit daccepter ou non
linscription des équipes concernées par cette lettre.
</p>
</div>
<center> <div class="spacer" style="height: 48px"></div>
<h2>Bienvenue sur le site d'inscription du TFJM<sup>2</sup> !</h2>
</center>
<center> <div class="jumbotron">
Ce site a été conçu pour gérer les inscriptions au Tournoi Français des Jeunes Mathématiciennes et <h5 class="display-4">Comment ça marche ?</h5>
Mathématiciens. <p>
<br> Pour participer à l'un des tournois régionaux, il suffit de créer un compte sur la rubrique
<a href="http://www.tfjm.org/">Cliquez ici pour accéder au site de présentation du tournoi.</a> <b>Inscription</b>. Il vous faudra une adresse email pour ce faire. Un mail de confirmation sera envoyé
</center> à cette adresse. Il vous fournira un nom d'utilisateur et un mot de passe que vous allez devoir changer
par la suite.
</p>
<p>
Vous pouvez accéder à votre compte via la rubrique <b>Connexion</b>. Une fois connecté, vous pourrez :
</p>
<ul>
<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 enregistrée avant la date limite sera prise en compte pour le tournoi).
</li>
</ul>
<p>
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>
<br> <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>
<p align="justify"><strong> <div class="alert alert-info">
Attention aux échéances ! Chaque tournoi a une date limite pour les inscriptions et une date limite pour Pensez donc à former une équipe complète (minimum 4 participants et 1 encadrant) le plus tôt possible
déposer vos solutions. Elles sont affichées avec les informations de chaque tournoi. Merci de vous y pour avoir plus de chances de participer, compte tenu du nombre des places disponibles dans chaque
référer ! tournoi (qui sera dûment affiché sur la rubrique <b>Liste des Tournois</b>). Les équipes restantes
<br> seront placées en liste d'attente.
Une fois l'échéance passée, le site bloque tout accès aux inscriptions (et respectivement au dépôt des </div>
solutions).</strong> <p>
</p> 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
<p style="color:red;"> le site pour compléter votre inscription.
Attention, modification du règlement par rapport aux années précédentes : article 4.3 </p>
<br> <div class="alert alert-warning">
"léquipe doit envoyer par mail à contact@tfjm.org, une lettre (au format pdf), répondant aux questions <strong>Attention</strong> Les équipes qui ne respecteront pas les délais pour rendre ces documents
suivantes : risquent d'être disqualifiées et de laisser leur place aux équipes placées en liste d'attente.
<br> </div>
</div>
</p>
<ul style="color:red;">
<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
lencadrant•e) ?
</li>
</ul>
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
le même établissement. Le comité National dOrganisation se réserve le droit daccepter ou non 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>
Vous pouvez accéder à votre compte via la rubrique <b>Connexion</b>. Une fois connecté, vous pourrez :
</p>
<ul>
<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
enregistrée avant la date limite sera prise en compte pour le tournoi).
</li>
</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"> <div class="alert alert-light">
ATTENTION ! Votre équipe ne sera considérée comme admissible à participer au tournoi que Ce site est récent et il est encore possible que certaines pages ne fonctionnent
lorsque cette première étape aura été franchie. pas correctement.
</p> <br/>
Si vous remarquez des bugs, merci de les signaler à l'adresse
<p> <a href="mailto:contact@tfjm.org">contact@tfjm.org</a>.</em>
Pensez donc à former une équipe complète (minimum 4 participants et 1 encadrant) le plus tôt possible pour </div>
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.
</p>
<p>
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
site pour compléter votre inscription.
</p>
<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.
</p>
<p>
<em><strong>NB :</strong> Ce site est récent et il est encore possible que certaines pages ne fonctionnent
pas correctement. Si vous remarquez des bugs, merci de les signaler à l'adresse <a
href="mailto:contact@tfjm.org">contact@tfjm.org</a>.</em>
</p>
</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) {
?> ?>
Votre inscription est validée ! Merci désormais de confirmer votre boîte mail pour valider votre adresse. <div class="alert alert-success">
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 ?>" <option value="participant"><?= Role::getTranslatedName(Role::PARTICIPANT) ?></option>
required/></td> <option value="encadrant"><?= Role::getTranslatedName(Role::ENCADRANT) ?></option>
</tr> </select>
<tr> </div>
<td><label for="password">Mot de passe :</label></td>
<td><input style="width: 100%;" type="password" id="password" name="password" required/></td> <div class="form-row">
</tr> <div class="form-group col-md-6">
<tr> <label for="surname">Nom :</label>
<td><label for="confirm_password">Confirmer le mot de passe :</label></td> <input class="form-control" type="text" id="surname" name="surname"
<td><input style="width: 100%;" type="password" id="confirm_password" name="confirm_password" required/> value="<?php if (isset($user)) echo $user->surname ?>" required/>
</td> </div>
</tr>
<tr> <div class="form-group col-md-6">
<td><label for="surname">Nom :</label></td> <label for="first_name">Prénom :</label>
<td><input style="width: 100%;" type="text" id="surname" name="surname" <input class="form-control" type="text" id="first_name" name="first_name"
value="<?php if (isset($user)) echo $user->surname ?>" required/></td> value="<?php if (isset($user)) echo $user->first_name ?>" required/>
</tr> </div>
<tr> </div>
<td><label for="first_name">Prénom :</label></td>
<td><input style="width: 100%;" type="text" id="first_name" name="first_name" <div class="form-row">
value="<?php if (isset($user)) echo $user->first_name ?>" required/></td> <div class="form-group col-md-6">
</tr> <label for="email">E-mail :</label>
<tr> <input class="form-control" type="email" id="email" name="email"
<td><label for="birth_date">Date de naissance :</label></td> value="<?php if (isset($user)) echo $user->email ?>"
<td><input style="width: 100%;" type="date" id="birth_date" name="birth_date" required/>
value="<?php if (isset($user)) echo $user->birth_date ?>" required/></td> </div>
</tr> <div class="form-group col-md-6">
<tr> <label for="phone_number">Numéro de téléphone :</label>
<td><label for="gender">Sexe :</label></td> <input class="form-control" type="text" id="phone_number" name="phone_number"
<td><input type="radio" id="male" name="gender" value="M" value="<?php if (isset($user)) echo $user->phone_number ?>"/>
required <?= isset($_POST["gender"]) && $_POST["gender"] == "M" ? "checked" : "" ?> /><label </div>
for="male">Homme</label> </div>
<input type="radio" id="female" name="gender" value="F"
required <?= isset($_POST["gender"]) && $_POST["gender"] == "F" ? "checked" : "" ?> /><label <div class="form-row">
for="female">Femme</label></td> <div class="form-group col-md-6">
</tr> <label for="password">Mot de passe :</label>
<tr> <input class="form-control" type="password" id="password" name="password" required/>
<td><label for="address">Adresse :</label></td> </div>
<td><input style="width: 100%;" type="text" id="address" name="address" <div class="form-group col-md-6">
value="<?php if (isset($user)) echo $user->address ?>"/></td> <label for="confirm_password">Confirmer le mot de passe :</label>
</tr> <input class="form-control" type="password" id="confirm_password" name="confirm_password" required/>
<tr> </div>
<td><label for="postal_code">Code postal :</label></td> </div>
<td><input style="width: 100%;" type="number" id="postal_code" name="postal_code"
value="<?php if (isset($user)) echo $user->postal_code ?>" min="1000" <div class="form-row">
max="95999" required/></td> <div class="form-group col-md-6">
</tr> <label for="gender" class="mr-2">Sexe :</label>
<tr> <br/>
<td><label for="city">Ville :</label></td> <div class="custom-control custom-radio custom-control-inline">
<td><input style="width: 100%;" type="text" id="city" name="city" <input type="radio" class="custom-control-input" id="male" name="gender" value="M"
value="<?php if (isset($user)) echo $user->city ?>"/></td> required <?= isset($_POST["gender"]) && $_POST["gender"] == "M" ? "checked" : "" ?> />
</tr> <label for="male" class="custom-control-label">Homme</label>
<tr> </div>
<td><label for="country">Pays :</label></td> <div class="custom-control custom-radio custom-control-inline">
<td><input style="width: 100%;" type="text" id="country" name="country" <input type="radio" class="custom-control-input" id="female" name="gender" value="F"
value="<?= isset($user) ? $user->country : "France" ?>" required/></td> required <?= isset($_POST["gender"]) && $_POST["gender"] == "F" ? "checked" : "" ?> />
</tr> <label for="female" class="custom-control-label">Femme</label>
<tr> </div>
<td><label for="phone_number">Numéro de téléphone :</label></td> </div>
<td><input style="width: 100%;" type="text" id="phone_number" name="phone_number" <div class="form-group col-md-6">
value="<?php if (isset($user)) echo $user->phone_number ?>"/></td> <label for="birth_date">Date de naissance :</label>
</tr> <input class="form-control" type="date" id="birth_date" name="birth_date"
<tr> value="<?php if (isset($user)) echo $user->birth_date ?>" required/>
<td><label for="role">Rôle :</label></td> </div>
<td><select style="width: 100%;" id="role" name="role" onchange="selectRole()"> </div>
<option value="participant"><?= Role::getTranslatedName(Role::PARTICIPANT) ?></option>
<option value="encadrant"><?= Role::getTranslatedName(Role::ENCADRANT) ?></option> <div class="form-row">
</select></td> <div class="form-group col-md-5">
</tr> <label for="address">Adresse :</label>
<tr> <input class="form-control" type="text" id="address" name="address"
<td><label id="school_label" for="school">Établissement dans lequel l'élève étudie :</label></td> value="<?php if (isset($user)) echo $user->address ?>"/>
<td><input style="width: 100%;" type="text" id="school" name="school" </div>
value="<?php if (isset($user)) echo $user->school ?>"/></td> <div class="form-group col-md-2">
</tr> <label for="postal_code">Code postal :</label>
<tr> <input class="form-control" type="number" id="postal_code" name="postal_code"
<td><label id="class_label" for="class">Classe :</label></td> value="<?php if (isset($user)) echo $user->postal_code ?>" min="1000"
<td><select style="width: 100%;" id="class" name="class"> max="95999" required/>
<option value="terminale"><?= SchoolClass::getTranslatedName(SchoolClass::TERMINALE) ?></option> </div>
<option value="premiere"><?= SchoolClass::getTranslatedName(SchoolClass::PREMIERE) ?></option> <div class="form-group col-md-3">
<option value="seconde"><?= SchoolClass::getTranslatedName(SchoolClass::SECONDE) ?></option> <label for="city">Ville :</label>
</select></td> <input class="form-control" type="text" id="city" name="city"
</tr> value="<?php if (isset($user)) echo $user->city ?>"/>
<tr> </div>
<td><label id="responsible_name_label" for="responsible_name">Nom du responsable légal :</label></td> <div class="form-group col-md-2">
<td><input style="width: 100%;" type="text" id="responsible_name" name="responsible_name" <label for="country">Pays :</label>
value="<?php if (isset($user)) echo $user->responsible_name ?>"/> <input class="form-control" type="text" id="country" name="country"
</td> value="<?= isset($user) ? $user->country : "France" ?>" required/>
</tr> </div>
<tr> </div>
<td><label id="responsible_phone_label" for="responsible_phone">Téléphone du responsable légal :</label> <div class="form-row">
</td> <div class="form-group col-md-6">
<td><input style="width: 100%;" type="text" id="responsible_phone" name="responsible_phone" <label id="school_label" for="school">Établissement dans lequel l'élève étudie :</label>
value="<?php if (isset($user)) echo $user->responsible_phone ?>"/> <input class="form-control" type="text" id="school" name="school"
</td> value="<?php if (isset($user)) echo $user->school ?>"/>
</tr> </div>
<tr> <div class="form-group col-md-6">
<td><label id="responsible_email_label" for="responsible_email">Email du responsable légal :</label> <label id="class_label" for="class">Classe :</label>
</td> <select id="class" name="class" class="custom-select">
<td><input style="width: 100%;" type="text" id="responsible_email" name="responsible_email" <option value="terminale"><?= SchoolClass::getTranslatedName(SchoolClass::TERMINALE) ?></option>
value="<?php if (isset($user)) echo $user->responsible_email ?>"/> <option value="premiere"><?= SchoolClass::getTranslatedName(SchoolClass::PREMIERE) ?></option>
</td> <option value="seconde"><?= SchoolClass::getTranslatedName(SchoolClass::SECONDE) ?></option>
</tr> </select>
<tr> </div>
<td><label id="description_label" for="description">Description :</label></td> </div>
<td><textarea style="width: 100%;" id="description"
name="description"><?php if (isset($user)) echo $user->description ?></textarea> <div class="form-row">
</td> <div class="form-group col-md-4">
</tr> <label id="responsible_name_label" for="responsible_name">Nom du responsable légal :</label>
<tr> <input class="form-control" type="text" id="responsible_name" name="responsible_name"
<td colspan="2"><input style="width: 100%;" type="submit" value="S'inscrire"/></td> value="<?php if (isset($user)) echo $user->responsible_name ?>"/>
</tr>
</table> </div>
<div class="form-group col-md-4">
<label id="responsible_phone_label" for="responsible_phone">Téléphone du responsable légal :</label>
<input class="form-control" type="text" id="responsible_phone" name="responsible_phone"
value="<?php if (isset($user)) echo $user->responsible_phone ?>"/>
</div>
<div class="form-group col-md-4">
<label id="responsible_email_label" for="responsible_email">Email du responsable légal :</label>
<input class="form-control" type="text" id="responsible_email" name="responsible_email"
value="<?php if (isset($user)) echo $user->responsible_email ?>"/>
</div>
</div>
<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>
</div>
<div class="form-group row">
<input class="btn btn-primary btn-lg btn-block" type="submit" value="S'inscrire"/>
</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,41 +1,45 @@
<?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>
</tr> <td><?= formatDate($tournament->getSynthesesDate()) ?></td>
<?php <td><?= $tournament->getSize() ?></td>
} </tr>
?> <?php
</tbody> }
<tfoot style="border: 1px solid black"> ?>
<tr> </tbody>
<th style="border: 1px solid black; text-align: center">Nom</th> <tfoot>
<th style="border: 1px solid black; text-align: center">Dates</th> <tr>
<th style="border: 1px solid black; text-align: center">Inscription avant le</th> <th>Nom</th>
<th style="border: 1px solid black; text-align: center">Date de rendu des solutions</th> <th>Dates</th>
<th style="border: 1px solid black; text-align: center">Places disponibles</th> <th>Inscription avant le</th>
</tr> <th>Date de rendu des solutions</th>
</tfoot> <th>Places disponibles</th>
</tr>
</tfoot>
</table> </table>
<?php require_once "footer.php" ?> <?php require_once "footer.php" ?>