Skip to content

Commit 467f950

Browse files
author
Automation
committed
Fix project issue assignment and API logic - Separate testing issues from roadmap issues - Update getProjects.php to use gh_issues table instead of empty gh_issue_project_status - Update getGHDash.php to correctly filter issues by project - Fix issue table display when clicking on projects - Ensure 25 real roadmap issues stay in SYNECA ROADMAP - Move 7 testing issues to UNASSIGNED
1 parent c6c7a35 commit 467f950

2 files changed

Lines changed: 58 additions & 26 deletions

File tree

public/api/getGHDash.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -136,21 +136,20 @@ function handleIssuesByProject($pdo) {
136136

137137
if ($project) {
138138
if ($project === "UNASSIGNED") {
139-
// Get issues that are NOT in any project board
139+
// Get issues that are NOT assigned to any project
140140
$query = "
141141
SELECT i.*
142142
FROM gh_issues i
143-
WHERE i.gh_node_id NOT IN (SELECT DISTINCT gh_node_id FROM gh_issue_project_status)
143+
WHERE i.gh_project IS NULL OR i.gh_project = ''
144144
ORDER BY i.assigned_date DESC
145145
";
146146
$stmt = $pdo->prepare($query);
147147
} else {
148-
// Get issues that are assigned to the specific project board
148+
// Get issues that are assigned to the specific project
149149
$query = "
150150
SELECT i.*
151151
FROM gh_issues i
152-
INNER JOIN gh_issue_project_status p ON i.gh_node_id = p.gh_node_id
153-
WHERE p.project_id = :project
152+
WHERE i.gh_project = :project
154153
ORDER BY i.assigned_date DESC
155154
";
156155
$stmt = $pdo->prepare($query);

public/api/getProjects.php

Lines changed: 54 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11,31 +11,64 @@
1111
// Set PDO to throw exceptions on error
1212
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
1313

14-
// Query to get all projects with dynamic issue counts based on project board status
15-
$query = "
16-
SELECT
17-
p.*,
18-
COALESCE(issue_counts.count_of_issues, 0) as count_of_issues
19-
FROM gh_projects p
20-
LEFT JOIN (
14+
// Check if gh_issue_project_status table has data
15+
$statusTableCheck = $pdo->query("SELECT COUNT(*) as count FROM gh_issue_project_status");
16+
$statusTableCount = $statusTableCheck->fetch(PDO::FETCH_ASSOC)['count'];
17+
18+
if ($statusTableCount > 0) {
19+
// Use gh_issue_project_status table if it has data
20+
$query = "
21+
SELECT
22+
p.*,
23+
COALESCE(issue_counts.count_of_issues, 0) as count_of_issues
24+
FROM gh_projects p
25+
LEFT JOIN (
26+
SELECT
27+
project_id,
28+
COUNT(DISTINCT gh_node_id) as count_of_issues
29+
FROM gh_issue_project_status
30+
GROUP BY project_id
31+
) issue_counts ON p.gh_id = issue_counts.project_id
32+
WHERE p.gh_id != 'UNASSIGNED'
33+
ORDER BY count_of_issues DESC
34+
";
35+
36+
// Add UNASSIGNED project with dynamic count (issues not in any project board)
37+
$unassignedQuery = "
38+
SELECT COUNT(*) as count_of_issues
39+
FROM gh_issues
40+
WHERE gh_node_id NOT IN (SELECT DISTINCT gh_node_id FROM gh_issue_project_status)
41+
";
42+
} else {
43+
// Fallback to gh_issues table for project assignments
44+
$query = "
2145
SELECT
22-
project_id,
23-
COUNT(DISTINCT gh_node_id) as count_of_issues
24-
FROM gh_issue_project_status
25-
GROUP BY project_id
26-
) issue_counts ON p.gh_id = issue_counts.project_id
27-
WHERE p.gh_id != 'UNASSIGNED'
28-
ORDER BY count_of_issues DESC
29-
";
46+
p.*,
47+
COALESCE(issue_counts.count_of_issues, 0) as count_of_issues
48+
FROM gh_projects p
49+
LEFT JOIN (
50+
SELECT
51+
gh_project,
52+
COUNT(*) as count_of_issues
53+
FROM gh_issues
54+
WHERE gh_project IS NOT NULL AND gh_project != ''
55+
GROUP BY gh_project
56+
) issue_counts ON p.gh_id = issue_counts.gh_project
57+
WHERE p.gh_id != 'UNASSIGNED'
58+
ORDER BY count_of_issues DESC
59+
";
60+
61+
// Add UNASSIGNED project with dynamic count (issues not assigned to any project)
62+
$unassignedQuery = "
63+
SELECT COUNT(*) as count_of_issues
64+
FROM gh_issues
65+
WHERE gh_project IS NULL OR gh_project = ''
66+
";
67+
}
68+
3069
$result = $pdo->query($query);
3170
$projects = $result->fetchAll(PDO::FETCH_ASSOC);
3271

33-
// Add UNASSIGNED project with dynamic count (issues not in any project board)
34-
$unassignedQuery = "
35-
SELECT COUNT(*) as count_of_issues
36-
FROM gh_issues
37-
WHERE gh_node_id NOT IN (SELECT DISTINCT gh_node_id FROM gh_issue_project_status)
38-
";
3972
$unassignedResult = $pdo->query($unassignedQuery);
4073
$unassignedCount = $unassignedResult->fetch(PDO::FETCH_ASSOC)['count_of_issues'];
4174

0 commit comments

Comments
 (0)