Skip to content

Commit 1267f47

Browse files
committed
Merge pull request #643 from ubc/fixcount
fixed up count on admin and lrs dashboard. Need suggestions!
2 parents f2cf984 + 346b14b commit 1267f47

File tree

2 files changed

+37
-12
lines changed

2 files changed

+37
-12
lines changed

app/locker/data/dashboards/AdminDashboard.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,11 @@ public function lrsCount(){
6060
*
6161
**/
6262
public function actorCount(){
63-
return \Statement::distinct('statement.actor.mbox')->remember(5)->count();
63+
$mbox = intval( \Statement::distinct('statement.actor.mbox')->remember(5)->get()->count() );
64+
$openid = intval( \Statement::distinct('statement.actor.openid')->remember(5)->get()->count() );
65+
$mbox_sha1sum = intval( \Statement::distinct('statement.actor.mbox_sha1sum')->remember(5)->get()->count() );
66+
$account = intval( \Statement::distinct('statement.actor.account.name')->remember(5)->get()->count() );
67+
return ($mbox + $openid + $mbox_sha1sum + $account);
6468
}
6569

6670
/**

app/locker/data/dashboards/LrsDashboard.php

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -52,19 +52,40 @@ public function statementCount(){
5252
*
5353
**/
5454
public function actorCount(){
55+
$count_array = ['mbox' => '', 'openid' => '', 'mbox_sha1sum' => '', 'account' => ''];
56+
57+
$count_array['mbox'] = $this->db->statements->aggregate(
58+
['$match' => $this->getMatch( $this->lrs )],
59+
['$group' => ['_id' => '$statement.actor.mbox']],
60+
['$group' => ['_id' => 1, 'count' => ['$sum' => 1]]]
61+
);
62+
63+
$count_array['openid'] = $this->db->statements->aggregate(
64+
['$match' => $this->getMatch( $this->lrs )],
65+
['$group' => ['_id' => '$statement.actor.openid']],
66+
['$group' => ['_id' => 1, 'count' => ['$sum' => 1]]]
67+
);
68+
69+
$count_array['mbox_sha1sum'] = $this->db->statements->aggregate(
70+
['$match' => $this->getMatch( $this->lrs )],
71+
['$group' => ['_id' => '$statement.actor.mbox_sha1sum']],
72+
['$group' => ['_id' => 1, 'count' => ['$sum' => 1]]]
73+
);
74+
75+
$count_array['account'] = $this->db->statements->aggregate(
76+
['$match' => $this->getMatch( $this->lrs )],
77+
['$group' => ['_id' => ['accountName' => '$statement.actor.account.name', 'accountHomePage' => '$statement.actor.account.homePage']]],
78+
['$group' => ['_id' => 1, 'count' => ['$sum' => 1]]]
79+
);
5580

56-
$count = $this->db->statements->aggregate(
57-
array('$match' => $this->getMatch( $this->lrs )),
58-
array('$group' => array('_id' => '$statement.actor.mbox')),
59-
array('$group' => array('_id' => 1, 'count' => array('$sum' => 1)))
60-
);
61-
62-
if( isset($count['result'][0]) ){
63-
return $count['result'][0]['count'];
64-
}else{
65-
return 0;
81+
$summary = 0;
82+
foreach ($count_array as $key => $val) {
83+
if( isset($val['result'][0]) ){
84+
$summary += $val['result'][0]['count'];
85+
}
6686
}
67-
87+
88+
return $summary;
6889
}
6990

7091
/**

0 commit comments

Comments
 (0)