status-report-scripts pyGetReviewByFlags,1.13,1.14

Jason ティビツ (tibbs) fedora-extras-commits at redhat.com
Fri Jun 20 19:56:04 UTC 2008


Author: tibbs

Update of /cvs/fedora/status-report-scripts
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv30414

Modified Files:
	pyGetReviewByFlags 
Log Message:
Hide tickets with open dependencies.



Index: pyGetReviewByFlags
===================================================================
RCS file: /cvs/fedora/status-report-scripts/pyGetReviewByFlags,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- pyGetReviewByFlags	17 Jun 2008 15:12:09 -0000	1.13
+++ pyGetReviewByFlags	20 Jun 2008 19:56:04 -0000	1.14
@@ -22,8 +22,10 @@
 # This URL will work in the Phoenix colo
 url = 'https://bzprx.vip.phx.redhat.com/xmlrpc.cgi'
 
+ACCEPT      = '163779'
 NEEDSPONSOR = '177841'
-GUIDELINES =  '197974'
+GUIDELINES  = '197974'
+trackers = set([ACCEPT, NEEDSPONSOR, GUIDELINES])
 
 flagData = {
     # 'FLAG' : (baseFlagFilename, openMsg, closeMsg),
@@ -76,8 +78,7 @@
   <body>
     <div id="innerWrap">
       <h1 style='background-color: #99f;'>This is a cached copy of
-      the package review tickets.  It is intended to make interacting with
-      bugzilla faster<br/>
+      the package review tickets.  (v1.2)<br/>
       It is updated every %s minutes</h1>
     <div id="content_here">
     <h1 style="background-color: #99f">Last Update: %s </h1>
@@ -108,23 +109,36 @@
         querydata['bug_status'] = ["NEW", "VERIFIED", "ASSIGNED", "REOPENED", "CLOSED", "NEEDINFO_ENG", "NEEDINFO", "INVESTIGATE", "MODIFIED", "ON_DEV", "UNCONFIRMED", "QA_READY", "ON_QA", "FAILS_QA", "NEEDINFO_REPORTER", "RELEASE_PENDING", "POST"]
         querydata['type0-0-0'] = 'equals'
         querydata['value0-0-0'] = "fedora-review" + flag
-    bugs = bz.query(querydata)
+    
+    bugs = filter(lambda b: str(b.bug_id) not in trackers, bz.query(querydata))
+    
     closedCnt = 0
     notClosedCnt = 0
     hiddenCnt = 0
     bugdata = {}
+    alldeps = set([])
+    closeddeps = set([])
 
+    # First run over all of the bugs and generate some side data
     for bug in bugs:
         bugdata[bug.bug_id] = {};
         bugdata[bug.bug_id]['hidden'] = 0;
         bugdata[bug.bug_id]['blockedby'] = set(str(bug.blockedby).split(', '))-set([''])
         bugdata[bug.bug_id]['depends'] = set(str(bug.dependson).split(', '))-set([''])
+        alldeps |= bugdata[bug.bug_id]['depends']
+
+    # Now look up info on everything that blocks any review ticket, so we can check their status
+    for bug in filter(None, bz.getbugssimple(alldeps)):
+        if bug.bug_status == 'CLOSED':
+            closeddeps.add(str(bug.bug_id))
+
+    def opendep(id): return id not in closeddeps
+    for bug in bugs:
         if bug.bug_status == "CLOSED":
             closedCnt += 1
-        elif bug.status_whiteboard.find('NotReady') >= 0:
+        elif bug.status_whiteboard.find('NotReady') >= 0 or filter(opendep, bugdata[bug.bug_id]['depends']):
             hiddenCnt += 1
             bugdata[bug.bug_id]['hidden'] = 1
-
         else:
             notClosedCnt += 1
 




More information about the fedora-extras-commits mailing list