Add graph for user repartition

This commit is contained in:
Frédéric Guillot
2014-11-13 20:37:37 -05:00
parent e4efc73a90
commit 1487cb2763
22 changed files with 234 additions and 15 deletions

View File

@@ -11,7 +11,7 @@ namespace Model;
class ProjectAnalytic extends Base
{
/**
* Get task repartition
* Get tasks repartition
*
* @access public
* @param integer $project_id Project id
@@ -40,4 +40,41 @@ class ProjectAnalytic extends Base
return $metrics;
}
/**
* Get users repartition
*
* @access public
* @param integer $project_id Project id
* @return array
*/
public function getUserRepartition($project_id)
{
$metrics = array();
$total = 0;
$tasks = $this->taskFinder->getAll($project_id);
$users = $this->projectPermission->getMemberList($project_id);
foreach ($tasks as $task) {
$user = $users[$task['owner_id']];
$total++;
if (! isset($metrics[$user])) {
$metrics[$user] = array(
'nb_tasks' => 0,
'percentage' => 0,
'user' => $user,
);
}
$metrics[$user]['nb_tasks']++;
}
foreach ($metrics as &$metric) {
$metric['percentage'] = round(($metric['nb_tasks'] * 100) / $total, 2);
}
return array_values($metrics);
}
}