<?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 *
case 'profile':
$this->UpdateOnDismiss();
- pl_redirect('profile/edit');
+ pl_redirect('profile/edit/' . $this->user->profile()->hrpid);
break;
case 'photo':
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;
}
}
- protected function GetDisplayText() {}
-
- public function Display(&$page)
+ public function Prepare($page)
{
- header('Content-Type: text/html; charset=utf-8');
- $page->changeTpl('reminder/profile_update.tpl', NO_SKIN);
- $page->assign('baseurl', $this->GetBaseUrl());
- $user = S::user();
-
- $res = XDB::query('SELECT date < DATE_SUB(NOW(), INTERVAL 365 DAY) AS is_profile_old,
- date AS profile_date, p.attach AS photo
- FROM auth_user_md5 AS u
- LEFT JOIN photo AS p ON (u.user_id = p.uid)
- WHERE user_id = {?}',
- $user->id());
- list($is_profile_old, $profile_date, $has_photo) = $res->fetchOneRow();
+ parent::Prepare($page);
+ $profile = $this->user->profile();
- $profile_date = $is_profile_old ? $profile_date : null;
- $page->assign('profile_update', $profile_date);
- $page->assign('needs_photo', $has_photo);
-
- require_once 'geoloc.inc.php';
- $res = localize_addresses($user->id());
- $page->assign('geocoding_incitation', count($res));
+ $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);
+ $page->assign('geocoding_incitation', Geocoder::countNonGeocoded($profile->id()));
+ }
- $page->assign('incitations_count',
- ($is_profile_old ? 1 : 0) +
- ($has_photo ? 1 : 0) +
- (count($res) > 0 ? 1 : 0));
+ public function template()
+ {
+ return 'reminder/profile_update.tpl';
+ }
+ public function title()
+ {
+ return "Mise à jour de ton profil";
+ }
+ public function warning()
+ {
+ return true;
}
- public static function IsCandidate(User &$user)
+ private static function ListMergeIssues(Profile $profile)
{
- $res = XDB::query('SELECT date < DATE_SUB(NOW(), INTERVAL 365 DAY) AS is_profile_old,
- p.attach AS photo
- FROM auth_user_md5 AS u
- LEFT JOIN photo AS p ON (u.user_id = p.uid)
- WHERE user_id = {?}',
- $user->id());
- list($is_profile_old, $has_photo) = $res->fetchOneRow();
- require_once 'geoloc.inc.php';
- $res = localize_addresses($user->id());
+ 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);
+ }
- return (count($res) || !$has_photo || $is_profile_old);
+ public static function IsCandidate(User $user, $candidate)
+ {
+ $profile = $user->profile();
+ if (!$profile) {
+ return false;
+ }
+ return !$profile->has_photo || $profile->is_old
+ || !is_null(self::ListMergeIssues($profile));
}
}