Happy New Year!
[platal.git] / include / validations / orange.inc.php
index 802d3d7..61883ed 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2009 Polytechnique.org                              *
+ *  Copyright (C) 2003-2011 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
 
 // {{{ class OrangeReq
 
-class OrangeReq extends Validate
+class OrangeReq extends ProfileValidate
 {
     // {{{ properties
 
     public $unique = true;
 
-    public $promo_sortie;
+    public $oldGradYear;
+    public $newGradYear;
+    public $entryYear;
 
-    public $rules = "A priori accepter (la validation sert à repousser les
-    petits malins). Refuse si tu connais la personne et que tu es sure
+    public $rules = "À priori accepter (la validation sert à repousser les
+    petits malins). Refuse si tu connais la personne et que tu es sûr
     qu'elle n'est pas orange.";
 
     // }}}
     // {{{ constructor
 
-    public function __construct(User &$_user, $_sortie)
+    public function __construct(User &$_user, Profile &$_profile, $_newGradYear)
     {
-        parent::__construct($_user, true, 'orange');
-        $this->promo_sortie  = $_sortie;
-        $res = XDB::query("SELECT promo FROM auth_user_md5 WHERE user_id = {?}", $_user->id());
+        parent::__construct($_user, $_profile, true, 'orange');
+        $this->newGradYear  = $_newGradYear;
+        $res = XDB::query("SELECT  entry_year, grad_year
+                             FROM  profile_education
+                            WHERE  pid = {?} AND FIND_IN_SET('primary', flags)",
+                          $this->profile->id());
+        $years = $res->fetchOneRow();
+        $this->entryYear   = $years[0];
+        $this->oldGradYear = $years[1];
     }
 
     // }}}
@@ -65,10 +73,11 @@ class OrangeReq extends Validate
     protected function _mail_body($isok)
     {
         if ($isok) {
-            $res = "  La demande de changement de promo de sortie que tu as demandée vient d'être effectuée.";
-            return $res;
+            return "  La demande de changement de promotion que tu as demandée vient d'être effectuée. "
+                   . "Si tu le souhaites, tu peux maintenant modifier l'affichage de ta promotion sur le site sur la page suivante : "
+                   . "https://www.polytechnique.org/profile/edit";
         } else {
-            return "  La demande de changement de promo de sortie tu avais faite a été refusée.";
+            return "  La demande de changement de promotion tu avais faite a été refusée.";
         }
     }
 
@@ -77,7 +86,10 @@ class OrangeReq extends Validate
 
     public function commit()
     {
-        XDB::execute("UPDATE auth_user_md5 set promo_sortie = {?} WHERE user_id = {?}",$this->promo_sortie, $this->user->id());
+        XDB::execute("UPDATE  profile_education
+                         SET  grad_year = {?}
+                       WHERE  pid = {?} AND FIND_IN_SET('primary', flags)",
+                     $this->newGradYear, $this->profile->id());
         return true;
     }