def sg_compare (a, b):
a = a[1]
b = b[1]
- """Sort by have note, time of oldest upload."""
+ """Sort by have pending action, have note, time of oldest upload."""
+ # Sort by have pending action
+ a_note_state = a["processed"]
+ b_note_state = b["processed"]
+ if a_note_state < b_note_state:
+ return -1
+ elif a_note_state > b_note_state:
+ return 1
+
# Sort by have note
a_note_state = a["note_state"]
b_note_state = b["note_state"]
<head>
<meta http-equiv="content-type" content="text/xhtml+xml; charset=utf-8" />
<link type="text/css" rel="stylesheet" href="style.css" />
- <link rel="shortcut icon" href="http://www.debian.org/favicon.ico" />
+ <link rel="shortcut icon" href="https://www.debian.org/favicon.ico" />
<title>
Debian NEW and BYHAND Packages
</title>
</head>
<body id="NEW">
<div id="logo">
- <a href="http://www.debian.org/">
- <img src="http://www.debian.org/logos/openlogo-nd-50.png"
+ <a href="https://www.debian.org/">
+ <img src="https://www.debian.org/logos/openlogo-nd-50.png"
alt="debian logo" /></a>
- <a href="http://www.debian.org/">
- <img src="http://www.debian.org/Pics/debian.png"
+ <a href="https://www.debian.org/">
+ <img src="https://www.debian.org/Pics/debian.png"
alt="Debian Project" /></a>
</div>
<div id="titleblock">
- <img src="http://www.debian.org/Pics/red-upperleft.png"
+ <img src="https://www.debian.org/Pics/red-upperleft.png"
id="red-upperleft" alt="corner image"/>
- <img src="http://www.debian.org/Pics/red-lowerleft.png"
+ <img src="https://www.debian.org/Pics/red-lowerleft.png"
id="red-lowerleft" alt="corner image"/>
- <img src="http://www.debian.org/Pics/red-upperright.png"
+ <img src="https://www.debian.org/Pics/red-upperright.png"
id="red-upperright" alt="corner image"/>
- <img src="http://www.debian.org/Pics/red-lowerright.png"
+ <img src="https://www.debian.org/Pics/red-lowerright.png"
id="red-lowerright" alt="corner image"/>
<span class="title">
Debian NEW and BYHAND Packages
<div class="footer">
<p>Hint: Age is the youngest upload of the package, if there is more than
one version.<br />
- You may want to look at <a href="http://ftp-master.debian.org/REJECT-FAQ.html">the REJECT-FAQ</a>
+ You may want to look at <a href="https://ftp-master.debian.org/REJECT-FAQ.html">the REJECT-FAQ</a>
for possible reasons why one of the above packages may get rejected.</p>
- <p>
- <a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10"
- alt="Valid XHTML 1.0 Strict" height="31" width="88" /></a>
- <a href="http://jigsaw.w3.org/css-validator/">
- <img style="border:0;width:88px;height:31px" src="http://jigsaw.w3.org/css-validator/images/vcss"
- alt="Valid CSS!" />
- </a>
- </p>
</div> </body> </html>
"""
if "sourceNEW" in trclass:
print "<td class=\"package\">%s</td>" % (source)
else:
- print "<td class=\"package\"><a href=\"http://packages.qa.debian.org/%(source)s\">%(source)s</a></td>" % {'source': source}
+ print "<td class=\"package\"><a href=\"https://tracker.debian.org/pkg/%(source)s\">%(source)s</a></td>" % {'source': source}
print "<td class=\"version\">"
for vers in version.split():
print "<a href=\"new/%s_%s.html\">%s</a><br/>" % (source, utils.html_escape(vers), utils.html_escape(vers))
(name, mail) = maint.split(":", 1)
print "<td class=\"upload-data\">"
- print "<span class=\"maintainer\">Maintainer: <a href=\"http://qa.debian.org/developer.php?login=%s\">%s</a></span><br/>" % (utils.html_escape(mail), utils.html_escape(name))
+ print "<span class=\"maintainer\">Maintainer: <a href=\"https://qa.debian.org/developer.php?login=%s\">%s</a></span><br/>" % (utils.html_escape(mail), utils.html_escape(name))
(name, mail) = changedby.split(":", 1)
- print "<span class=\"changed-by\">Changed-By: <a href=\"http://qa.debian.org/developer.php?login=%s\">%s</a></span><br/>" % (utils.html_escape(mail), utils.html_escape(name))
+ print "<span class=\"changed-by\">Changed-By: <a href=\"https://qa.debian.org/developer.php?login=%s\">%s</a></span><br/>" % (utils.html_escape(mail), utils.html_escape(name))
if sponsor:
- print "<span class=\"sponsor\">Sponsor: <a href=\"http://qa.debian.org/developer.php?login=%s\">%s</a>@debian.org</span><br/>" % (utils.html_escape(sponsor), utils.html_escape(sponsor))
+ print "<span class=\"sponsor\">Sponsor: <a href=\"https://qa.debian.org/developer.php?login=%s\">%s</a>@debian.org</span><br/>" % (utils.html_escape(sponsor), utils.html_escape(sponsor))
print "<span class=\"signature\">Fingerprint: %s</span>" % (fingerprint)
print "</td>"
print "<td class=\"closes\">"
for close in closes:
- print "<a href=\"http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=%s\">#%s</a><br/>" % (utils.html_escape(close), utils.html_escape(close))
+ print "<a href=\"https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=%s\">#%s</a><br/>" % (utils.html_escape(close), utils.html_escape(close))
print "</td></tr>"
row_number+=1
# Divide the .changes into per-source groups
per_source = {}
+ total_pending = 0
for upload in queue.uploads:
source = upload.changes.source
if source not in per_source:
per_source[source]["processed"] = ""
handler = PolicyQueueUploadHandler(upload, session)
if handler.get_action():
- per_source[source]["processed"] = " | PENDING %s" % handler.get_action()
+ per_source[source]["processed"] = "PENDING %s" % handler.get_action()
+ total_pending += 1
per_source[source]["list"].append(upload)
per_source[source]["list"].sort(lambda x, y: cmp(x.changes.created, y.changes.created), reverse=True)
# Determine oldest time and have note status for each source group
table_footer(type.upper())
elif not Cnf.has_key("Queue-Report::Options::822"):
# The "normal" output without any formatting.
- format="%%-%ds | %%-%ds | %%-%ds%%s | %%s old%%s\n" % (max_source_len, max_version_len, max_arch_len)
-
msg = ""
for entry in entries:
(source, binary, version_list, arch_list, processed, note, last_modified, undef, undef, undef, undef, undef, undef, undef) = entry
- msg += format % (source, version_list, arch_list, note, time_pp(last_modified), processed)
+ if processed:
+ format="%%-%ds | %%-%ds | %%-%ds | %%s\n" % (max_source_len, max_version_len, max_arch_len)
+ msg += format % (source, version_list, arch_list, processed)
+ else:
+ format="%%-%ds | %%-%ds | %%-%ds%%s | %%s old\n" % (max_source_len, max_version_len, max_arch_len)
+ msg += format % (source, version_list, arch_list, note, time_pp(last_modified))
if msg:
print type.upper()
print "-"*len(type)
print
print msg
- print "%s %s source package%s / %s %s package%s in total." % (source_count, type, plural(source_count), total_count, type, plural(total_count))
+ print ("%s %s source package%s / %s %s package%s in total / %s %s package%s to be processed." %
+ (source_count, type, plural(source_count),
+ total_count, type, plural(total_count),
+ total_pending, type, plural(total_pending)))
print
################################################################################
f = None
if Cnf.has_key("Queue-Report::Options::822"):
# Open the report file
- f = open(Cnf["Queue-Report::ReportLocations::822Location"], "w")
+ f = sys.stdout
+ filename822 = Cnf.get("Queue-Report::ReportLocations::822Location")
+ if filename822:
+ f = open(filename822, "w")
session = DBConn().session()