source: trunk/LATMOS-Accounts-Web/lib/LATMOS/Accounts/Web/Controller/Json/AccAge.pm @ 1482

Last change on this file since 1482 was 1482, checked in by nanardon, 9 years ago

Add missing file

File size: 1.5 KB
Line 
1package LATMOS::Accounts::Web::Controller::Json::AccAge;
2use Moose;
3use namespace::autoclean;
4
5BEGIN { extends 'Catalyst::Controller'; }
6
7=head1 NAME
8
9LATMOS::Accounts::Web::Controller::Json::Expire - Catalyst Controller
10
11=head1 DESCRIPTION
12
13Catalyst Controller.
14
15=head1 METHODS
16
17=cut
18
19
20=head2 index
21
22=cut
23
24sub index :Path :Args(0) {
25    my ( $self, $c ) = @_;
26
27    my $base = $c->model('Accounts')->db;
28
29    my $graph = {
30        data => [],
31        series => [],
32    };
33
34    my %exists = map { $_ => 1 } $base->search_objects('user', 'active=1');
35    my %create = $base->attributes_summary_by_object('user', 'create');
36   
37    my %dates;
38    foreach my $user (keys %create) {
39        foreach (@{ $create{$user} }) {
40            $_ or next;
41            $_ =~ s/-.*//;
42            my $status = $exists{$user} ? 'active' : 'inactive';
43            $dates{$status}{$_} ||= 0;
44            $dates{$status}{$_} ++;
45        }
46    }
47
48    foreach my $status (sort keys %dates) {
49        push(@{ $graph->{data} }, [ map { [ $_, $dates{$status}{$_} +0 ] } sort { $dates{$status}{$b} <=> $dates{$status}{$a} } keys %{ $dates{$status} } ]);
50        push(@{ $graph->{series} }, { label => $status });
51    } 
52   
53    $c->stash->{data} = $graph;
54}
55
56
57
58=encoding utf8
59
60=head1 AUTHOR
61
62Olivier Thauvin,Guyancourt - B1428,+33 1 80285052,
63
64=head1 LICENSE
65
66This library is free software. You can redistribute it and/or modify
67it under the same terms as Perl itself.
68
69=cut
70
71__PACKAGE__->meta->make_immutable;
72
731;
Note: See TracBrowser for help on using the repository browser.