diff --git a/pgcommitfest/commitfest/views.py b/pgcommitfest/commitfest/views.py index 12cd8a6f..db81e955 100644 --- a/pgcommitfest/commitfest/views.py +++ b/pgcommitfest/commitfest/views.py @@ -407,6 +407,9 @@ def patchlist(request, cf, personalized=False): whereclauses.append("poc.status=ANY(%(openstatuses)s)") else: whereclauses.append("poc.commitfest_id=%(cid)s") + # Exclude "Moved to other CF" patches from draft commitfests + if cf.draft: + whereclauses.append("poc.status != %(status_moved)s") if personalized: # For now we can just order by these names in descending order, because @@ -541,6 +544,7 @@ def patchlist(request, cf, personalized=False): params = { "openstatuses": PatchOnCommitFest.OPEN_STATUSES, "cid": cf.id, + "status_moved": PatchOnCommitFest.STATUS_MOVED, } params.update(whereparams) @@ -616,12 +620,16 @@ def commitfest(request, cfid): return patch_list.redirect # Generate patch status summary. - curs.execute( - "SELECT ps.status, ps.statusstring, count(*) FROM commitfest_patchoncommitfest poc INNER JOIN commitfest_patchstatus ps ON ps.status=poc.status WHERE commitfest_id=%(id)s GROUP BY ps.status ORDER BY ps.sortkey", - { - "id": cf.id, - }, - ) + status_query = "SELECT ps.status, ps.statusstring, count(*) FROM commitfest_patchoncommitfest poc INNER JOIN commitfest_patchstatus ps ON ps.status=poc.status WHERE commitfest_id=%(id)s" + status_params = {"id": cf.id} + + if cf.draft: + # Exclude "Moved to other CF" status from draft commitfests + status_query += " AND poc.status != %(status_moved)s" + status_params["status_moved"] = PatchOnCommitFest.STATUS_MOVED + + status_query += " GROUP BY ps.status ORDER BY ps.sortkey" + curs.execute(status_query, status_params) statussummary = curs.fetchall() statussummary.append([-1, "Total", sum((r[2] for r in statussummary))])