diff --git a/Dockerfile b/Dockerfile index c782dd5..94b4217 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,3 +35,5 @@ RUN echo "sendmail_path=msmtp -t" >> /usr/local/etc/php/conf.d/php-sendmail.ini ENV CORRES2MATH_LOCAL_PATH /var/www/html ENV CORRES2MATH_MAIL_DOMAIN correspondances-maths.fr ENV CORRES2MATH_URL_BASE https://inscription.correspondances-maths.fr + +RUN chmod 0777 /var/inscription-corres2math diff --git a/server_files/classes/Document.php b/server_files/classes/Document.php index 5876e7d..7241076 100644 --- a/server_files/classes/Document.php +++ b/server_files/classes/Document.php @@ -80,13 +80,13 @@ class Document - public function getAllDocuments($problem) + public static function getAllDocuments($problem, $team_id = -1) { global $DB; $req = $DB->query("SELECT * FROM `documents` AS `t1` " . "INNER JOIN (SELECT `user`, `type`, `problem`, MAX(`uploaded_at`) AS `last_upload`, COUNT(`team`) AS `version` FROM `documents` GROUP BY `problem`, `type`, `user`) `t2` " . "ON `t1`.`user` = `t2`.`user` AND `t1`.`type` = `t2`.`type` AND `t1`.`problem` = `t2`.`problem` " - . "WHERE `t1`.`uploaded_at` = `t2`.`last_upload` AND `t1`.`problem` = $problem ORDER BY `t1`.`type`;"); + . "WHERE `t1`.`uploaded_at` = `t2`.`last_upload` AND `t1`.`problem` = $problem " . ($team_id >= 0 ? "AND `team` = $team_id" : "") . " ORDER BY `t1`.`type`;"); $docs = []; diff --git a/server_files/classes/User.php b/server_files/classes/User.php index 61e0309..bcb6794 100644 --- a/server_files/classes/User.php +++ b/server_files/classes/User.php @@ -134,7 +134,7 @@ class User { global $DB; $this->school = $school; - $DB->prepare("UPDATE `users` SET `school` = ? WHERE `id` = ?;")->execute([SchoolClass::getName($school), $this->getId()]); + $DB->prepare("UPDATE `users` SET `school` = ? WHERE `id` = ?;")->execute([$school, $this->getId()]); } public function getClass() diff --git a/server_files/controllers/equipe.php b/server_files/controllers/equipe.php index 080fe10..0eb8034 100644 --- a/server_files/controllers/equipe.php +++ b/server_files/controllers/equipe.php @@ -1,7 +1,7 @@ getProblem(), $team->getId()); + $file_name = getZipFile($team->getProblem(), $team->getId()); header("Content-Type: application/zip"); header("Content-Disposition: attachment; filename=\"Documents de l'équipe " . $team->getTrigram() . ".zip\""); @@ -26,6 +26,6 @@ if (isset($_POST["download_zip"])) { exit(); } -$documents = Document::getAllDocuments($team->getId()); +$documents = Document::getAllDocuments($team->getProblem(), $team->getId()); require_once "server_files/views/equipe.php"; diff --git a/server_files/model.php b/server_files/model.php index 4cc47dd..e6cb7bd 100644 --- a/server_files/model.php +++ b/server_files/model.php @@ -60,6 +60,7 @@ function quitTeam() $DB->exec("UPDATE `teams` SET `participant_$i` = `participant_" . strval($i + 1) . "`, `participant_" . strval($i + 1) . "` = NULL WHERE `participant_$i` IS NULL;"); } + $DB->exec("DELETE FROM `teams` WHERE `encadrant` IS NULL OR `participant_1` IS NULL;"); $req = $DB->query("SELECT `file_id` FROM `documents` WHERE `user` = $user_id;"); while (($data = $req->fetch()) !== false) unlink("$URL_BASE/files/" . $data["file_id"]); @@ -151,13 +152,10 @@ function getZipFile($problem, $team_id = -1) die("Impossible de créer le fichier zip."); } - // TODO Replace DB query - $resp = $DB->query("SELECT * FROM `documents` WHERE `problem` = $problem" . ($team_id >= 0 ? " AND `team` = $team_id" : "") . ";"); + $data = Document::getAllDocuments($problem, $team_id); /** @var Document $file */ - //foreach ($data as $file) { - while (($data = $resp->fetch()) != false) { - $file = Document::fromData($data); + foreach ($data as $file) { $file_id = $file->getFileId(); $user = User::fromId($file->getUserId()); $name = "Autorisation de droit à l'image de " . $user->getFirstName() . " " . $user->getSurname() . ".pdf"; diff --git a/server_files/services/mail_templates/add_team.html b/server_files/services/mail_templates/add_team.html index 3d472a1..5bd8944 100644 --- a/server_files/services/mail_templates/add_team.html +++ b/server_files/services/mail_templates/add_team.html @@ -9,7 +9,7 @@ Bonjour {FIRST_NAME} {SURNAME},

Vous venez de créer l'équipe « {TEAM_NAME} » ({TRIGRAM}) pour les Correspondances des Jeunes Mathématicien·ne·s pour le problème {PROBLEM} et nous vous en remercions.
Afin de permettre aux autres membres de votre équipe de vous rejoindre, veuillez leur transmettre le code d'accès : -{ACCESS_CODE}
+{ACCESS_CODE}

Le comité d'organisation des Correspondances des Jeunes Mathématicien·ne·s diff --git a/server_files/views/mon_equipe.php b/server_files/views/mon_equipe.php index 5735922..9707dd3 100644 --- a/server_files/views/mon_equipe.php +++ b/server_files/views/mon_equipe.php @@ -80,16 +80,17 @@ for ($i = 1; $i <= 5; ++$i) { Modifier mon équipe
-

Mes autorisations

+

Autorisation de droit à l'image

getValidationStatus() == ValidationStatus::NOT_READY) { ?>
+ - + @@ -98,7 +99,7 @@ for ($i = 1; $i <= 5; ++$i) { - + */ ?>