/***
USAGE:
MantisReleaseOpenIssuesGroupBy(release, groupby, maxstatus)
show list of open issues by category for a given MindTouch release
***/
var release = $0 ?? $release ?? "";
var groupby = $1 ?? $groupby ?? "username";
var maxstatus = $2 ?? $maxstatus ?? 80;
var default_days_left = 0.5;
if(string.startswith(release, 'tag:')) {
let release = string.substr(release, 4);
var query =
"SELECT
mantis_bug_table.id AS id,
mantis_project_table.name AS project,
category,
summary,
priority,
severity,
username,
release_name.value AS release_name,
DATEDIFF(CURDATE(), date_submitted) AS days_open,
IFNULL(days_left.value, $defaultdaysleft) AS days_left,
mantis_bug_table.status AS status
FROM mantis_bug_table
LEFT JOIN mantis_user_table ON handler_id = mantis_user_table.id
LEFT JOIN mantis_project_table ON project_id = mantis_project_table.id
LEFT JOIN mantis_custom_field_string_table AS release_name ON mantis_bug_table.id = release_name.bug_id AND release_name.field_id = 2
LEFT JOIN mantis_custom_field_string_table AS days_left ON mantis_bug_table.id = days_left.bug_id AND days_left.field_id = 18
LEFT JOIN mantis_bug_tag_table AS tagids ON mantis_bug_table.id = tagids.bug_id
LEFT JOIN mantis_tag_table AS tags ON tagids.tag_id = tags.id
WHERE mantis_bug_table.status < $maxstatus AND tags.name = '$release'";
} else {
var query =
"SELECT
mantis_bug_table.id AS id,
mantis_project_table.name AS project,
category,
summary,
priority,
severity,
username,
release_name.value AS release_name,
DATEDIFF(CURDATE(), date_submitted) AS days_open,
IFNULL(days_left.value, $defaultdaysleft) AS days_left,
mantis_bug_table.status AS status
FROM mantis_bug_table
LEFT JOIN mantis_user_table ON handler_id = mantis_user_table.id
LEFT JOIN mantis_project_table ON project_id = mantis_project_table.id
LEFT JOIN mantis_custom_field_string_table AS release_name ON mantis_bug_table.id = release_name.bug_id AND release_name.field_id = 2
LEFT JOIN mantis_custom_field_string_table AS days_left ON mantis_bug_table.id = days_left.bug_id AND days_left.field_id = 18
WHERE mantis_bug_table.status < $maxstatus AND release_name.value='$release'";
}
var issues = bugs.recordlist(query % { release: string.sqlescape(release), defaultdaysleft: default_days_left, maxstatus: maxstatus });
var groups = list.sort([ { name: group, bugs: values } foreach var group : values in list.groupby(issues, '$' .. groupby .. ' ?? "(unassigned)"') ], 'name');
foreach(var item in groups) {
<h5> item.name; " "; "("; #item.bugs; " issues, "; list.sum([ (#bug.days_left > 0) ? bug.days_left : default_days_left foreach var bug in item.bugs ]); " days left)" </h5>
<ul>
foreach(var bug in list.sort(item.bugs, 'id')) {
<li>
MantisIssue(bug);
</li>
}
</ul>
}
| Images 0 | ||
|---|---|---|
| No images to display in the gallery. |
Copyright © 2011 MindTouch, Inc. Powered by