Index: trunk/LATMOS-Accounts-Web/MANIFEST
===================================================================
--- trunk/LATMOS-Accounts-Web/MANIFEST	(revision 1049)
+++ trunk/LATMOS-Accounts-Web/MANIFEST	(revision 1050)
@@ -1,8 +1,4 @@
+apache/proxy.conf
 Changes
-MANIFEST
-MANIFEST.skip
-Makefile.PL
-README
-apache/proxy.conf
 etc/httpd/latmos-accounts-web.conf
 etc/init.d/latmos-accounts-web
@@ -11,6 +7,6 @@
 lib/Catalyst/Authentication/Credential/La.pm
 lib/LATMOS/Accounts/Web/Controller/About.pm
+lib/LATMOS/Accounts/Web/Controller/Admin.pm
 lib/LATMOS/Accounts/Web/Controller/Admin/Requests.pm
-lib/LATMOS/Accounts/Web/Controller/Admin.pm
 lib/LATMOS/Accounts/Web/Controller/Ajax.pm
 lib/LATMOS/Accounts/Web/Controller/Aliases.pm
@@ -24,11 +20,16 @@
 lib/LATMOS/Accounts/Web/Controller/Rpc.pm
 lib/LATMOS/Accounts/Web/Controller/Sites.pm
+lib/LATMOS/Accounts/Web/Controller/Summary/Offices.pm
 lib/LATMOS/Accounts/Web/Controller/Users.pm
 lib/LATMOS/Accounts/Web/Model/Accounts.pm
 lib/LATMOS/Accounts/Web/Model/AttrFilter.pm
 lib/LATMOS/Accounts/Web/Model/AttrForms.pm
+lib/LATMOS/Accounts/Web.pm
+lib/LATMOS/Accounts/Web/View/TTpart.pm
 lib/LATMOS/Accounts/Web/View/TT.pm
-lib/LATMOS/Accounts/Web/View/TTpart.pm
-lib/LATMOS/Accounts/Web.pm
+Makefile.PL
+MANIFEST
+MANIFEST.skip
+README
 root/favicon.ico
 root/html/about/index.tt
@@ -83,6 +84,7 @@
 root/html/sites/index.tt
 root/html/sites/menu.tt
+root/html/summary/offices/index.tt
+root/html/users/address_form.tt
 root/html/users/address.tt
-root/html/users/address_form.tt
 root/html/users/default.tt
 root/html/users/groups.tt
@@ -122,7 +124,7 @@
 root/static/icons/locked.png
 root/static/icons/logviewer.png
+root/static/icons/mail_forward.png
 root/static/icons/mail-mark-important.png
 root/static/icons/mail-read.png
-root/static/icons/mail_forward.png
 root/static/icons/network-workgroup.png
 root/static/icons/preferences-desktop-wallpaper.png
@@ -185,7 +187,8 @@
 t/controller_Request.t
 t/controller_Sites.t
+t/controller_Summary-Offices.t
 t/controller_Users.t
 t/model_Accounts.t
 t/model_AttrForms.t
+t/view_TTpart.t
 t/view_TT.t
-t/view_TTpart.t
Index: trunk/LATMOS-Accounts-Web/lib/LATMOS/Accounts/Web/Controller/Summary/Offices.pm
===================================================================
--- trunk/LATMOS-Accounts-Web/lib/LATMOS/Accounts/Web/Controller/Summary/Offices.pm	(revision 1050)
+++ trunk/LATMOS-Accounts-Web/lib/LATMOS/Accounts/Web/Controller/Summary/Offices.pm	(revision 1050)
@@ -0,0 +1,58 @@
+package LATMOS::Accounts::Web::Controller::Summary::Offices;
+use Moose;
+use namespace::autoclean;
+
+BEGIN {extends 'Catalyst::Controller'; }
+
+=head1 NAME
+
+LATMOS::Accounts::Web::Controller::Summary::Offices - Catalyst Controller
+
+=head1 DESCRIPTION
+
+Catalyst Controller.
+
+=head1 METHODS
+
+=cut
+
+
+=head2 index
+
+=cut
+
+sub index :Path :Args(0) {
+    my ( $self, $c ) = @_;
+
+    my $base = $c->model('Accounts')->base;
+
+    my @users = $base->search_objects('user', 'active=1');
+
+    foreach ( $base->search_objects('address', 'active=1', map { "user=$_" } @users)) {
+
+        my $add = $base->get_object('address', $_) or next;
+        my $site = $add->get_attributes('site')
+            || $add->get_attributes('l');
+        my $office = $add->get_attributes('physicalDeliveryOfficeName') || '';
+
+        $site or next;
+
+        push (@{$c->stash->{office}{$site}{$office}}, $add);
+    }
+}
+
+
+=head1 AUTHOR
+
+olivier
+
+=head1 LICENSE
+
+This library is free software. You can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
+
+__PACKAGE__->meta->make_immutable;
+
+1;
Index: trunk/LATMOS-Accounts-Web/root/html/summary/offices/index.tt
===================================================================
--- trunk/LATMOS-Accounts-Web/root/html/summary/offices/index.tt	(revision 1050)
+++ trunk/LATMOS-Accounts-Web/root/html/summary/offices/index.tt	(revision 1050)
@@ -0,0 +1,32 @@
+[% FOREACH site = office.keys.sort %]
+    [% IF loop.first %]
+    <table border=1>
+    [% END %]
+
+<tr><th colspan=2>[% site %]</th></tr>
+
+[% FOREACH off = office.$site.keys.sort %]
+<tr>
+<th>[% off %]</th>
+<td>
+
+[% FOREACH add = office.$site.$off  %]
+
+[% "<b>" IF add.get_attributes('isMainAddress') %]
+<a href="[% c.uri_for('/users', add.get_attributes('user'), 'address', add.id) %]">
+[% add.get_attributes('displayName') | html %]
+</a>
+[% "</b>" IF add.get_attributes('isMainAddress') %]
+
+[% add.get_attributes('telephoneNumber') | html %]
+<br>
+
+[% END %]
+</td>
+</tr>
+[% END %]
+
+    [% IF loop.last %]
+    </table>
+    [% END %]
+[% END %]
Index: trunk/LATMOS-Accounts-Web/t/controller_Summary-Offices.t
===================================================================
--- trunk/LATMOS-Accounts-Web/t/controller_Summary-Offices.t	(revision 1050)
+++ trunk/LATMOS-Accounts-Web/t/controller_Summary-Offices.t	(revision 1050)
@@ -0,0 +1,10 @@
+use strict;
+use warnings;
+use Test::More;
+
+
+use Catalyst::Test 'LATMOS::Accounts::Web';
+use LATMOS::Accounts::Web::Controller::Summary::Offices;
+
+ok( request('/summary/offices')->is_success, 'Request should succeed' );
+done_testing();
