mirror of
https://gitlab.com/animath/si/plateforme-corres2math.git
synced 2025-01-05 23:42:21 +00:00
Diffusion des vidéos
This commit is contained in:
parent
061e83fd58
commit
32e47f73f3
@ -46,6 +46,7 @@ $ROUTES["^file/([a-z0-9]{64})/?$"] = ["server_files/controllers/view_file.php",
|
||||
$ROUTES["^informations/([0-9]*)/.*?$"] = ["server_files/controllers/informations.php", "id"];
|
||||
$ROUTES["^inscription/?$"] = ["server_files/controllers/inscription.php"];
|
||||
$ROUTES["^mon-compte/?$"] = ["server_files/controllers/mon_compte.php"];
|
||||
$ROUTES["^mon-equipe/(diffusion-videos)/?$"] = ["server_files/controllers/mon_equipe.php", "publish_videos"];
|
||||
$ROUTES["^mon-equipe/(modifier)/?$"] = ["server_files/controllers/mon_equipe.php", "modifier"];
|
||||
$ROUTES["^mon-equipe/?$"] = ["server_files/controllers/mon_equipe.php"];
|
||||
$ROUTES["^poser-questions-2$"] = ["server_files/controllers/poser_questions.php"];
|
||||
|
@ -9,6 +9,7 @@ class Team
|
||||
private $encadrant;
|
||||
private $participants;
|
||||
private $inscription_date;
|
||||
private $allow_publish;
|
||||
private $validation_status;
|
||||
private $video_team_ids;
|
||||
private $access_code;
|
||||
@ -95,6 +96,7 @@ class Team
|
||||
$this->encadrant = $data["encadrant"];
|
||||
$this->participants = [$data["participant_1"], $data["participant_2"], $data["participant_3"], $data["participant_4"], $data["participant_5"]];
|
||||
$this->inscription_date = $data["inscription_date"];
|
||||
$this->allow_publish = $data["allow_publish"];
|
||||
$this->validation_status = ValidationStatus::fromName($data["validation_status"]);
|
||||
$this->video_team_ids = [$data["video_team1"], $data["video_team2"]];
|
||||
$this->access_code = $data["access_code"];
|
||||
@ -173,6 +175,18 @@ class Team
|
||||
return $this->inscription_date;
|
||||
}
|
||||
|
||||
public function allowPublish()
|
||||
{
|
||||
return $this->allow_publish;
|
||||
}
|
||||
|
||||
public function setAllowPublish($allow_publish)
|
||||
{
|
||||
global $DB;
|
||||
$this->allow_publish = $allow_publish;
|
||||
$DB->prepare("UPDATE `teams` SET `allow_publish` = ? WHERE `id` = ?;")->execute([$allow_publish ? 1 : 0, $this->id]);
|
||||
}
|
||||
|
||||
public function getValidationStatus()
|
||||
{
|
||||
return $this->validation_status;
|
||||
|
@ -22,6 +22,7 @@ class NewTeam {
|
||||
public $name;
|
||||
public $trigram;
|
||||
public $problem;
|
||||
public $allow_publish;
|
||||
public $access_code;
|
||||
|
||||
public function __construct($data)
|
||||
@ -30,6 +31,8 @@ class NewTeam {
|
||||
$this->$key = htmlspecialchars($value);
|
||||
|
||||
$this->trigram = strtoupper($this->trigram);
|
||||
|
||||
$this->allow_publish = $this->allow_publish == "on";
|
||||
}
|
||||
|
||||
public function makeVerifications() {
|
||||
@ -50,10 +53,10 @@ class NewTeam {
|
||||
|
||||
$this->access_code = genRandomPhrase(6);
|
||||
|
||||
$req = $DB->prepare("INSERT INTO `teams` (`name`, `trigram`, `problem`, `encadrant`, `participant_1`, `validation_status`, `access_code`, `year`)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?);");
|
||||
$req = $DB->prepare("INSERT INTO `teams` (`name`, `trigram`, `problem`, `encadrant`, `participant_1`, `allow_publish`, `validation_status`, `access_code`, `year`)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);");
|
||||
$req->execute([$this->name, $this->trigram, $this->problem, $_SESSION["role"] == Role::ENCADRANT ? $_SESSION["user_id"] : NULL,
|
||||
$_SESSION["role"] == Role::PARTICIPANT ? $_SESSION["user_id"] : NULL, ValidationStatus::getName(ValidationStatus::NOT_READY), $this->access_code, $YEAR]);
|
||||
$_SESSION["role"] == Role::PARTICIPANT ? $_SESSION["user_id"] : NULL, $this->allow_publish, ValidationStatus::getName(ValidationStatus::NOT_READY), $this->access_code, $YEAR]);
|
||||
|
||||
$_SESSION["team"] = Team::fromTrigram($this->trigram);
|
||||
$_SESSION["user"]->setTeamId($_SESSION["team"]->getId());
|
||||
|
@ -58,6 +58,12 @@ if (isset($_SESSION["user_id"]) && isset($_SESSION["team"]) && $_SESSION["team"]
|
||||
else
|
||||
require_once "server_files/403.php";
|
||||
|
||||
if (isset($_GET["publish_videos"])) {
|
||||
$team->setAllowPublish(!$team->allowPublish());
|
||||
header("Location: /mon-equipe");
|
||||
exit();
|
||||
}
|
||||
|
||||
class SendDocument
|
||||
{
|
||||
private $file;
|
||||
@ -115,13 +121,15 @@ class MyTeam
|
||||
|
||||
public function makeVerifications()
|
||||
{
|
||||
global $CONFIG;
|
||||
|
||||
ensure($this->name != "" && $this->name != null, "Veuillez spécifier un nom d'équipe.");
|
||||
ensure($this->name == $this->team->getName() || !teamExists($this->name), "Une équipe existe déjà avec ce nom.");
|
||||
ensure(preg_match("#^[\p{L} ]+$#ui", $this->name), "Le nom de l'équipe ne doit pas comporter de caractères spéciaux.");
|
||||
ensure(preg_match("#^[A-Z]{3}$#", $this->trigram), "Le trigramme n'est pas valide.");
|
||||
ensure($this->trigram == $this->team->getTrigram() || !trigramExists($this->trigram), "Une équipe a déjà choisi ce trigramme.");
|
||||
ensure(preg_match("#^[1-4]$#", $this->problem), "Le problème indiqué n'existe pas.");
|
||||
// ensure(date("y-m-d H:i:s") <= $this->tournament->getInscriptionDate(), "Les inscriptions sont terminées.");
|
||||
ensure(date("Y-m-d H:i:s") <= $CONFIG->getInscriptionDate(), "Les inscriptions sont terminées.");
|
||||
ensure($this->team->getValidationStatus() == ValidationStatus::NOT_READY, "Votre équipe est déjà validée ou en cours de validation.");
|
||||
}
|
||||
|
||||
|
@ -5,14 +5,16 @@
|
||||
<title>Vidéo acceptée – Correspondances des Jeunes Mathématicien·ne·s {YEAR}</title>
|
||||
</head>
|
||||
<body>
|
||||
Bonjour {FIRST_NAME} {SURNAME},<br/>
|
||||
<br/>
|
||||
Bonjour {FIRST_NAME} {SURNAME},<br />
|
||||
<br />
|
||||
Félicitations, votre vidéo de réponse pour le problème {PROBLEM} a été validée ! Pour rappel, vous aviez soumis ce lien : <a href="{VIDEO_LINK}">{VIDEO_LINK}</a>.<br />
|
||||
Vous avez à présent terminé l'aventure des Correspondances. Bravo à vous ! Nous vous recontacterons dans les prochains jours pour vous tenir au courant des résultats.<br />
|
||||
Si toutefois vous le souhaitez, vous pouvez à nouveau soumettre une vidéo avant la fin de la phase. Cette nouvelle vidéo ne remplacera l'actuelle qu'au moment de la validation de celle-ci.<br />
|
||||
<br/>
|
||||
Cordialement,<br/>
|
||||
<br/>
|
||||
<br />
|
||||
N'oubliez pas de contrôler que les paramètres de diffusion de vidéo sont cohérents avec ce que vous souhaitez : <a href="{URL_BASE}/mon-equipe">{URL_BASE}/mon-equipe</a><br />
|
||||
<br />
|
||||
Cordialement,<br />
|
||||
<br />
|
||||
Le comité d'organisation des Correspondances des Jeunes Mathématicien·ne·s
|
||||
</body>
|
||||
</html>
|
@ -5,14 +5,16 @@
|
||||
<title>Vidéo acceptée – Correspondances des Jeunes Mathématicien·ne·s {YEAR}</title>
|
||||
</head>
|
||||
<body>
|
||||
Bonjour {FIRST_NAME} {SURNAME},<br/>
|
||||
Bonjour {FIRST_NAME} {SURNAME},<br />
|
||||
<br/>
|
||||
Félicitations, votre vidéo pour le problème {PROBLEM} a été validée ! Pour rappel, vous aviez soumis ce lien : <a href="{VIDEO_LINK}">{VIDEO_LINK}</a>.<br />
|
||||
Votre travail est à présent terminé, et vous pouvez attendre les prochaines phases. Bravo à vous !<br />
|
||||
Si toutefois vous le souhaitez, vous pouvez à nouveau soumettre une vidéo avant la fin de la phase. Cette nouvelle vidéo ne remplacera l'actuelle qu'au moment de la validation de celle-ci.<br />
|
||||
<br/>
|
||||
Cordialement,<br/>
|
||||
<br/>
|
||||
<br />
|
||||
N'oubliez pas de contrôler que les paramètres de diffusion de vidéo sont cohérents avec ce que vous souhaitez : <a href="{URL_BASE}/mon-equipe">{URL_BASE}/mon-equipe</a><br />
|
||||
<br />
|
||||
Cordialement,<br />
|
||||
<br />
|
||||
Le comité d'organisation des Correspondances des Jeunes Mathématicien·ne·s
|
||||
</body>
|
||||
</html>
|
@ -42,6 +42,12 @@ if (isset($new_team) && !$has_error) { ?>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center;" colspan="2">
|
||||
<input type="checkbox" id="allow_publish" name="allow_publish" />
|
||||
<label for="allow_publish">J'accepte qu'Animath diffuse mes vidéos à la fin du tournoi (<em>facultatif</em>)</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<input style="width: 100%;" type="submit" value="Ajouter une équipe" />
|
||||
|
@ -19,6 +19,7 @@ for ($i = 1; $i <= 5; ++$i) {
|
||||
echo "Participant $i : <a href=\"$URL_BASE/informations/$id/" . $participant->getFirstName() . " " . $participant->getSurname() . "\">" . $participant->getFirstName() . " " . $participant->getSurname() . "</a><br />";
|
||||
}
|
||||
?>
|
||||
Autorise Animath à diffuser les vidéos : <?= $team->allowPublish() ? "oui" : "non" ?>
|
||||
|
||||
<?php
|
||||
if ($_SESSION["role"] == Role::ADMIN) { ?>
|
||||
|
@ -9,7 +9,7 @@ if (!$has_error && isset($send_document))
|
||||
|
||||
Nom de l'équipe : <?= $team->getName() ?><br/>
|
||||
Trigramme : <?= $team->getTrigram() ?><br/>
|
||||
Problème : <a href=""><?= $team->getProblem() ?></a><br/>
|
||||
Problème : <a href="/probleme/<?= $team->getProblem() ?>"><?= $team->getProblem() ?></a><br/>
|
||||
<?php
|
||||
if ($team->getEncadrantId() !== null) {
|
||||
$encadrant = User::fromId($team->getEncadrantId());
|
||||
@ -25,7 +25,9 @@ for ($i = 1; $i <= 5; ++$i) {
|
||||
}
|
||||
|
||||
?>
|
||||
Code d'accès : <strong><?= $team->getAccessCode() ?></strong><br/>
|
||||
Code d'accès : <strong><?= $team->getAccessCode() ?></strong><br />
|
||||
<!--suppress HtmlUnknownTarget -->
|
||||
Autorise Animath à diffuser mes vidéos : <?= $team->allowPublish() ? "oui" : "non" ?> (<a href="/mon-equipe/diffusion-videos">changer</a>)<br />
|
||||
|
||||
<?php if (date("Y-m-d H:i:s") >= $CONFIG->getInscriptionDate() && $team->getValidationStatus() == ValidationStatus::NOT_READY) { ?>
|
||||
<strong>La date limite d'inscription est dépassée, vous ne pouvez plus demander la validation de votre équipe.</strong>
|
||||
@ -77,7 +79,7 @@ for ($i = 1; $i <= 5; ++$i) {
|
||||
|
||||
<?php } else { ?>
|
||||
|
||||
<?php if ($_SESSION["team_validation_status"] == ValidationStatus::NOT_READY) { ?>
|
||||
<?php if ($team->getValidationStatus() == ValidationStatus::NOT_READY && date("Y-m-d H:i:s") <= $CONFIG->getInscriptionDate()) { ?>
|
||||
<!--suppress HtmlUnknownTarget -->
|
||||
<a href="/mon-equipe/modifier">Modifier mon équipe</a>
|
||||
<?php } ?>
|
||||
@ -92,16 +94,6 @@ for ($i = 1; $i <= 5; ++$i) {
|
||||
<input type="hidden" name="type" value="photo_consent"/>
|
||||
<table style="width: 100%;">
|
||||
<tbody>
|
||||
<?php /* <tr>
|
||||
<td>
|
||||
<label for="type">Type de document :</label>
|
||||
</td>
|
||||
<td>
|
||||
<select style="width: 100%;" id="type" name="type">
|
||||
<option value="photo_consent">Autorisation de droit à l'image</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr> */ ?>
|
||||
<tr>
|
||||
<td>
|
||||
<label for="file">Fichier :</label>
|
||||
|
@ -89,6 +89,7 @@ CREATE TABLE IF NOT EXISTS `teams` (
|
||||
`participant_4` int(8) DEFAULT NULL,
|
||||
`participant_5` int(8) DEFAULT NULL,
|
||||
`inscription_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`allow_publish` tinyint(1) DEFAULT 0,
|
||||
`validation_status` varchar(64) NOT NULL,
|
||||
`video_team1` int(11) DEFAULT NULL,
|
||||
`video_team2` int(11) DEFAULT NULL,
|
||||
|
Loading…
Reference in New Issue
Block a user