| <?php |
|
|
| namespace Kanboard\Analytic; |
|
|
| use Kanboard\Core\Base; |
|
|
| |
| |
| |
| |
| |
| |
| class UserDistributionAnalytic extends Base |
| { |
| |
| |
| |
| |
| |
| |
| |
| public function build($project_id) |
| { |
| $metrics = array(); |
| $total = 0; |
| $tasks = $this->taskFinderModel->getAll($project_id); |
| $users = $this->projectUserRoleModel->getAssignableUsersList($project_id); |
|
|
| foreach ($tasks as $task) { |
| $user = isset($users[$task['owner_id']]) ? $users[$task['owner_id']] : $users[0]; |
| $total++; |
|
|
| if (! isset($metrics[$user])) { |
| $metrics[$user] = array( |
| 'nb_tasks' => 0, |
| 'percentage' => 0, |
| 'user' => $user, |
| ); |
| } |
|
|
| $metrics[$user]['nb_tasks']++; |
| } |
|
|
| if ($total === 0) { |
| return array(); |
| } |
|
|
| foreach ($metrics as &$metric) { |
| $metric['percentage'] = round(($metric['nb_tasks'] * 100) / $total, 2); |
| } |
|
|
| ksort($metrics); |
|
|
| return array_values($metrics); |
| } |
| } |
|
|