Merge commit 'origin/master' into account
[platal.git] / include / reminder / promotion_ml.inc.php
index ca36dca..dca2fc1 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2009 Polytechnique.org                              *
+ *  Copyright (C) 2003-2010 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
@@ -26,11 +26,11 @@ class ReminderPromotionMl extends Reminder
         switch ($action) {
           case 'yes':
             $res = XDB::query('SELECT  id
-                               FROM  groupex.asso
-                              WHERE  diminutif = {?}',
+                                 FROM  groups
+                                WHERE  diminutif = {?}',
                             S::v('promo'));
             $asso_id = $res->fetchOneCell();
-            XDB::execute('REPLACE INTO  groupex.membres (uid, asso_id)
+            XDB::execute('REPLACE INTO  group_members (uid, asso_id)
                                 VALUES  ({?}, {?})',
                          S::v('uid'), $asso_id);
             $mmlist = new MMList(S::v('uid'), S::v('password'));
@@ -49,13 +49,17 @@ class ReminderPromotionMl extends Reminder
         }
     }
 
-    protected function GetDisplayText()
+    public function text()
     {
         return "La liste de diffusion de ta promotion permet de recevoir les
             informations plus spécifiques de ta promotion pour pouvoir
             participer plus facilement aux événements qu'elle organise. Tu
             seras aussi inscrit dans le groupe de la promotion " .
-            S::user()->promo() . '.';
+            $this->user->promo() . '.';
+    }
+    public function title()
+    {
+        return "Inscription à la liste de diffusion de ta promotion";
     }
 
     public static function IsCandidate(User &$user, $candidate)
@@ -63,13 +67,17 @@ class ReminderPromotionMl extends Reminder
         // We only test if the user is in her promotion group for it is too
         // expensive to check if she is in the corresponding ML as well.
         $res = XDB::query('SELECT  COUNT(*)
-                             FROM  groupex.membres
+                             FROM  group_members
                             WHERE  uid = {?} AND asso_id = (SELECT  id
-                                                              FROM  groupex.asso
+                                                              FROM  groups
                                                              WHERE  diminutif = {?})',
                           $user->id(), S::v('promo'));
 
-        return ($res->fetchOneCell() > 0);
+        $mlCount = $res->fetchOneCell();
+        if ($mlCount) {
+            Reminder::MarkCandidateAsAccepted($user->id(), $candidate);
+        }
+        return ($mlCount == 0);
     }
 }