Merge branch 'platal-0.9.15'
[platal.git] / include / validations / medals.inc.php
index 14f0b87..98d14d2 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2006 Polytechnique.org                              *
+ *  Copyright (C) 2003-2008 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
@@ -25,15 +25,15 @@ class MedalReq extends Validate
 {
     // {{{ properties
 
-    var $mid;
-    var $gid;
+    public $mid;
+    public $gid;
 
     // }}}
     // {{{ constructor
 
-    function MedalReq ($_uid, $_idmedal, $_subidmedal, $_stamp=0)
+    public function __construct($_uid, $_idmedal, $_subidmedal, $_stamp=0)
     {
-        $this->Validate($_uid, false, 'medal', $_stamp);
+        parent::__construct($_uid, false, 'medal', $_stamp);
         $this->mid  = $_idmedal;
         $this->gid = $_subidmedal;
     }
@@ -41,51 +41,84 @@ class MedalReq extends Validate
     // }}}
     // {{{ function formu()
 
-    function formu()
-    { 
-               return 'include/form.valid.medals.tpl';
-       }
+    public function formu()
+    {
+        return 'include/form.valid.medals.tpl';
+    }
 
     // }}}
     // {{{ function _mail_subj
 
-    function _mail_subj()
+    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();
     }
 
     // }}}
     // {{{ function _mail_body
 
-    function _mail_body($isok)
+    protected function _mail_body($isok)
     {
         if ($isok) {
-            return "  La décoration ".$this->medal_name()." que tu avais demandée vient d'être acceptée.";
+            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.";
         }
     }
 
     // }}}
     // {{{ function medal_name
 
-    function medal_name()
+    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(); 
+        //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();
+    }
+
+    // }}}
+    // {{{ function submit()
+
+    public function submit()
+    {
+        $res = XDB::query("SELECT  FIND_IN_SET('validation', flags)
+                             FROM  profile_medals
+                            WHERE  id = {?}", $this->mid);
+        if ($res->fetchOneCell()) {
+            parent::submit();
+        } else {
+            $this->commit();
+        }
     }
 
     // }}}
     // {{{ function commit()
 
-    function commit ()
+    public function commit ()
     {
-       return XDB::execute('REPLACE INTO profile_medals_sub VALUES({?}, {?}, {?})', $this->uid, $this->mid, $this->gid);
+        require_once 'notifs.inc.php';
+        register_watch_op($this->uid, WATCH_FICHE, 'medals');
+        return XDB::execute('REPLACE INTO  profile_medals_sub
+                                   VALUES  ({?}, {?}, {?})',
+                            $this->uid, $this->mid, $this->gid);
+    }
+
+    // }}}
+    // {{{ function get_request($medal)
+
+    static public function get_request($uid, $type)
+    {
+        $reqs = Validate::get_typed_requests($uid, 'medal');
+        foreach ($reqs as &$req) {
+            if ($req->mid == $type) {
+                return $req;
+            }
+        }
+        return null;
     }
 
     // }}}
@@ -93,5 +126,5 @@ class MedalReq extends Validate
 
 // }}}
 
-// vim:set et sw=4 sts=4 sws=4 foldmethod=marker:
+// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
 ?>