mirror of
https://gitlab.com/animath/si/plateforme.git
synced 2025-08-11 06:48:57 +02:00
.idea
assets
server_files
classes
Document.php
Payment.php
PaymentMethod.php
Role.php
SchoolClass.php
Team.php
Tournament.php
User.php
ValidationStatus.php
controllers
services
views
403.php
404.php
config.php
model.php
utils.php
setup
.htaccess
Dockerfile
dispatcher.php
index.html
332 lines
6.1 KiB
PHP
332 lines
6.1 KiB
PHP
<?php
|
|
|
|
class Document
|
|
{
|
|
private $file_id;
|
|
private $user_id;
|
|
private $team_id;
|
|
private $tournament_id;
|
|
private $type;
|
|
private $uploaded_at;
|
|
private $version;
|
|
|
|
private function __construct() {}
|
|
|
|
public static function fromId($id)
|
|
{
|
|
global $DB;
|
|
$req = $DB->prepare("SELECT * FROM `documents` WHERE `file_id` = ?;");
|
|
$req->execute([htmlspecialchars($id)]);
|
|
$data = $req->fetch();
|
|
|
|
if ($data === false)
|
|
return null;
|
|
|
|
return self::fromData($data);
|
|
}
|
|
|
|
public static function fromData($data)
|
|
{
|
|
$doc = new Document();
|
|
$doc->fill($data);
|
|
return $doc;
|
|
}
|
|
|
|
private function fill($data)
|
|
{
|
|
$this->file_id = $data["file_id"];
|
|
$this->user_id = $data["user"];
|
|
$this->team_id = $data["team"];
|
|
$this->tournament_id = $data["tournament"];
|
|
$this->type = DocumentType::fromName($data["type"]);
|
|
$this->uploaded_at = $data["uploaded_at"];
|
|
$this->version = isset($data["version"]) ? $data["version"] : 1;
|
|
}
|
|
|
|
public function getFileId()
|
|
{
|
|
return $this->file_id;
|
|
}
|
|
|
|
public function getUserId()
|
|
{
|
|
return $this->user_id;
|
|
}
|
|
|
|
public function getTeamId()
|
|
{
|
|
return $this->team_id;
|
|
}
|
|
|
|
public function getTournamentId()
|
|
{
|
|
return $this->tournament_id;
|
|
}
|
|
|
|
public function getType()
|
|
{
|
|
return $this->type;
|
|
}
|
|
|
|
public function getUploadedAt()
|
|
{
|
|
return $this->uploaded_at;
|
|
}
|
|
|
|
public function getVersion()
|
|
{
|
|
return $this->version;
|
|
}
|
|
}
|
|
|
|
class Solution
|
|
{
|
|
private $file_id;
|
|
private $team_id;
|
|
private $tournament_id;
|
|
private $problem;
|
|
private $uploaded_at;
|
|
private $version;
|
|
|
|
private function __construct() {}
|
|
|
|
public static function fromId($id)
|
|
{
|
|
global $DB;
|
|
$req = $DB->prepare("SELECT * FROM `solutions` WHERE `file_id` = ?;");
|
|
$req->execute([htmlspecialchars($id)]);
|
|
$data = $req->fetch();
|
|
|
|
if ($data === false)
|
|
return null;
|
|
|
|
return self::fromData($data);
|
|
}
|
|
|
|
public static function fromData($data)
|
|
{
|
|
$sol = new Solution();
|
|
$sol->fill($data);
|
|
return $sol;
|
|
}
|
|
|
|
private function fill($data)
|
|
{
|
|
$this->file_id = $data["file_id"];
|
|
$this->team_id = $data["team"];
|
|
$this->tournament_id = $data["tournament"];
|
|
$this->problem = $data["problem"];
|
|
$this->uploaded_at = $data["uploaded_at"];
|
|
$this->version = isset($data["version"]) ? $data["version"] : 1;
|
|
}
|
|
|
|
public function getFileId()
|
|
{
|
|
return $this->file_id;
|
|
}
|
|
|
|
public function getTeamId()
|
|
{
|
|
return $this->team_id;
|
|
}
|
|
|
|
public function getTournamentId()
|
|
{
|
|
return $this->tournament_id;
|
|
}
|
|
|
|
public function getProblem()
|
|
{
|
|
return $this->problem;
|
|
}
|
|
|
|
public function getUploadedAt()
|
|
{
|
|
return $this->uploaded_at;
|
|
}
|
|
|
|
public function getVersion()
|
|
{
|
|
return $this->version;
|
|
}
|
|
}
|
|
|
|
class Synthesis
|
|
{
|
|
private $file_id;
|
|
private $team_id;
|
|
private $tournament_id;
|
|
private $dest;
|
|
private $uploaded_at;
|
|
private $version;
|
|
|
|
private function __construct() {}
|
|
|
|
public static function fromId($id)
|
|
{
|
|
global $DB;
|
|
$req = $DB->prepare("SELECT * FROM `syntheses` WHERE `file_id` = ?;");
|
|
$req->execute([htmlspecialchars($id)]);
|
|
$data = $req->fetch();
|
|
|
|
if ($data === false)
|
|
return null;
|
|
|
|
return self::fromData($data);
|
|
}
|
|
|
|
public static function fromData($data)
|
|
{
|
|
$synthese = new Synthesis();
|
|
$synthese->fill($data);
|
|
return $synthese;
|
|
}
|
|
|
|
private function fill($data)
|
|
{
|
|
$this->file_id = $data["file_id"];
|
|
$this->team_id = $data["team"];
|
|
$this->tournament_id = $data["tournament"];
|
|
$this->dest = DestType::fromName($data["dest"]);
|
|
$this->uploaded_at = $data["uploaded_at"];
|
|
$this->version = isset($data["version"]) ? $data["version"] : 1;
|
|
}
|
|
|
|
public function getFileId()
|
|
{
|
|
return $this->file_id;
|
|
}
|
|
|
|
public function getTeamId()
|
|
{
|
|
return $this->team_id;
|
|
}
|
|
|
|
public function getTournamentId()
|
|
{
|
|
return $this->tournament_id;
|
|
}
|
|
|
|
public function getDest()
|
|
{
|
|
return $this->dest;
|
|
}
|
|
|
|
public function getUploadedAt()
|
|
{
|
|
return $this->uploaded_at;
|
|
}
|
|
|
|
public function getVersion()
|
|
{
|
|
return $this->version;
|
|
}
|
|
}
|
|
|
|
class DestType
|
|
{
|
|
const DEFENSEUR = 0;
|
|
const OPPOSANT = 1;
|
|
const RAPPORTEUR = 2;
|
|
|
|
public static function getTranslatedName($status) {
|
|
switch ($status) {
|
|
case self::OPPOSANT:
|
|
return "Opposant";
|
|
case self::RAPPORTEUR:
|
|
return "Rapporteur";
|
|
default:
|
|
return "Défenseur";
|
|
}
|
|
}
|
|
|
|
public static function getName($status) {
|
|
switch ($status) {
|
|
case self::OPPOSANT:
|
|
return "OPPOSANT";
|
|
case self::RAPPORTEUR:
|
|
return "RAPPORTEUR";
|
|
default:
|
|
return "DEFENSEUR";
|
|
}
|
|
}
|
|
|
|
public static function fromName($name) {
|
|
switch ($name) {
|
|
case "OPPOSANT":
|
|
return self::OPPOSANT;
|
|
case "RAPPORTEUR":
|
|
return self::RAPPORTEUR;
|
|
default:
|
|
return self::DEFENSEUR;
|
|
}
|
|
}
|
|
}
|
|
|
|
class DocumentType
|
|
{
|
|
const PARENTAL_CONSENT = 0;
|
|
const PHOTO_CONSENT = 1;
|
|
const SANITARY_PLUG = 2;
|
|
const SOLUTION = 3;
|
|
const SYNTHESIS = 4;
|
|
const SCHOLARSHIP = 5;
|
|
const MOTIVATION_LETTER = 6;
|
|
|
|
public static function getTranslatedName($type) {
|
|
switch ($type) {
|
|
case self::PARENTAL_CONSENT:
|
|
return "Autorisation parentale";
|
|
case self::PHOTO_CONSENT:
|
|
return "Autorisation de droit à l'image";
|
|
case self::SANITARY_PLUG:
|
|
return "Fiche sanitaire";
|
|
case self::SCHOLARSHIP:
|
|
return "Notification de bourse";
|
|
case self::MOTIVATION_LETTER:
|
|
return "Lettre de motivation";
|
|
case self::SOLUTION:
|
|
return "Solution";
|
|
default:
|
|
return "Note de synthèse";
|
|
}
|
|
}
|
|
|
|
public static function getName($type) {
|
|
switch ($type) {
|
|
case self::PARENTAL_CONSENT:
|
|
return "PARENTAL_CONSENT";
|
|
case self::PHOTO_CONSENT:
|
|
return "PHOTO_CONSENT";
|
|
case self::SANITARY_PLUG:
|
|
return "SANITARY_PLUG";
|
|
case self::SCHOLARSHIP:
|
|
return "SCHOLARSHIP";
|
|
case self::MOTIVATION_LETTER:
|
|
return "MOTIVATION_LETTER";
|
|
case self::SOLUTION:
|
|
return "SOLUTION";
|
|
default:
|
|
return "SYNTHESIS";
|
|
}
|
|
}
|
|
|
|
public static function fromName($name) {
|
|
switch ($name) {
|
|
case "PARENTAL_CONSENT":
|
|
return self::PARENTAL_CONSENT;
|
|
case "PHOTO_CONSENT":
|
|
return self::PHOTO_CONSENT;
|
|
case "SANITARY_PLUG":
|
|
return self::SANITARY_PLUG;
|
|
case "SCHOLARSHIP":
|
|
return self::SCHOLARSHIP;
|
|
case "MOTIVATION_LETTER":
|
|
return self::MOTIVATION_LETTER;
|
|
case "SOLUTION":
|
|
return self::SOLUTION;
|
|
default:
|
|
return self::SYNTHESIS;
|
|
}
|
|
}
|
|
} |