Also displays entreprise name on profile, minifiche... when awaiting validation.
[platal.git] / include / validations / medals.inc.php
index 599ba21..df04da6 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2008 Polytechnique.org                              *
+ *  Copyright (C) 2003-2010 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
@@ -21,7 +21,7 @@
 
 // {{{ class MedalReq
 
-class MedalReq extends Validate
+class MedalReq extends ProfileValidate
 {
     // {{{ properties
 
@@ -31,11 +31,14 @@ class MedalReq extends Validate
     // }}}
     // {{{ constructor
 
-    public function __construct($_uid, $_idmedal, $_subidmedal, $_stamp=0)
+    public function __construct(User &$_user, Profile &$_profile, $_idmedal, $_subidmedal, $_stamp = 0)
     {
-        parent::__construct($_uid, false, 'medal', $_stamp);
-        $this->mid  = $_idmedal;
+        parent::__construct($_user, $_profile, false, 'medal', $_stamp);
+        $this->mid = $_idmedal;
         $this->gid = $_subidmedal;
+        if (is_null($this->gid)) {
+            $this->gid = 0;
+        }
     }
 
     // }}}
@@ -51,7 +54,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 +63,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 +74,10 @@ 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();
+        $res = XDB::query('SELECT  m.text
+                             FROM  profile_medal_enum AS m
+                            WHERE  m.id = {?}', $this->mid);
+        return $res->fetchOneCell();
     }
 
     // }}}
@@ -86,7 +86,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,19 +100,18 @@ class MedalReq extends Validate
 
     public function commit ()
     {
-        require_once 'notifs.inc.php';
-        register_watch_op($this->uid, WATCH_FICHE, '', 'medals');
-        return XDB::execute('REPLACE INTO  profile_medals_sub
+        return XDB::execute('REPLACE INTO  profile_medals
                                    VALUES  ({?}, {?}, {?})',
-                            $this->uid, $this->mid, $this->gid);
+                            $this->profile->id(), $this->mid,
+                            is_null($this->gid) ? 0 : $this->gid);
     }
 
     // }}}
     // {{{ function get_request($medal)
 
-    static public function get_request($uid, $type)
+    static public function get_request($pid, $type)
     {
-        $reqs = Validate::get_typed_requests($uid, 'medal');
+        $reqs = parent::get_typed_requests($pid, 'medal');
         foreach ($reqs as &$req) {
             if ($req->mid == $type) {
                 return $req;