/[A3C]/lib/A3C/View.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /lib/A3C/View.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 55 by dpavlin, Tue Apr 1 19:39:00 2008 UTC revision 149 by dpavlin, Tue Jun 3 15:32:14 2008 UTC
# Line 5  use warnings; Line 5  use warnings;
5    
6  use Jifty::View::Declare -base;  use Jifty::View::Declare -base;
7  use A3C::LDAP;  use A3C::LDAP;
8    use A3C::SQL;
9    
10  use Data::Dump qw/dump/;  use Data::Dump qw/dump/;
11    
12    template '/' => page {
13    
14  template '/skole' => page {          h1 { _('Statistics') }
15          h1 { _('Schools in system') };  
16          show 'skole_sve';          my $orgs = A3C::Model::hrEduOrgCollection->new;
17            $orgs->unlimit;
18    
19            dt { _('Number of schools in system') }
20            dd { $orgs->count }
21    
22            my $people = A3C::Model::hrEduPersonCollection->new;
23            $people->unlimit;
24    
25            dt { _('Number of persons in system') }
26            dd { $people->count }
27    
28            my $by_towns = A3C::SQL->new({ query => qq{
29                    select count(uid),l
30                    from hr_edu_orgs
31                    inner join towns on towns.name = l
32                    group by l
33                    order by count desc
34                    limit 25
35            }});
36    
37            dt { _('Top %1 towns by schools', $by_towns->count) }
38            dd {
39                    ul {
40                            while ( my $row = $by_towns->next ) {
41                                    li { outs_raw( $row->count, ' ', $row->l ) }
42                            }
43                    }
44            }
45    
46            my $by_county = A3C::SQL->new({ query => qq{
47                    select
48                            count(uid) as schools,
49                            county,
50                            count(distinct municipality) as municipalities
51                    from hr_edu_orgs
52                    inner join towns on towns.name = l
53                    group by county
54                    order by schools desc
55            }});
56    
57            dt { _('Schools by counties') }
58            dd {
59                    table {
60                            th { _('Schools') }
61                            th { _('County') }
62                            th { _('Municipalities') };
63                            while ( my $row = $by_county->next ) {
64                                    row {
65                                            cell { $row->schools }
66                                            cell { $row->county }
67                                            cell { $row->municipalities }
68                                    }
69                            }
70                    }
71            }
72  };  };
73    
74  private template 'skole_sve' => sub {  
75    template 'ldap' => page {
76            h1 { _('LDAP data about Schools in system') };
77          my $ldap = A3C::LDAP->new;          my $ldap = A3C::LDAP->new;
78          div {          div {
79                  $ldap->search(                  $ldap->search(
# Line 36  private template 'skole_sve' => sub { Line 95  private template 'skole_sve' => sub {
95          }          }
96  };  };
97    
98  template '/search-users' => page {  template 'people' => page {
99            
100            h1 { _('Find people') }
101    
102          my $action = new_action(          my $action = new_action(
103                  class   => 'SearchUser',                  class   => 'SearchhrEduPerson',
104                  moniker => 'search-users'                  moniker => 'search-users',
105                    sticky_on_success => 1,
106                    sticky_on_failure => 1,
107          );          );
108    
109    
110          form {          form {
111                  render_action( $action => [ 'uid_contains', 'cn_contains' ] );                  render_action( $action => [ 'uid_contains', 'cn_contains' ] );
112                  form_submit( label => _('Find someone') );                  form_submit( label => _('Find someone') );
# Line 52  template '/search-users' => page { Line 116  template '/search-users' => page {
116    
117          if ( my $search = $action->result->content('search') ) {          if ( my $search = $action->result->content('search') ) {
118                  div { sprintf(_('Found %d results'), $search->count ) }                  div { sprintf(_('Found %d results'), $search->count ) }
119                  ol {                  table {
120                          while (my $user = $search->next) {                          while (my $user = $search->next) {
121                                  li {                                  row {
122                                          span { $user->cn }                                          cell { $user->cn }
123                                          tt { $user->uid }                                          cell { tt { $user->uid } }
124                                            cell { tt { $user->hrEduPersonUniqueID } }
125                                            cell { $user->hrEduPersonHomeOrg }
126                                  }                                  }
127                          }                          }
128                  }                  }
# Line 64  template '/search-users' => page { Line 130  template '/search-users' => page {
130    
131  };  };
132    
133  template '/sync' => page {  template 'sync' => page {
134    
135            h1 { _('Sync school from LDAP') }
136    
137          my $action = new_action(          my $action = new_action(
138                  class   => 'SyncOrganization',                  class   => 'SyncOrganization',
# Line 72  template '/sync' => page { Line 140  template '/sync' => page {
140          );          );
141    
142          form {          form {
143                  render_action( $action => [ 'cn' ] );                  render_action( $action => [ 'org_uid' ] );
144                  form_submit( label => _('Sync Organization') );                  form_submit( label => _('Sync Organization') );
145          };          };
146    
# Line 81  template '/sync' => page { Line 149  template '/sync' => page {
149                          while (my $user = $users->next) {                          while (my $user = $users->next) {
150                                  li {                                  li {
151                                          span { $user->cn }                                          span { $user->cn }
152                                          tt { '<' . $user->mail . '>' }                                          tt { { class is 'email' } '<' . $user->mail . '>' }
153                                  }                                  }
154                          }                          }
155                  }                  }
156          }          }
157    
158  };  };
159    
160    # mount other views
161    use A3C::View::Organization;
162    
163    # we can't really use following form because Jifty would upper case first
164    # letter of model and try to find A3C::Model::HrEduOrg which doesn't exit!
165    #Jifty::View::Declare::CRUD->mount_view('hrEduOrg', 'A3C::View::Organization', '/organizations');
166    alias A3C::View::Organization under '/organizations', {
167            object_type => 'hrEduOrg',
168    };
169    
170    use A3C::View::Strix;
171    alias A3C::View::Strix under '/strix';
172    
173    1;

Legend:
Removed from v.55  
changed lines
  Added in v.149

  ViewVC Help
Powered by ViewVC 1.1.26