48
function qatracker_getbugs_for_release($siteid) {
48
function qatracker_getbugs_for_release($siteid, $header) {
50
50
* Get all the bugs for all the milestones of a release
51
51
* for a given siteid
55
SELECT DISTINCT m.title mtitle
53
$query = db_select('qatracker_build', 'b')
55
->extend('PagerDefault');
57
$query->addField('m', 'title', 'mtitle');
58
$query->fields('l', array(
62
$query->addField('l', 'title', 'btitle');
63
$query->fields('l', array(
71
$query->addField('m', 'id');
72
$query->addExpression("CASE
67
73
WHEN l.importance = 'Critical' THEN 0
68
74
WHEN l.importance = 'High' THEN 1
69
75
WHEN l.importance = 'Medium' THEN 2
70
76
WHEN l.importance = 'Low' THEN 3
71
77
WHEN l.importance = 'Undecided' THEN 10
74
FROM qatracker_build b
75
JOIN qatracker_product p ON p.id = b.productid
76
JOIN qatracker_build_milestone bm ON bm.buildid = b.id
77
JOIN qatracker_milestone m ON bm.milestoneid = m.id
78
JOIN qatracker_testsuite_product tp ON tp.productid = b.productid AND tp.milestone_seriesid = m.seriesid
79
JOIN qatracker_testsuite_testcase tt ON tt.testsuiteid = tp.testsuiteid
80
JOIN qatracker_testcase t ON tt.testcaseid = t.id
81
JOIN qatracker_result r ON (r.testcaseid = t.id AND r.buildid = b.id)
82
JOIN qatracker_bug g ON g.resultid = r.id
83
JOIN qatracker_launchpad_bug l ON g.bugnumber = l.originalbug
84
WHERE m.siteid = :siteid
85
AND SUBSTRING(m.title, '^[^ ]+') IN (
86
SELECT DISTINCT SUBSTRING(m2.title, '^[^ ]+')
87
FROM qatracker_milestone m2
88
WHERE m2.status IN (0,1)
89
AND m2.siteid = m.siteid
91
AND tt.status IN (0, 2)
92
ORDER by m.id DESC, importance_order, l.status", array(":siteid" => intval($siteid)));
94
return $result->fetchAll();
78
ELSE 5 END", 'importance_order');
79
$query->join('qatracker_product', 'p', 'p.id = b.productid');
80
$query->join('qatracker_build_milestone', 'bm', 'bm.buildid = b.id');
81
$query->join('qatracker_milestone', 'm', 'bm.milestoneid = m.id');
82
$query->join('qatracker_testsuite_product', 'tp', 'tp.productid = b.productid AND tp.milestone_seriesid = m.seriesid');
83
$query->join('qatracker_testsuite_testcase', 'tt', 'tt.testsuiteid = tp.testsuiteid');
84
$query->join('qatracker_testcase', 't', 'tt.testcaseid = t.id');
85
$query->join('qatracker_result', 'r', '(r.testcaseid = t.id AND r.buildid = b.id)');
86
$query->join('qatracker_bug', 'g', 'g.resultid = r.id');
87
$query->join('qatracker_launchpad_bug', 'l', 'g.bugnumber = l.originalbug');
88
$query->condition('m.siteid', intval($siteid));
90
$subquery = db_select('qatracker_milestone', 'm2');
91
$subquery->distinct();
92
$subquery->addExpression("SUBSTRING(m2.title, '^[^ ]+')");
94
$or->condition('m2.status', 0, '=');
95
$or->condition('m2.status', 1, '=');
96
$subquery->condition($or);
97
$subquery->condition('m2.siteid', 'm.siteid');
99
$query->addExpression("SUBSTRING(m.title, '^[^ ]+') IN (" . $subquery->__toString() . ')');
101
$or->condition('tt.status', 0, '=');
102
$or->condition('tt.status', 2, '=');
103
$query->condition($or);
104
$query->condition('tt.status', array(0, 2), 'IN');
105
$query->orderBy('m.id', 'DESC');
106
$query->orderByHeader($header);
107
return $query->execute()->fetchAll();
124
137
array('data' => 'Bug #'),
125
array('data' => 'Title'),
126
array('data' => 'Affects'),
127
array('data' => 'Status'),
128
array('data' => 'Importance'),
129
array('data' => 'Assignee'),
130
array('data' => 'Com.'),
131
array('data' => 'Sub.'),
132
array('data' => 'Dup.'),
138
array('data' => 'Title', 'field' => 'btitle', 'sort' => 'DESC'),
139
array('data' => 'Affects', 'field' => 'l.product', 'sort' => 'DESC'),
140
array('data' => 'Status', 'field' => 'l.status', 'sort' => 'DESC'),
141
array('data' => 'Importance', 'field' => 'l.importance', 'sort' => 'DESC'),
142
array('data' => 'Assignee', 'field' => 'l.assignee', 'sort' => 'DESC'),
143
array('data' => 'Com.', 'field' => 'l.commentscount', 'sort' => 'DESC'),
144
array('data' => 'Sub.', 'field' => 'l.subscriberscount', 'sort' => 'DESC'),
145
array('data' => 'Dup.', 'field' => 'l.duplicatescount', 'sort' => 'DESC'),
135
$bugs = qatracker_getbugs_for_release($siteid);
148
$bugs = qatracker_getbugs_for_release($siteid, $header);
137
150
$curr_milestone = "";