{
function handlers()
{
+ if (Platal::globals()->merge->state == 'pending') {
+ $auth = 'admin';
+ } elseif (Platal::globals()->merge->state == 'done') {
+ $auth = 'admin,edit_directory';
+ }
+
return array(
- 'fusionax' => $this->make_hook('index', AUTH_MDP, 'admin'),
- 'fusionax/import' => $this->make_hook('import', AUTH_MDP, 'admin'),
- 'fusionax/view' => $this->make_hook('view', AUTH_MDP, 'admin'),
- 'fusionax/ids' => $this->make_hook('ids', AUTH_MDP, 'admin'),
- 'fusionax/deceased' => $this->make_hook('deceased', AUTH_MDP, 'admin'),
- 'fusionax/promo' => $this->make_hook('promo', AUTH_MDP, 'admin'),
- 'fusionax/names' => $this->make_hook('names', AUTH_MDP, 'admin'),
+ 'fusionax' => $this->make_hook('index', AUTH_MDP, $auth),
+ 'fusionax/import' => $this->make_hook('import', AUTH_MDP, 'admin'),
+ 'fusionax/view' => $this->make_hook('view', AUTH_MDP, 'admin'),
+ 'fusionax/ids' => $this->make_hook('ids', AUTH_MDP, 'admin'),
+ 'fusionax/deceased' => $this->make_hook('deceased', AUTH_MDP, 'admin'),
+ 'fusionax/promo' => $this->make_hook('promo', AUTH_MDP, 'admin'),
+ 'fusionax/names' => $this->make_hook('names', AUTH_MDP, 'admin'),
+
+ 'fusionax/deathdate_issues' => $this->make_hook('deathdate_issue', AUTH_MDP, 'admin,edit_directory'),
+ 'fusionax/promo_issues' => $this->make_hook('promo_issue', AUTH_MDP, 'admin,edit_directory'),
+ 'fusionax/name_issues' => $this->make_hook('name_issue', AUTH_MDP, 'admin,edit_directory'),
+ 'fusionax/phone_issues' => $this->make_hook('phone_issue', AUTH_MDP, 'admin,edit_directory'),
+ 'fusionax/education_issues' => $this->make_hook('education_issue', AUTH_MDP, 'admin,edit_directory'),
+ 'fusionax/address_issues' => $this->make_hook('address_issue', AUTH_MDP, 'admin,edit_directory'),
+ 'fusionax/job_issues' => $this->make_hook('job_issue', AUTH_MDP, 'admin,edit_directory'),
);
}
function handler_index(&$page)
{
- $page->changeTpl('fusionax/index.tpl');
- $page->assign('xorg_title', 'Polytechnique.org - Fusion des annuaires');
+ if (Platal::globals()->merge->state == 'pending') {
+ $page->changeTpl('fusionax/index.tpl');
+ } elseif (Platal::globals()->merge->state == 'done') {
+ $issues = XDB::rawFetchOneAssoc("SELECT COUNT(*) AS total,
+ SUM(FIND_IN_SET('name', issues)) DIV 1 AS name,
+ SUM(FIND_IN_SET('job', issues)) DIV 2 AS job,
+ SUM(FIND_IN_SET('address', issues)) DIV 3 AS address,
+ SUM(FIND_IN_SET('promo', issues)) DIV 4 AS promo,
+ SUM(FIND_IN_SET('deathdate', issues)) DIV 5 AS deathdate,
+ SUM(FIND_IN_SET('phone', issues)) DIV 6 AS phone,
+ SUM(FIND_IN_SET('education', issues)) DIV 7 AS education
+ FROM profile_merge_issues
+ WHERE issues IS NOT NULL OR issues != ''");
+ $page->assign('issues', $issues);
+ $page->changeTpl('fusionax/issues.tpl');
+ }
}
/** Import de l'annuaire de l'AX depuis l'export situé dans le home de jacou */
--- /dev/null
+{**************************************************************************}
+{* *}
+{* Copyright (C) 2003-2010 Polytechnique.org *}
+{* http://opensource.polytechnique.org/ *}
+{* *}
+{* This program is free software; you can redistribute it and/or modify *}
+{* it under the terms of the GNU General Public License as published by *}
+{* the Free Software Foundation; either version 2 of the License, or *}
+{* (at your option) any later version. *}
+{* *}
+{* This program is distributed in the hope that it will be useful, *}
+{* but WITHOUT ANY WARRANTY; without even the implied warranty of *}
+{* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *}
+{* GNU General Public License for more details. *}
+{* *}
+{* You should have received a copy of the GNU General Public License *}
+{* along with this program; if not, write to the Free Software *}
+{* Foundation, Inc., *}
+{* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *}
+{* *}
+{**************************************************************************}
+
+<h2>Fusion des annuaires X.org - AX</h2>
+
+{if $issues.total > 0}
+<p>
+ Il reste les problèmes suivants dus à la fusion des annuaires à corriger sur les profils :
+</p>
+<ul>
+ {if $issues.deathdate > 0}<li>{$issues.deathdate} erreur{if $issues.deathdate > 1}s{/if} sur les <a href="fusionax/deathdate_issues">dates de décès</a></li>{/if}
+ {if $issues.promo > 0}<li>{$issues.promo} erreur{if $issues.promo > 1}s{/if} sur les <a href="fusionax/promo_issues">promotions</a></li>{/if}
+ {if $issues.name > 0}<li>{$issues.name} erreur{if $issues.name > 1}s{/if} sur les <a href="fusionax/name_issues">noms</a></li>{/if}
+ {if $issues.phone > 0}<li>{$issues.phone} erreur{if $issues.phone > 1}s{/if} sur les <a href="fusionax/phone_issues">téléphones</a></li>{/if}
+ {if $issues.education > 0}<li>{$issues.education} erreur{if $issues.education > 1}s{/if} sur les <a href="fusionax/education_issues">formations</a></li>{/if}
+ {if $issues.address > 0}<li>{$issues.address} erreur{if $issues.address > 1}s{/if} sur les <a href="fusionax/address_issues">adresses</a></li>{/if}
+ {if $issues.job > 0}<li>{$issues.job} erreur{if $issues.job > 1}s{/if} sur les <a href="fusionax/job_issues">emplois</a></li>{/if}
+</ul>
+{else}
+<p>Il ne reste plus d'erreurs liées à la fusion des annuaires !</p>
+{/if}
+
+{* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}