.
/**
* @package MantisBT
* @copyright Copyright (C) 2000 - 2002 Kenzaburo Ito - kenito@300baud.org
* @copyright Copyright (C) 2002 - 2014 MantisBT Team - mantisbt-dev@lists.sourceforge.net
* @link http://www.mantisbt.org
*/
/**
* MantisBT Core API's
*/
require_once( 'core.php' );
require_once( 'summary_api.php' );
$f_project_id = gpc_get_int( 'project_id', helper_get_current_project() );
# Override the current page to make sure we get the appropriate project-specific configuration
$g_project_override = $f_project_id;
access_ensure_project_level( config_get( 'view_summary_threshold' ) );
$t_user_id = auth_get_current_user_id();
$t_project_ids = user_get_all_accessible_projects( $t_user_id, $f_project_id);
$specific_where = helper_project_specific_where( $f_project_id, $t_user_id);
$t_bug_table = db_get_table( 'mantis_bug_table' );
$t_history_table = db_get_table( 'mantis_bug_history_table' );
$t_resolved = config_get( 'bug_resolved_status_threshold' );
# the issue may have passed through the status we consider resolved
# (e.g., bug is CLOSED, not RESOLVED). The linkage to the history field
# will look up the most recent 'resolved' status change and return it as well
$query = "SELECT b.id, b.date_submitted, b.last_updated, MAX(h.date_modified) as hist_update, b.status
FROM $t_bug_table b LEFT JOIN $t_history_table h
ON b.id = h.bug_id AND h.type=0 AND h.field_name='status' AND h.new_value=" . db_param() . "
WHERE b.status >=" . db_param() . " AND $specific_where
GROUP BY b.id, b.status, b.date_submitted, b.last_updated
ORDER BY b.id ASC";
$result = db_query_bound( $query, Array( $t_resolved, $t_resolved ) );
$bug_count = db_num_rows( $result );
$t_bug_id = 0;
$t_largest_diff = 0;
$t_total_time = 0;
for ($i=0;$i<$bug_count;$i++) {
$row = db_fetch_array( $result );
$t_date_submitted = $row['date_submitted'];
$t_id = $row['id'];
$t_status = $row['status'];
if ( $row['hist_update'] !== NULL ) {
$t_last_updated = $row['hist_update'];
} else {
$t_last_updated = $row['last_updated'];
}
if ($t_last_updated < $t_date_submitted) {
$t_last_updated = 0;
$t_date_submitted = 0;
}
$t_diff = $t_last_updated - $t_date_submitted;
$t_total_time = $t_total_time + $t_diff;
if ( $t_diff > $t_largest_diff ) {
$t_largest_diff = $t_diff;
$t_bug_id = $row['id'];
}
}
if ( $bug_count < 1 ) {
$bug_count = 1;
}
$t_average_time = $t_total_time / $bug_count;
$t_largest_diff = number_format( $t_largest_diff / SECONDS_PER_DAY, 2 );
$t_total_time = number_format( $t_total_time / SECONDS_PER_DAY, 2 );
$t_average_time = number_format( $t_average_time / SECONDS_PER_DAY, 2 );
$t_orct_arr = preg_split( '/[\)\/\(]/', lang_get( 'orct' ), -1, PREG_SPLIT_NO_EMPTY );
$t_orcttab = "";
foreach ( $t_orct_arr as $t_orct_s ) {
$t_orcttab .= '
';
$t_orcttab .= $t_orct_s;
$t_orcttab .= ' | ';
}
html_page_top( lang_get( 'summary_link' ) );
?>
|
|
|
0) {
print_bug_link( $t_bug_id );
}
?>
|
|
|
|
|
|
|
|
|
|
', get_enum_element( 'resolution', $t_resolution ), '';
}
echo '', lang_get( 'percentage_errors' ), ' | ';
?>
|
|
', get_enum_element( 'resolution', $t_resolution ), '';
}
echo '', lang_get( 'percentage_fixed' ), ' | ';
?>
|