diff --git a/server_files/classes/Team.php b/server_files/classes/Team.php index 12ede92..5c8c5b9 100644 --- a/server_files/classes/Team.php +++ b/server_files/classes/Team.php @@ -199,6 +199,11 @@ class Team $DB->prepare("UPDATE `teams` SET `validation_status` = ? WHERE `id` = ?;")->execute([ValidationStatus::getName($status), $this->id]); } + public function getSolution() + { + return Video::getVideo(Reason::SOLUTION, $this); + } + public function getVideoTeamIds() { return $this->video_team_ids; diff --git a/server_files/controllers/suivi_correspondances.php b/server_files/controllers/suivi_correspondances.php index fe77bb6..5c3dcbc 100644 --- a/server_files/controllers/suivi_correspondances.php +++ b/server_files/controllers/suivi_correspondances.php @@ -58,11 +58,13 @@ $waiting_emails = []; switch (Phase::getCurrentPhase()) { case Phase::PHASE1: + case Phase::PHASE12: $req = $DB->query("SELECT DISTINCT `teams`.`id`, `teams`.`problem`, `teams`.`trigram` 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 ORDER BY `problem`, `trigram`;"); break; case Phase::PHASE2: + case Phase::PHASE23: $req = $DB->query("SELECT DISTINCT `teams`.`id`, `teams`.`problem`, `teams`.`trigram` 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` = 2" @@ -81,6 +83,7 @@ switch (Phase::getCurrentPhase()) { . " AND `year` = $YEAR ORDER BY `problem`, `trigram`;"); break; case Phase::PHASE3: + case Phase::PHASE34: $req = $DB->query("SELECT DISTINCT `teams`.`id`, `teams`.`problem`, `teams`.`trigram` 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` = 2" @@ -99,6 +102,7 @@ switch (Phase::getCurrentPhase()) { . " AND `year` = $YEAR ORDER BY `problem`, `trigram`;"); break; case Phase::PHASE4: + case Phase::END: $req = $DB->query("SELECT DISTINCT `teams`.`id`, `teams`.`problem`, `teams`.`trigram` 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 . "))" @@ -110,6 +114,8 @@ if (isset($req)) { $waiting_emails = []; while (($data = $req->fetch()) !== false) { $team = Team::fromId($data["id"]); + if (Phase::getCurrentPhase() >= Phase::PHASE12 && $team->getSolution() == null) + continue; $waiting_teams[] = $team; $waiting_emails = array_merge($waiting_emails, $team->getAllEmails()); } diff --git a/server_files/views/suivi_correspondances.php b/server_files/views/suivi_correspondances.php index 0e73663..f542899 100644 --- a/server_files/views/suivi_correspondances.php +++ b/server_files/views/suivi_correspondances.php @@ -9,12 +9,12 @@ require_once "header.php"; 0) { ?>