Changeset 1694


Ignore:
Timestamp:
02/01/16 15:01:00 (8 years ago)
Author:
nanardon
Message:

speedup office web page

Location:
trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/LATMOS-Accounts-Web/lib/LATMOS/Accounts/Web/Controller/Json/RefVal.pm

    r1518 r1694  
    3737            foreach my $attr (@{ $c->config->{objects}{$oref}{quick_search} || [ 'name' ]}) { 
    3838                foreach ($base->search_objects( 
    39                         $oref, "$attr~" . $term)) { 
     39                        $oref, "$attr~" . $term, 'exported=true')) { 
    4040                    $objs{$_} = 1; 
    4141                } 
  • trunk/LATMOS-Accounts-Web/lib/LATMOS/Accounts/Web/Controller/Json/Timeline.pm

    r1686 r1694  
    123123    } 
    124124 
    125  
    126125    if (my $date = $ouser->get_attributes('endEmployment')) { 
    127126        push(@{$var->{employments}{events}}, { 
  • trunk/LATMOS-Accounts-Web/lib/LATMOS/Accounts/Web/Controller/Summary/Offices.pm

    r1050 r1694  
    2727    my $base = $c->model('Accounts')->base; 
    2828 
    29     my @users = $base->search_objects('user', 'active=1'); 
     29    my $users = $base->fetchObjectInfo( 
     30        'user', 
     31        [ qw(sn givenName) ], 
     32        'active=1' 
     33    ); 
    3034 
    31     foreach ( $base->search_objects('address', 'active=1', map { "user=$_" } @users)) { 
     35    my $sites = $base->fetchObjectInfo( 
     36        'site', 
     37        [ qw(l description) ], 
     38        'exported=true' 
     39    ); 
    3240 
    33         my $add = $base->get_object('address', $_) or next; 
    34         my $site = $add->get_attributes('site') 
    35             || $add->get_attributes('l'); 
    36         my $office = $add->get_attributes('physicalDeliveryOfficeName') || ''; 
     41    my $addresses = $base->fetchObjectInfo( 
     42        'address', 
     43        [ qw(user site physicalDeliveryOfficeName telephoneNumber l isMainAddress) ], 
     44        'exported=true' 
     45    ); 
    3746 
    38         $site or next; 
     47    foreach my $ad (keys %$addresses) { 
     48        my $sitename = $addresses->{$ad}{site}[0] || $c->loc('(other)'); 
    3949 
    40         push (@{$c->stash->{office}{$site}{$office}}, $add); 
     50        my $loc = $addresses->{$ad}{site}[0] 
     51            ? $sites->{ $addresses->{$ad}{site}[0] }{l}[0] 
     52            : $addresses->{$ad}{l}[0]; 
     53 
     54        my $office = $addresses->{$ad}{physicalDeliveryOfficeName}[0] || ''; 
     55 
     56        my $user = $users->{ $addresses->{$ad}{user}[0] } or next; 
     57 
     58        $c->stash->{sites} = $sites; 
     59 
     60        push ( 
     61            @{$c->stash->{office}{$sitename}{$office}}, 
     62            { 
     63                displayName => sprintf('%s %s', $user->{givenName}[0], $user->{sn}[0]), 
     64                phone => $addresses->{$ad}{telephoneNumber}[0], 
     65                isMainAddress => $addresses->{$ad}{isMainAddress}[0], 
     66                id => $ad, 
     67                user => $addresses->{$ad}{user}[0], 
     68                l => $loc, 
     69                site => $sitename, 
     70            } 
     71        ); 
    4172    } 
    4273} 
  • trunk/LATMOS-Accounts-Web/lib/LATMOS/Accounts/Web/I18N/fr.po

    r1692 r1694  
    4242msgstr "(sans)" 
    4343 
    44 #: root/html/includes/sidebar.tt:77 
     44#: lib/LATMOS/Accounts/Web/Controller/Summary/Offices.pm:48 
     45msgid "(other)" 
     46msgstr "(autre)" 
     47 
     48#: root/html/includes/sidebar.tt:76 
    4549msgid "About" 
    4650msgstr "À propos" 
    4751 
    48 #: lib/LATMOS/Accounts/Web/Controller/Json/Timeline.pm:128 
    49 #: lib/LATMOS/Accounts/Web/Controller/Json/Timeline.pm:137 
     52#: lib/LATMOS/Accounts/Web/Controller/Json/Timeline.pm:127 
     53#: lib/LATMOS/Accounts/Web/Controller/Json/Timeline.pm:136 
    5054msgid "Activity end" 
    5155msgstr "Fin d'activité" 
  • trunk/LATMOS-Accounts-Web/lib/LATMOS/Accounts/Web/I18N/messages.pot

    r1693 r1694  
    3535msgstr "" 
    3636 
    37 #: root/html/includes/sidebar.tt:77 
     37#: lib/LATMOS/Accounts/Web/Controller/Summary/Offices.pm:48 
     38msgid "(other)" 
     39msgstr "" 
     40 
     41#: root/html/includes/sidebar.tt:76 
    3842msgid "About" 
    3943msgstr "" 
    4044 
    41 #: lib/LATMOS/Accounts/Web/Controller/Json/Timeline.pm:128 lib/LATMOS/Accounts/Web/Controller/Json/Timeline.pm:137 
     45#: lib/LATMOS/Accounts/Web/Controller/Json/Timeline.pm:127 lib/LATMOS/Accounts/Web/Controller/Json/Timeline.pm:136 
    4246msgid "Activity end" 
    4347msgstr "" 
  • trunk/LATMOS-Accounts-Web/root/html/summary/offices/index.tt

    r1128 r1694  
    44[% FOREACH site = office.keys.sort %] 
    55[% "<ul>" IF loop.first %] 
    6 <li><a href="#[% site | html %]">[% site | html %]</a></li> 
     6<li><a href="#[% site | html %]">[% sites.$site.description.0 || site | html %]</a></li> 
    77[% "</ul>" IF loop.last %] 
    88[% END %] 
    99[% FOREACH site = office.keys.sort %] 
     10[% s = office.$site.site %] 
    1011 
    11 <h3><a name="[% site | html %]">[% site | html %]</a><a href="#top">↑</a></h3> 
     12<h3><a name="[% site | html %]">[% sites.$site.description.0 || site | html %]</a><a href="#top">↑</a></h3> 
    1213 
    1314[% FOREACH off = office.$site.keys.sort %] 
     
    2324 
    2425<li> 
    25 [% "<b>" IF add.get_attributes('isMainAddress') %] 
    26 <a href="[% c.uri_for('/users', add.get_attributes('user'), 'address', add.id) %]"> 
    27 [% add.get_attributes('displayName') | html %] 
     26[% "<b>" IF add.isMainAddress %] 
     27<a href="[% c.uri_for('/users', add.user, 'address', add.id) %]"> 
     28[% add.displayName | html %] 
    2829</a> 
    29 [% "</b>" IF add.get_attributes('isMainAddress') %] 
     30[% "</b>" IF add.isMainAddress %] 
    3031 
    31 [% add.get_attributes('telephoneNumber') | html %] 
     32[% add.phone | html %] 
    3233</li> 
    3334 
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases.pm

    r1594 r1694  
    983983} 
    984984 
     985=head2 fetchObjectInfo($otype, $attributes, @filters) 
     986 
     987Return an hashref with attribute data for each object matching @filters. 
     988 
     989If C<$attributes> can be an array ref to a list of attributes. 
     990 
     991=cut 
     992 
     993sub fetchObjectInfo { 
     994    my ($self, $otype, $attributes, @filters) = @_; 
     995 
     996    my %results = map { $_ => {} }  $self->search_objects($otype, @filters); 
     997 
     998    foreach my $attr ( ref $attributes ? @$attributes : $attributes) { 
     999        my %res = $self->attributes_summary_by_object($otype, $attr); 
     1000        foreach my $obj (keys %results) { 
     1001            $results{$obj}{$attr} = $res{$obj}; 
     1002        } 
     1003    } 
     1004 
     1005    \%results; 
     1006} 
     1007 
    9851008=head2 find_next_numeric_id($otype, $field, $min, $max) 
    9861009 
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Attributes.pm

    r1572 r1694  
    158158        } 
    159159    } elsif (my $ref = $self->reference) { 
    160         return $self->base->list_objects($ref); 
     160        return $self->base->search_objects($ref, 'exported=true'); 
    161161    } else { return } 
    162162} 
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/objects.pm

    r1677 r1694  
    695695            ? sprintf( 
    696696                q{ 
    697                 select name, %s as value from %s} . ($base->{wexported} ? '' : ' and "exported" = true'), 
     697                select name, %s as value from %s} . ($base->{wexported} ? '' : ' where "exported" = true'), 
    698698                $base->db->quote_identifier($attr->iname), 
    699699                $base->db->quote_identifier($class->_object_table), 
Note: See TracChangeset for help on using the changeset viewer.