mirror of
				https://gitlab.com/animath/si/plateforme-corres2math.git
				synced 2025-11-04 10:22:15 +01:00 
			
		
		
		
	Beaucoup de petites modifications
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								assets/Autorisation de droit à l'image - majeur.pdf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/Autorisation de droit à l'image - majeur.pdf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								assets/Autorisation de droit à l'image - mineur.pdf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/Autorisation de droit à l'image - mineur.pdf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -58,6 +58,8 @@ $ROUTES["^suivi-tournoi/?$"] = ["server_files/controllers/suivi_tournoi.php"];
 | 
			
		||||
 | 
			
		||||
# Assets files
 | 
			
		||||
 | 
			
		||||
$ROUTES["^Autorisation de droit à l'image - majeur.pdf$"] = ["assets/Autorisation de droit à l'image - majeur.pdf", "application/pdf"];
 | 
			
		||||
$ROUTES["^Autorisation de droit à l'image - mineur.pdf$"] = ["assets/Autorisation de droit à l'image - mineur.pdf", "application/pdf"];
 | 
			
		||||
$ROUTES["^favicon\.ico$"] = ["assets/favicon.ico", "image/x-icon"];
 | 
			
		||||
$ROUTES["^logo\.png"] = ["assets/logo.png", "image/png"];
 | 
			
		||||
$ROUTES["^style\.css$"] = ["assets/style.css", "text/css"];
 | 
			
		||||
 
 | 
			
		||||
@@ -79,7 +79,7 @@ class Document
 | 
			
		||||
		$req = $DB->query("SELECT * FROM `documents` AS `t1` "
 | 
			
		||||
			. "INNER JOIN (SELECT `user`, `problem`, MAX(`uploaded_at`) AS `last_upload`, COUNT(`team`) AS `version` FROM `documents` GROUP BY `problem`, `user`) `t2` "
 | 
			
		||||
			. "ON `t1`.`user` = `t2`.`user` AND `t1`.`problem` = `t2`.`problem` "
 | 
			
		||||
			. "WHERE `t1`.`uploaded_at` = `t2`.`last_upload` AND `t1`.`problem` = $problem " . ($team_id >= 0 ? "AND `team` = $team_id" : "") . ";");
 | 
			
		||||
			. "WHERE `t1`.`uploaded_at` = `t2`.`last_upload` AND `t1`.`problem` = $problem " . ($team_id >= 0 ? "AND `team` = $team_id" : "") . " ORDER BY `t1`.`user`;");
 | 
			
		||||
 | 
			
		||||
		$docs = [];
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -18,6 +18,40 @@ elseif (isset($_POST["unvalidate"])) {
 | 
			
		||||
    $team->setValidationStatus(ValidationStatus::NOT_READY);
 | 
			
		||||
    Mailer::sendUnvalidateTeam($team);
 | 
			
		||||
}
 | 
			
		||||
elseif (isset($_POST["select_problem"])) {
 | 
			
		||||
	if ($team->getValidationStatus() == ValidationStatus::NOT_READY) {
 | 
			
		||||
		$problem = $_POST["select_problem"];
 | 
			
		||||
		if (preg_match("#[0-4]#", $problem)) {
 | 
			
		||||
			$team->setProblem($problem);
 | 
			
		||||
			$DB->prepare("UPDATE `documents` SET `problem` = ? WHERE `team` = ?;")->execute([$problem, $team->getId()]);
 | 
			
		||||
		}
 | 
			
		||||
		else {
 | 
			
		||||
			$has_error = true;
 | 
			
		||||
			$error_message = "Le problème indiqué n'existe pas.";
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		$has_error = true;
 | 
			
		||||
		$error_message = "Cette équipe est déjà validée ou en cours de validation.";
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
elseif (isset($_POST["delete_team"])) {
 | 
			
		||||
	if ($team->getValidationStatus() == ValidationStatus::NOT_READY) {
 | 
			
		||||
		$documents = Document::getAllDocuments($team->getProblem(), $team->getId());
 | 
			
		||||
		/** @var Document $doc */
 | 
			
		||||
		foreach ($documents as $doc)
 | 
			
		||||
			unlink($LOCAL_PATH . "/files/" . $doc->getFileId());
 | 
			
		||||
		$DB->prepare("DELETE FROM `documents` WHERE `team` = ?;")->execute([$team->getId()]);
 | 
			
		||||
		$DB->prepare("DELETE FROM `teams` WHERE `id` = ?;")->execute([$team->getId()]);
 | 
			
		||||
		$DB->prepare("UPDATE `users` SET `team_id` = NULL WHERE `team_id` = ?;")->execute([$team->getId()]);
 | 
			
		||||
		header("Location: /");
 | 
			
		||||
		exit(0);
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		$has_error = true;
 | 
			
		||||
		$error_message = "Cette équipe est déjà validée ou en cours de validation.";
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if (isset($_POST["download_zip"])) {
 | 
			
		||||
	$file_name = getZipFile($team->getProblem(), $team->getId());
 | 
			
		||||
 
 | 
			
		||||
@@ -92,6 +92,6 @@ class AttributeTeam
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if ($team != null)
 | 
			
		||||
	$documents = $user->getAllDocuments($team->getProblem());
 | 
			
		||||
	$documents = $user->getAllDocuments();
 | 
			
		||||
 | 
			
		||||
require_once "server_files/views/informations.php";
 | 
			
		||||
 
 | 
			
		||||
@@ -29,8 +29,10 @@ if (isset($_POST["request_validation"])) {
 | 
			
		||||
		$has_error = true;
 | 
			
		||||
		$error_message = "Vous devez cocher la case qui vous engage à participer à l'intégralité des Correspondances.";
 | 
			
		||||
	}
 | 
			
		||||
	else
 | 
			
		||||
	else {
 | 
			
		||||
		$_SESSION["team"]->setValidationStatus(ValidationStatus::WAITING);
 | 
			
		||||
		Mailer::sendRequestValidationMail($team);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/** @var Question[][] $questions_received */
 | 
			
		||||
@@ -95,6 +97,7 @@ class MyTeam
 | 
			
		||||
		$this->team->setProblem($this->problem);
 | 
			
		||||
 | 
			
		||||
		$DB->exec("UPDATE `teams` SET `problem` = " . $this->problem . " WHERE `id` = " . $this->team->getId() . ";");
 | 
			
		||||
		$DB->exec("UPDATE `documents` SET `problem` = " . $this->problem . " WHERE `team` = " . $this->team->getId() . ";");
 | 
			
		||||
 | 
			
		||||
		header("Location: $URL_BASE/mon-equipe");
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -95,13 +95,6 @@ function canValidate(Team $team)
 | 
			
		||||
	$can_validate &= $team->getParticipants()[2] != null;
 | 
			
		||||
	$can_validate &= preg_match("#[1-4]#", $team->getProblem());
 | 
			
		||||
 | 
			
		||||
	if ($team->getEncadrantId() != null) {
 | 
			
		||||
		$req = $DB->prepare("SELECT COUNT(*) AS `version` FROM `documents` WHERE `user` = ? AND `problem` = ?;");
 | 
			
		||||
		$req->execute([$team->getEncadrantId(), $team->getProblem()]);
 | 
			
		||||
		$d = $req->fetch();
 | 
			
		||||
		$can_validate &= $d["version"] > 0;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for ($i = 1; $i <= 5; ++$i) {
 | 
			
		||||
		if ($team->getParticipants()[$i] === NULL)
 | 
			
		||||
			continue;
 | 
			
		||||
 
 | 
			
		||||
@@ -150,6 +150,19 @@ class Mailer
 | 
			
		||||
		self::sendMail($user->getEmail(), "Équipe rejointe – Correspondances des Jeunes Mathématicien·ne·s $YEAR", $content);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public static function sendRequestValidationMail(Team $team)
 | 
			
		||||
	{
 | 
			
		||||
		global $YEAR;
 | 
			
		||||
 | 
			
		||||
		$content = self::getTemplate("request_validation");
 | 
			
		||||
		$content = preg_replace("#{TEAM_NAME}#", $team->getName(), $content);
 | 
			
		||||
		$content = preg_replace("#{TRIGRAM}#", $team->getTrigram(), $content);
 | 
			
		||||
		$content = preg_replace("#{PROBLEM}#", $team->getProblem(), $content);
 | 
			
		||||
		$content = preg_replace("#{ACCESS_CODE}#", $team->getAccessCode(), $content);
 | 
			
		||||
 | 
			
		||||
		self::broadcastToAdmins("Ajout d'une équipe – Correspondances des Jeunes Mathématicien·ne·s $YEAR", $content);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    public static function sendValidateTeam($team)
 | 
			
		||||
    {
 | 
			
		||||
        global $YEAR;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										19
									
								
								server_files/services/mail_templates/request_validation.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								server_files/services/mail_templates/request_validation.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<!--suppress HtmlUnknownTarget -->
 | 
			
		||||
<html lang="fr">
 | 
			
		||||
<head>
 | 
			
		||||
    <meta charset="UTF-8">
 | 
			
		||||
    <title>Demande de validation - Correspondances des Jeunes Mathématicien·ne·s</title>
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
Bonjour {FIRST_NAME} {SURNAME},<br />
 | 
			
		||||
<br />
 | 
			
		||||
L'équipe « {TEAM_NAME} » ({TRIGRAM}) vient de demander à valider son équipe pour participer au problème n°{PROBLEM} des
 | 
			
		||||
Correspondances des Jeunes Mathématicien·ne·s. Vous pouvez décider d'accepter ou de refuser l'équipe en vous rendant sur
 | 
			
		||||
la page de l'équipe : <a href="{URL_BASE}/equipe/{TRIGRAM}">{URL_BASE}/equipe/{TRIGRAM}</a><br/>
 | 
			
		||||
<br/>
 | 
			
		||||
Cordialement,<br/>
 | 
			
		||||
<br />
 | 
			
		||||
L'organisation des Correspondances des Jeunes Mathématicien·ne·s
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -11,9 +11,22 @@
 | 
			
		||||
        <strong>Trigramme :</strong> <?= $team->getTrigram() ?>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="alert alert-info">
 | 
			
		||||
        <strong>Problème :</strong> <a href="/probleme/<?= $team->getProblem() ?>">
 | 
			
		||||
            <?= $team->getProblem() == 0 ? "Pas de problème choisi" : $team->getProblem() ?>
 | 
			
		||||
        </a>
 | 
			
		||||
        <?php if (date("Y-m-d H:i:s") < $CONFIG->getInscriptionDate()) { ?>
 | 
			
		||||
            <label for="problem">Problème :</label>
 | 
			
		||||
            <form method="POST">
 | 
			
		||||
                <select class="custom-select" id="problem" name="select_problem" onchange="this.form.submit()">
 | 
			
		||||
                    <option value="0">Pas de problème choisi</option>
 | 
			
		||||
                    <?php
 | 
			
		||||
                    for ($i = 1; $i <= 4; ++$i) { ?>
 | 
			
		||||
                        <option value="<?= $i ?>" <?= $team->getProblem() == $i ? "selected" : "" ?>>Problème <?= $i ?></option>
 | 
			
		||||
                    <?php } ?>
 | 
			
		||||
                </select>
 | 
			
		||||
            </form>
 | 
			
		||||
        <?php } else { ?>
 | 
			
		||||
            <strong>Problème :</strong> <a href="/probleme/<?= $team->getProblem() ?>">
 | 
			
		||||
                <?= $team->getProblem() == 0 ? "Pas de problème choisi" : $team->getProblem() ?>
 | 
			
		||||
            </a>
 | 
			
		||||
        <?php } ?>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="alert alert-<?= $team->getValidationStatus() == ValidationStatus::VALIDATED ? "success" : ($team->getValidationStatus() == ValidationStatus::WAITING ? "warning" : "danger") ?>">
 | 
			
		||||
        <strong>Validation de l'équipe
 | 
			
		||||
@@ -78,7 +91,7 @@ if ($_SESSION["role"] == Role::ADMIN) { ?>
 | 
			
		||||
 | 
			
		||||
    <hr/>
 | 
			
		||||
 | 
			
		||||
    <h2>Autorisations</h2>
 | 
			
		||||
    <h2>Autorisations de droit à l'image</h2>
 | 
			
		||||
 | 
			
		||||
<?php printDocuments($documents) ?>
 | 
			
		||||
 | 
			
		||||
@@ -99,6 +112,11 @@ if ($_SESSION["role"] == Role::ADMIN) { ?>
 | 
			
		||||
        </div>
 | 
			
		||||
    </form>
 | 
			
		||||
	<?php
 | 
			
		||||
}
 | 
			
		||||
} elseif ($team->getValidationStatus() == ValidationStatus::NOT_READY && $_SESSION["role"] == Role::ADMIN) { ?>
 | 
			
		||||
    <hr/>
 | 
			
		||||
    <form method="POST">
 | 
			
		||||
        <input type="submit" class="btn btn-primary btn-lg btn-block" name="delete_team" value="Supprimer l'équipe" style="background-color: #ff2e34"/>
 | 
			
		||||
    </form>
 | 
			
		||||
<?php }
 | 
			
		||||
 | 
			
		||||
require_once "footer.php" ?>
 | 
			
		||||
@@ -46,7 +46,7 @@
 | 
			
		||||
 | 
			
		||||
            <div class="alert alert-warning">
 | 
			
		||||
                <strong>Attention aux dates !</strong> Si vous ne finalisez pas votre inscription dans le délai indiqué, vous
 | 
			
		||||
                ne pourrez malheureusement pas participer au tournoi.
 | 
			
		||||
                ne pourrez malheureusement pas participer aux Correspondances.
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
            <div class="alert alert-info">
 | 
			
		||||
 
 | 
			
		||||
@@ -94,6 +94,7 @@ if (!$has_error) {
 | 
			
		||||
        <h1 class="display-5">Autorisation de droit à l'image :</h1>
 | 
			
		||||
    </div>
 | 
			
		||||
	<?php
 | 
			
		||||
    print_r($documents);
 | 
			
		||||
	printDocuments($documents);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -91,7 +91,7 @@ if (!$has_error && (isset($my_account) || isset($new_password))) {
 | 
			
		||||
                </div>
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
        <?php } else { ?>
 | 
			
		||||
		<?php } else if ($user->getRole() == Role::ENCADRANT) { ?>
 | 
			
		||||
 | 
			
		||||
            <div class="form-group row">
 | 
			
		||||
                <label id="description_label" for="description">Activité professionnelle :</label>
 | 
			
		||||
@@ -134,12 +134,17 @@ if (!$has_error && (isset($my_account) || isset($new_password))) {
 | 
			
		||||
        </div>
 | 
			
		||||
    </form>
 | 
			
		||||
 | 
			
		||||
<?php if (isset($_SESSION["team"]) && $_SESSION["team"]->getValidationStatus() == ValidationStatus::NOT_READY) { ?>
 | 
			
		||||
<?php if (isset($_SESSION["team"]) && $user->getRole() == Role::PARTICIPANT && $_SESSION["team"]->getValidationStatus() == ValidationStatus::NOT_READY
 | 
			
		||||
    && date("Y-m-d H:i:s") < $CONFIG->getInscriptionDate()) { ?>
 | 
			
		||||
    <hr/>
 | 
			
		||||
    <div class="mt-4 mb-4">
 | 
			
		||||
        <h1 class="display-5">Autorisation de droit à l'image</h1>
 | 
			
		||||
    </div>
 | 
			
		||||
    <em>Ce document peut être modifié tant que l'équipe n'est pas validée.</em>
 | 
			
		||||
    <div class="alert alert-info">
 | 
			
		||||
        <strong>Modèle d'autorisation de droit à l'image :</strong>
 | 
			
		||||
        <a href="/Autorisation de droit à l'image - majeur.pdf">majeur</a> - <a href="/Autorisation de droit à l'image - mineur.pdf">mineur</a>
 | 
			
		||||
    </div>
 | 
			
		||||
    <?php printDocuments($documents); ?>
 | 
			
		||||
    <form method="POST" enctype="multipart/form-data">
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -101,7 +101,7 @@ require_once "header.php";
 | 
			
		||||
            <hr/>
 | 
			
		||||
 | 
			
		||||
            <form method="POST">
 | 
			
		||||
                <input class="btn btn-primary btn-lg btn-block" type="submit" name="leave_team"
 | 
			
		||||
                <input class="btn btn-primary btn-lg btn-block" type="submit" name="leave_team" style="background-color: #ff2e34"
 | 
			
		||||
                       value="Quitter l'équipe"/>
 | 
			
		||||
            </form>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user