Initiates pages to fix merge related possible errors.
authorStéphane Jacob <sj@m4x.org>
Fri, 15 Oct 2010 16:18:51 +0000 (18:18 +0200)
committerStéphane Jacob <sj@m4x.org>
Fri, 15 Oct 2010 16:18:51 +0000 (18:18 +0200)
Signed-off-by: Stéphane Jacob <sj@m4x.org>
modules/fusionax.php
templates/fusionax/issues.tpl [new file with mode: 0644]

index c391ad1..dfde915 100644 (file)
@@ -33,22 +33,50 @@ class FusionAxModule extends PLModule
 {
     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 */
diff --git a/templates/fusionax/issues.tpl b/templates/fusionax/issues.tpl
new file mode 100644 (file)
index 0000000..54cc91f
--- /dev/null
@@ -0,0 +1,42 @@
+{**************************************************************************}
+{*                                                                        *}
+{*  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&nbsp;:
+</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&nbsp;!</p>
+{/if}
+
+{* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}