X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=include%2Fvalidations%2Fmedals.inc.php;h=09c252015278d6c496f3b08b570e1f8167a353d7;hb=7088a2a53904dc8bf3b84dcb374575bb36f22f8e;hp=441a7b9f720f9ae2e5dcfe0130c5aba67429a3a7;hpb=5daf68f6846682e439570b5245a6109ada8d9304;p=platal.git diff --git a/include/validations/medals.inc.php b/include/validations/medals.inc.php index 441a7b9..09c2520 100644 --- a/include/validations/medals.inc.php +++ b/include/validations/medals.inc.php @@ -1,6 +1,6 @@ mid = $_idmedal; $this->gid = $_subidmedal; + $this->level = $_level; + $this->has_levels = $has_levels; + if (is_null($this->gid)) { + $this->gid = 0; + } + if (!$this->has_levels) { + $this->level = ''; + } } // }}} @@ -51,7 +61,7 @@ class MedalReq extends Validate protected function _mail_subj() { - return "[Polytechnique.org/Décoration] Demande de décoration : ".$this->medal_name(); + return '[Polytechnique.org/Décoration] Demande de décoration : ' . $this->medal_name(); } // }}} @@ -60,9 +70,9 @@ class MedalReq extends Validate protected function _mail_body($isok) { if ($isok) { - return " La décoration ".$this->medal_name()." vient d'être ajoutée à ta fiche."; + return ' La décoration ' . $this->medal_name() . ' vient d\'être ajoutée à ta fiche.'; } else { - return " La demande que tu avais faite pour la décoration ".$this->medal_name()." a été refusée."; + return ' La demande que tu avais faite pour la décoration ' . $this->medal_name() . ' a été refusée.'; } } @@ -71,13 +81,17 @@ class MedalReq extends Validate public function medal_name() { - //var_dump($this); - $r = XDB::query(" - SELECT IF (g.text IS NOT NULL, CONCAT(m.text,' - ', g.text), m.text) - FROM profile_medals AS m - LEFT JOIN profile_medals_grades AS g ON(g.mid = m.id AND g.gid = {?}) - WHERE m.id = {?}", $this->gid, $this->mid); - return $r->fetchOneCell(); + $name = XDB::fetchOneCell('SELECT text + FROM profile_medal_enum + WHERE id = {?}', $this->mid); + $grade = XDB::fetchOneCell('SELECT text + FROM profile_medal_grade_enum + WHERE mid = {?} AND gid = {?}', + $this->mid, $this->gid); + if (is_null($grade)) { + return $name; + } + return $name . ' (' . $grade . ')'; } // }}} @@ -86,7 +100,7 @@ class MedalReq extends Validate public function submit() { $res = XDB::query("SELECT FIND_IN_SET('validation', flags) - FROM profile_medals + FROM profile_medal_enum WHERE id = {?}", $this->mid); if ($res->fetchOneCell()) { parent::submit(); @@ -100,21 +114,21 @@ class MedalReq extends Validate public function commit () { - require_once 'notifs.inc.php'; - register_watch_op($this->user->id(), WATCH_FICHE, 'medals'); - return XDB::execute('REPLACE INTO profile_medals_sub - VALUES ({?}, {?}, {?})', - $this->user->id(), $this->mid, $this->gid); + return XDB::execute('INSERT INTO profile_medals (pid, mid, gid, level) + VALUES ({?}, {?}, {?}, {?}) + ON DUPLICATE KEY UPDATE gid = VALUES(gid)', + $this->profile->id(), $this->mid, + is_null($this->gid) ? 0 : $this->gid, $this->level); } // }}} // {{{ function get_request($medal) - static public function get_request($uid, $type) + static public function get_request($pid, $type, $grade, $level) { - $reqs = Validate::get_typed_requests($uid, 'medal'); + $reqs = parent::get_typed_requests($pid, 'medal'); foreach ($reqs as &$req) { - if ($req->mid == $type) { + if ($req->mid == $type && $req->gid == $grade && $req->level == $level) { return $req; } }