// not too wise duplicated code, but effective => Quick & Dirty if ($openBuildsQty <= 0 && !$args->show_closed_builds) { $gui->warning_message = lang_get('no_open_builds'); $gui->tableSet = null; $smarty = new TLSmarty(); $smarty->assign('gui', $gui); $smarty->display($templateCfg->template_dir . $templateCfg->default_template); exit; } $metricsMgr = new tlTestPlanMetrics($db); $statusCfg = $metricsMgr->getStatusConfig(); $metrics = $metricsMgr->getStatusTotalsByBuildUAForRender($args->tplan_id, array('processClosedBuilds' => $args->show_closed_builds)); $matrix = $metrics->info; // Here need to work, because all queries consider ONLY ACTIVE STATUS $option = $args->show_closed_builds ? null : testplan::GET_OPEN_BUILD; $build_set = $metricsMgr->get_builds($args->tplan_id, testplan::GET_ACTIVE_BUILD, $option); $names = $user->getNames($db); // get the progress of the whole build based on executions of single users $build_statistics = array(); foreach ($matrix as $build_id => $build_execution_map) { $build_statistics[$build_id]['total'] = 0; $build_statistics[$build_id]['executed'] = 0; $build_statistics[$build_id]['total_time'] = 0; foreach ($build_execution_map as $user_id => $statistics) { // total assigned test cases $build_statistics[$build_id]['total'] += $statistics['total']; // total executed testcases $executed = $statistics['total'] - $statistics['not_run']['count']; $build_statistics[$build_id]['executed'] += $executed; $build_statistics[$build_id]['total_time'] += $statistics['total_time']; }