Reminder for merge issues.
authorFlorent Bruneau <florent.bruneau@polytechnique.org>
Tue, 26 Oct 2010 13:17:00 +0000 (15:17 +0200)
committerFlorent Bruneau <florent.bruneau@polytechnique.org>
Tue, 26 Oct 2010 13:17:00 +0000 (15:17 +0200)
Signed-off-by: Florent Bruneau <florent.bruneau@polytechnique.org>
include/reminder/profile_update.inc.php
templates/reminder/profile_update.tpl

index 7dd5f1b..52400e9 100644 (file)
@@ -30,7 +30,7 @@ class ReminderProfileUpdate extends Reminder
 
           case 'profile':
             $this->UpdateOnDismiss();
-            pl_redirect('profile/edit');
+            pl_redirect('profile/edit/' . $this->user->profile()->hrpid);
             break;
 
           case 'photo':
@@ -40,7 +40,19 @@ class ReminderProfileUpdate extends Reminder
 
           case 'geoloc':
             $this->UpdateOnDismiss();
-            pl_redirect('profile/edit/adresses');
+            pl_redirect('profile/edit/' . $this->user->profile()->hrpid . '/adresses');
+            break;
+
+          case 'merge':
+            $this->UpdateOnDismiss();
+            $flags = self::ListMergeIssues($this->user->profile());
+            if ($flags->hasFlag('job')) {
+                pl_redirect('profile/edit/' . $this->user->profile()->hrpid . '/emploi');
+            } else if ($flags->hasFlag('address')) {
+                pl_redirect('profile/edit/' . $this->user->profile()->hrpid . '/adresses');
+            } else {
+                pl_redirect('profile/edit/' . $this->user->profile()->hrpid);
+            }
             break;
         }
     }
@@ -50,6 +62,7 @@ class ReminderProfileUpdate extends Reminder
         parent::Prepare($page);
         $profile = $this->user->profile();
 
+        $page->assign('profile_merge', self::ListMergeIssues($profile));
         $page->assign('profile_incitation', $profile->is_old);
         $page->assign('profile_last_update', $profile->last_change);
         $page->assign('photo_incitation', !$profile->has_photo);
@@ -69,13 +82,28 @@ class ReminderProfileUpdate extends Reminder
         return true;
     }
 
+    private static function ListMergeIssues(Profile $profile)
+    {
+        if (Platal::globals()->merge->state != 'done') {
+            return null;
+        }
+        $flags = XDB::fetchOneCell('SELECT  issues
+                                      FROM  profile_merge_issues
+                                     WHERE  pid = {?}', $profile->id());
+        if (!$flags) {
+            return null;
+        }
+        return new PlFlagSet($flags);
+    }
+
     public static function IsCandidate(User &$user, $candidate)
     {
         $profile = $user->profile();
         if (!$profile) {
             return false;
         }
-        return !$profile->has_photo || $profile->is_old;
+        return !$profile->has_photo || $profile->is_old
+            || !is_null(self::ListMergeIssues($profile));
     }
 }
 
index c148cd7..55bf9db 100644 (file)
 {*                                                                        *}
 {**************************************************************************}
 
-{if $profile_incitation}
+{if $profile_merge}
+  La récente fusion des annuaires de l'AX et de Polytechnique.org a mis à jour des incertitudes sur
+  ton profil. Afin de lever ces incertitudes, peux-tu vérifier et revalider les éléments suivants&nbsp;:
+  <a href="{$reminder->baseurl()}/merge" style="text-decoration: none">
+  {foreach from=$profile_merge item=field name=flags}
+    {if $field eq 'name'}ton nom{*
+    *}{elseif $field eq 'job'}tes activités professionnelles{*
+    *}{elseif $field eq 'address'}tes adresses{*
+    *}{elseif $field eq 'promo'}ta promotion d'étude{*
+    *}{elseif $field eq 'phone'}tes numéros de téléphone{*
+    *}{elseif $field eq 'education'}tes formations{*
+    *}{/if}{if !$smarty.flags.last}, {/if}
+  {/foreach}
+  </a>
+{elseif $profile_incitation}
   La dernière mise à jour de ta <a href="profile/{$smarty.session.hruid}" class="popup2">fiche</a>
   date du {$profile_last_update|date_format}. Il est possible qu'elle ne soit pas à jour.
   Si tu souhaites la modifier,