summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Finney <seanius@debian.org>2008-09-03 18:09:50 +0200
committerSean Finney <seanius@debian.org>2008-09-03 18:09:50 +0200
commite1d8fbecbffeda8c5f540a0f36dc49d9fa409804 (patch)
tree0eb89270a35ddc50dbe4ec32154ffe0c5ac1a6bd
parentc3928ce9083a4e1049d13a6f82610d25c038d5b8 (diff)
downloadpatch-tracker-e1d8fbecbffeda8c5f540a0f36dc49d9fa409804.tar.gz
maintainer support in frontend
-rwxr-xr-xpagehandler.py15
-rw-r--r--patchtracker/DB.py9
2 files changed, 21 insertions, 3 deletions
diff --git a/pagehandler.py b/pagehandler.py
index 5a36110..04ca30f 100755
--- a/pagehandler.py
+++ b/pagehandler.py
@@ -104,6 +104,19 @@ class IndexCmd:
print "Content-Type: text/html\n\n"
print LetterTocTemplate(self.letter, self.toc)
+class MaintCmd:
+ def __init__(self, args):
+ if len(args) < 1 or not len(args[0]):
+ error("please provide a email address on which to index")
+ else:
+ self.db = PatchTrackerDB()
+ self.email = args[0]
+ self.toc = self.db.findCollection(email="%"+self.email+"%")
+
+ def output(self):
+ print "Content-Type: text/html\n\n"
+ print SearchResultsTemplate(self.email, self.toc)
+
class JumpCmd:
def __init__(self):
form = cgi.FieldStorage()
@@ -138,6 +151,8 @@ class CmdHandler:
self.cmd = IndexCmd(args[1:])
elif cmdarg == "jump":
self.cmd = JumpCmd()
+ elif cmdarg == "email":
+ self.cmd = MaintCmd(args[1:])
elif not len(cmdarg):
self.cmd = FrontPageCmd()
else:
diff --git a/patchtracker/DB.py b/patchtracker/DB.py
index 082cce0..3a5be5c 100644
--- a/patchtracker/DB.py
+++ b/patchtracker/DB.py
@@ -18,7 +18,7 @@ def srcpkg_factory(cursor, row):
info['Files'].append(diffgz)
colmap = {'name':'Package','version':'Version','format':'Format',
- 'loc':'Directory'}
+ 'loc':'Directory','maintainer':'Maintainer','uploaders':'Uploaders'}
for col,field in colmap.iteritems():
info[field] = d[col]
@@ -41,7 +41,7 @@ def srcpkg_collection_factory(cursor, row):
info['Files'].append(diffgz)
colmap = {'name':'Package','version':'Version','format':'Format',
- 'loc':'Directory'}
+ 'loc':'Directory','maintainer':'Maintainer','uploaders':'Uploaders'}
for col,field in colmap.iteritems():
info[field] = d[col]
@@ -86,7 +86,7 @@ class PatchTrackerDB:
cursor = self.db.cursor()
cursor.execute(q, (component,))
- def findCollection(self, package="%", version=None):
+ def findCollection(self, package="%", version=None, email=None):
oldfactory = self.db.row_factory
self.db.row_factory = srcpkg_collection_factory
cursor = self.db.cursor()
@@ -97,6 +97,9 @@ class PatchTrackerDB:
if version:
q += " AND p.version = ?"
qargs += (version,)
+ if email:
+ q += " AND ( p.maintainer like ? OR p.uploaders like ? )"
+ qargs += (email,email)
cursor.execute(q, qargs)
# use srcpkg_factory to fetch sourcepackages, once per suite