mirror of
				https://gitlab.com/animath/si/plateforme.git
				synced 2025-11-04 11:52:20 +01:00 
			
		
		
		
	Support de la finale
This commit is contained in:
		@@ -10,13 +10,67 @@ if (isset($_POST["validate"])) {
 | 
			
		||||
 | 
			
		||||
$team_data = $DB->query("SELECT * FROM `teams` WHERE `trigram` = '$trigram' AND `year` = $YEAR;")->fetch();
 | 
			
		||||
 | 
			
		||||
if (isset($_POST["select"])) {
 | 
			
		||||
	$DB->exec("UPDATE `teams` SET `final_selection` = true, `validation_status` = 'NOT_READY' WHERE `trigram` = '$trigram' AND `year` = $YEAR;");
 | 
			
		||||
	$team_data["validation_status"] = "NOT_READY";
 | 
			
		||||
	$team_data["final_selection"] = true;
 | 
			
		||||
	$final_id = $_SESSION["final_id"];
 | 
			
		||||
	$team_id = $team_data["id"];
 | 
			
		||||
	
 | 
			
		||||
	$sols_req = $DB->prepare("SELECT `file_id`, `problem`, COUNT(`problem`) AS `version` FROM `solutions` WHERE `team` = ? AND `tournament` = ? GROUP BY `problem`, `uploaded_at` ORDER BY `problem`, `uploaded_at` DESC;");
 | 
			
		||||
	$sols_req->execute([$team_data["id"], $team_data["tournament"]]);
 | 
			
		||||
	while (($sol_data = $sols_req->fetch()) !== false) {
 | 
			
		||||
		$old_id = $sol_data["file_id"];
 | 
			
		||||
		$alphabet = "abcdefghijklmnopqrstuvwxyz0123456789";
 | 
			
		||||
		
 | 
			
		||||
		do {
 | 
			
		||||
			$id = "";
 | 
			
		||||
			for ($i = 0; $i < 64; ++$i) {
 | 
			
		||||
				$id .= $alphabet[rand(0, strlen($alphabet) - 1)];
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		while (file_exists("$LOCAL_PATH/files/$id"));
 | 
			
		||||
		
 | 
			
		||||
		copy("$LOCAL_PATH/files/$old_id", "$LOCAL_PATH/files/$id");
 | 
			
		||||
		
 | 
			
		||||
		$req = $DB->prepare("INSERT INTO `solutions`(`file_id`, `team`, `tournament`, `problem`)
 | 
			
		||||
                VALUES (?, ?, ?, ?);");
 | 
			
		||||
		$req->execute([$id, $team_id, $_SESSION["final_id"], $sol_data["problem"]]);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	$syntheses_req = $DB->prepare("SELECT `file_id`, `dest`, COUNT(`dest`) AS `version` FROM `syntheses` WHERE `team` = ? AND `tournament` = ? GROUP BY `dest`, `uploaded_at` ORDER BY `dest`, `uploaded_at` DESC;");
 | 
			
		||||
	$syntheses_req->execute([$team_data["id"], $team_data["tournament"]]);
 | 
			
		||||
	while (($synthese_data = $syntheses_req->fetch()) !== false) {
 | 
			
		||||
		$old_id = $synthese_data["file_id"];
 | 
			
		||||
		$alphabet = "abcdefghijklmnopqrstuvwxyz0123456789";
 | 
			
		||||
		
 | 
			
		||||
		do {
 | 
			
		||||
			$id = "";
 | 
			
		||||
			for ($i = 0; $i < 64; ++$i) {
 | 
			
		||||
				$id .= $alphabet[rand(0, strlen($alphabet) - 1)];
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		while (file_exists("$LOCAL_PATH/files/$id"));
 | 
			
		||||
		
 | 
			
		||||
		copy("$LOCAL_PATH/files/$old_id", "$LOCAL_PATH/files/$id");
 | 
			
		||||
		
 | 
			
		||||
		$req = $DB->prepare("INSERT INTO `syntheses`(`file_id`, `team`, `tournament`, `dest`) VALUES (?, ?, ?, ?);");
 | 
			
		||||
		$req->execute([$id, $team_id, $_SESSION["final_id"], $synthese_data["dest"]]);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if ($team_data === false)
 | 
			
		||||
    include "404.php";
 | 
			
		||||
 | 
			
		||||
$tournament_data = $DB->query("SELECT `name`, `date_start` FROM `tournaments` WHERE `id` = '" . $team_data["tournament"] . "' AND `year` = '$YEAR';")->fetch();
 | 
			
		||||
 | 
			
		||||
$documents_req = $DB->prepare("SELECT `file_id`, `user`, `type`, COUNT(`type`) AS `version` FROM `documents` WHERE `team` = ? GROUP BY `user`, `type` ORDER BY `user`, `type` ASC, MAX(`uploaded_at`) DESC;");
 | 
			
		||||
$documents_req->execute([$team_data["id"]]);
 | 
			
		||||
$documents_req = $DB->prepare("SELECT `file_id`, `user`, `type`, COUNT(`type`) AS `version` FROM `documents` WHERE `team` = ? AND `tournament` = ? GROUP BY `user`, `type` ORDER BY `user`, `type` ASC, MAX(`uploaded_at`) DESC;");
 | 
			
		||||
$documents_req->execute([$team_data["id"], $team_data["tournament"]]);
 | 
			
		||||
 | 
			
		||||
if ($team_data["final_selection"]) {
 | 
			
		||||
	$documents_final_req = $DB->prepare("SELECT `file_id`, `user`, `type`, COUNT(`type`) AS `version` FROM `documents` WHERE `team` = ? AND `tournament` != ? GROUP BY `user`, `type` ORDER BY `user`, `type` ASC, MAX(`uploaded_at`) DESC;");
 | 
			
		||||
	$documents_final_req->execute([$team_data["id"], $_SESSION["final_id"]]);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
 | 
			
		||||
@@ -42,6 +96,10 @@ for ($i = 1; $i <= 6; ++$i) {
 | 
			
		||||
	$id = $user_data["id"];
 | 
			
		||||
	echo "Participant $i : <a href=\"$URL_BASE/informations/$id/" . $user_data["first_name"] . " " . $user_data["surname"] . "\">" . $user_data["first_name"] . " " . $user_data["surname"] . "</a><br />";
 | 
			
		||||
}
 | 
			
		||||
if ($team_data["final_selection"]) {
 | 
			
		||||
    $final_name = $_SESSION["final_name"];
 | 
			
		||||
	echo "<strong>Équipe sélectionnée pour la <a href=\"$URL_BASE/tournoi/$final_name\">finale nationale</a>.</strong>";
 | 
			
		||||
}
 | 
			
		||||
?>
 | 
			
		||||
 | 
			
		||||
<hr />
 | 
			
		||||
@@ -72,11 +130,43 @@ while (($data = $documents_req->fetch()) !== false) {
 | 
			
		||||
}
 | 
			
		||||
?>
 | 
			
		||||
 | 
			
		||||
<?php
 | 
			
		||||
<?php if ($team_data["final_selection"]) { ?>
 | 
			
		||||
    <hr />
 | 
			
		||||
    <h2>Autorisations pour la finale</h2>
 | 
			
		||||
	<?php
 | 
			
		||||
	while (($data = $documents_req->fetch()) !== false) {
 | 
			
		||||
		$file_id = $data["file_id"];
 | 
			
		||||
		$type = $data["type"];
 | 
			
		||||
		$user_id = $data["user"];
 | 
			
		||||
		$user_data = $DB->query("SELECT `surname`, `first_name` FROM `users` WHERE `id` = '$user_id';")->fetch();
 | 
			
		||||
		$surname = $user_data["surname"];
 | 
			
		||||
		$first_name = $user_data["first_name"];
 | 
			
		||||
		$version = $data["version"];
 | 
			
		||||
		switch ($data["type"]) {
 | 
			
		||||
			case "PARENTAL_CONSENT":
 | 
			
		||||
				$name = "Autorisation parentale";
 | 
			
		||||
				break;
 | 
			
		||||
			case "PHOTO_CONSENT":
 | 
			
		||||
				$name = "Autorisation de droit à l'image";
 | 
			
		||||
				break;
 | 
			
		||||
			case "SANITARY_PLUG":
 | 
			
		||||
				$name = "Fiche sanitaire";
 | 
			
		||||
				break;
 | 
			
		||||
		}
 | 
			
		||||
		echo "$name de $first_name $surname : <a href=\"$URL_BASE/file/$file_id\">Télécharger</a><br />";
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if ($team_data["validation_status"] == "WAITING" && $_SESSION["role"] == "ADMIN") { ?>
 | 
			
		||||
    <form method="POST">
 | 
			
		||||
        <input type="submit" name="validate" value="Valider l'équipe" />
 | 
			
		||||
        <input style="width: 100%;" type="submit" name="validate" value="Valider l'équipe" />
 | 
			
		||||
    </form>
 | 
			
		||||
<?php
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if (!$team_data["final_selection"]) { ?>
 | 
			
		||||
    <form method="POST">
 | 
			
		||||
        <input style="width: 100%;" type="submit" name="select" value="Sélectionner pour la finale nationale" />
 | 
			
		||||
    </form>
 | 
			
		||||
<?php } ?>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user