Affichage des équipes n'ayant pas encore participé à la phase en cours

This commit is contained in:
galaxyoyo 2019-10-01 00:15:04 +02:00
parent a2d602cd9e
commit 577e40b034
7 changed files with 84 additions and 12 deletions

View File

@ -3,6 +3,13 @@
class Question
{
const DEFAULT_QUESTIONS = ["Comment avez-vous obtenu vos résultats ?",
"Peut-on rendre votre algorithme plus efficace ? Pourquoi ?",
"Comment élargir vos travaux ?",
null,
null,
null];
private $id;
private $from;
private $to;
@ -73,15 +80,9 @@ class Question
}
if (sizeof($questions) == 0) {
$default_questions = ["Comment avez-vous obtenu vos résultats ?",
"Peut-on rendre votre algorithme plus efficace ? Pourquoi ?",
"Comment élargir vos travaux ?",
null,
null,
null];
for ($i = 0; $i < 6; ++$i) {
$req = $DB->prepare("INSERT INTO `questions`(`from`, `to`, `problem`, `number`, `question`) VALUES (?, ?, ?, ?, ?);");
$req->execute([$from->getId(), $to->getId(), $from->getProblem(), $i, $default_questions[$i]]);
$req->execute([$from->getId(), $to->getId(), $from->getProblem(), $i, self::DEFAULT_QUESTIONS[$i]]);
}
return self::getQuestions($from, $to);
}

View File

@ -52,5 +52,59 @@ $videos = [];
for ($problem = 1; $problem <= 4; ++$problem)
$videos[] = Video::getVideos(Reason::SOLUTION, $problem);
$waiting_teams = [];
switch (Phase::getCurrentPhase()) {
case Phase::PHASE1:
$req = $DB->query("SELECT DISTINCT `teams`.`id` FROM `teams` WHERE `validation_status` = '" . ValidationStatus::getName(ValidationStatus::VALIDATED) . "'"
. " AND `id` NOT IN (SELECT DISTINCT `team` FROM `videos` WHERE `reason` = 'SOLUTION' AND `validation` = " . Video::ACCEPTED . ")"
. " AND `year` = $YEAR;");
break;
case Phase::PHASE2:
$req = $DB->query("SELECT DISTINCT `teams`.`id` FROM `teams`"
. " WHERE `id` NOT IN (SELECT `q1`.`from` FROM `questions` AS `q1`"
. " JOIN `questions` AS `q2` ON `q2`.`from` = `q1`.`from` AND `q2`.`number` = 1"
. " JOIN `questions` AS `q3` ON `q3`.`from` = `q1`.`from` AND `q3`.`number` = 2"
. " JOIN `questions` AS `q4` ON `q4`.`from` = `q1`.`from` AND `q4`.`number` = 3"
. " JOIN `questions` AS `q5` ON `q5`.`from` = `q1`.`from` AND `q5`.`number` = 4"
. " JOIN `questions` AS `q6` ON `q6`.`from` = `q1`.`from` AND `q6`.`number` = 5"
. " WHERE `q1`.`question` != '" . Question::DEFAULT_QUESTIONS[0] . "'"
. " OR `q2`.`question` != '" . Question::DEFAULT_QUESTIONS[1] . "'"
. " OR `q3`.`question` != '" . Question::DEFAULT_QUESTIONS[2] . "'"
. " OR `q4`.`question` IS NOT NULL"
. " OR `q5`.`question` IS NOT NULL"
. " OR `q6`.`question` IS NOT NULL)"
. " AND `validation_status` = '" . ValidationStatus::getName(ValidationStatus::VALIDATED) . "'"
. " AND `year` = $YEAR;");
break;
case Phase::PHASE3:
$req = $DB->query("SELECT DISTINCT `teams`.`id` FROM `teams`"
. " WHERE `id` NOT IN (SELECT `q1`.`to` FROM `questions` AS `q1`"
. " JOIN `questions` AS `q2` ON `q2`.`to` = `q1`.`to` AND `q2`.`number` = 1"
. " JOIN `questions` AS `q3` ON `q3`.`to` = `q1`.`to` AND `q3`.`number` = 2"
. " JOIN `questions` AS `q4` ON `q4`.`to` = `q1`.`to` AND `q4`.`number` = 3"
. " JOIN `questions` AS `q5` ON `q5`.`to` = `q1`.`to` AND `q5`.`number` = 4"
. " JOIN `questions` AS `q6` ON `q6`.`to` = `q1`.`to` AND `q6`.`number` = 5"
. " WHERE `q1`.`answer` IS NOT NULL"
. " OR `q2`.`answer` IS NOT NULL"
. " OR `q3`.`answer` IS NOT NULL"
. " OR `q4`.`answer` IS NOT NULL"
. " OR `q5`.`answer` IS NOT NULL"
. " OR `q6`.`answer` IS NOT NULL)"
. " AND `validation_status` = '" . ValidationStatus::getName(ValidationStatus::VALIDATED) . "'"
. " AND `year` = $YEAR;");
break;
case Phase::PHASE4:
$req = $DB->query("SELECT DISTINCT `teams`.`id` FROM `teams` WHERE `validation_status` = '" . ValidationStatus::getName(ValidationStatus::VALIDATED) . "'"
. " AND (`id` NOT IN (SELECT DISTINCT `team` FROM `videos` WHERE `reason` = 'ANSWER1' AND `validation` = " . Video::ACCEPTED . ")"
. " OR `id` NOT IN (SELECT DISTINCT `team` FROM `videos` WHERE `reason` = 'ANSWER2' AND `validation` = " . Video::ACCEPTED . "))"
. " AND `year` = $YEAR;");
break;
}
if (isset($req)) {
while (($data = $req->fetch()) !== false)
$waiting_teams[] = Team::fromId($data["id"]);
}
require_once "server_files/views/suivi_tournoi.php";

View File

@ -10,7 +10,7 @@ Bonjour {FIRST_NAME} {SURNAME},<br/>
L'équipe « {TEAM_NAME} » ({TRIGRAM}) vient d'ajouter une vidéo de réponse destinée à l'équipe « {DEST_TEAM_NAME} » ({DEST_TRIGRAM})
pour le problème {PROBLEM} des Correspondances des Jeunes Mathématicien·ne·s : <a href="{VIDEO_LINK}">{VIDEO_LINK}</a>.
Vous êtes désormais invité avant que quelqu'un d'autre ne le fasse à accepter ou refuser cette vidéo via la plateforme d'inscription (accessible après connexion) :
<a href="{URL_BASE}/videos-solutions">{URL_BASE}/videos-solutions</a><br/>
<a href="{URL_BASE}/suivi-tournoi">{URL_BASE}/suivi-tournoi</a><br/>
<br/>
Cordialement,<br/>
<br/>

View File

@ -9,7 +9,7 @@ Bonjour {FIRST_NAME} {SURNAME},<br/>
<br/>
L'équipe « {TEAM_NAME} » ({TRIGRAM}) vient d'ajouter une vidéo pour le problème {PROBLEM} des Correspondances des Jeunes Mathématicien·ne·s : <a href="{VIDEO_LINK}">{VIDEO_LINK}</a>.
Vous êtes désormais invité avant que quelqu'un d'autre ne le fasse à accepter ou refuser cette vidéo via la plateforme d'inscription (accessible après connexion) :
<a href="{URL_BASE}/videos-solutions">{URL_BASE}/videos-solutions</a><br/>
<a href="{URL_BASE}/suivi-tournoi">{URL_BASE}/suivi-tournoi</a><br/>
<br/>
Cordialement,<br/>
<br/>

View File

@ -42,7 +42,7 @@ if ($_SESSION["role"] == Role::ADMIN) { ?>
<hr/>
<? if ($team->getValidationStatus() == ValidationStatus::VALIDATED) { ?>
<!--suppress HtmlUnknownTarget -->
<a href="/videos-solutions#team-<?= $team->getTrigram() ?>"><button class="btn btn-primary btn-lg btn-block">
<a href="/suivi-tournoi#team-<?= $team->getTrigram() ?>"><button class="btn btn-primary btn-lg btn-block">
Aller aux vidéos de l'équipe</button></a><br />
<form method="POST">
<div class="form-group row">

View File

@ -5,8 +5,8 @@
<div class="jumbotron bg-white">
<div class="row">
<h1 class="display-3">
Bienvenue sur le site d'inscription aux <a href="https://correspondances-maths.fr/ ">Correspondances
des Jeunes Mathématicien·ne·s</a> <span style="color: red;">&hearts;</span> !
Bienvenue sur le site d'inscription aux <a href="https://correspondances-maths.fr/">Correspondances
des Jeunes Mathématicien·ne·s</a> <!-- <span style="color: red;">&hearts;</span> --> !
</h1>
<h2 class="display-4 text-muted">
<!-- Le Tournoi Français des Jeunes Mathématiciens et Mathématiciennes -->

View File

@ -6,6 +6,23 @@ require_once "header.php";
<h1 class="display-4">Suivi du tournoi</h1>
</div>
<?php
if (sizeof($waiting_teams) > 0) { ?>
<div class="alert alert-warning">
<?= sizeof($waiting_teams) == 1 ? "L'équipe suivante n'a" : "Les équipes suivantes n'ont" ?> pas encore participé à la phase en cours :
<ul>
<?php
foreach ($waiting_teams as $team) { ?>
<li>
<a href="/equipe/<?= $team->getTrigram() ?>">
Équipe <?= $team->getName() ?> (<?= $team->getTrigram() ?>)
</a>
</li>
<?php } ?>
</ul>
</div>
<?php } ?>
<hr />
<?php