& Header, TabText => 'Site Statistics' &>
Total Projects: <% $TotalProjects %>
Total Members: <% $TotalMembers %>
% for(@CFFields) {
% my $field = $_;
% $Result = $QueueAcc->result($field);
% $Label = freeze(keys %$Result);
% $Data = freeze(values %$Result);
<% loc($_) %>
% }
<% loc('Ticket Status') %>
Total Tickets: <% $TotalTickets %>
% $Result = $TicketAcc->result('status');
% $Label = freeze(keys %$Result);
% $Data = freeze(values %$Result);
<& Footer &>
<%INIT>
;;; # Move your ass, girl.
use Algorithm::Accounting;
use List::Util qw(sum);
use FreezeThaw qw(freeze thaw);
use YAML;
my @CFFields = ('Maturity', 'Platform', 'License', 'Programming Language', 'Intended Audience');
my $GetCFValue = sub {
my $Q = shift;
my @Values = map {
my $field = join('',split(/ /,$_));
[map { $_->Content or 'Unknown' } @{$Q->OriginObj->CustomFieldValues($field)->ItemsArrayRef}]
} @CFFields;
return @Values;
};
my $QueueAcc = Algorithm::Accounting->new(fields => ['QueueId',@CFFields]);
my $Queues = $m->comp('ProjectQueues');
while(my $Q = $Queues->Next) {
$QueueAcc->append_data([[ $Q->Id, $GetCFValue->($Q) ]]);
}
my ($ProjectAcc, $TotalProjects,$TotalMembers) = $m->comp('ProjectAcc');
my $TicketAcc = $m->comp('TicketAcc');
my $QueueTickets = $TicketAcc->result->[0];
my $TotalTickets = $TicketAcc->result->[1]->{'tickets'};
my ($Result,$Label,$Data);
%INIT>