diff options
author | Sean Finney <seanius@debian.org> | 2008-09-03 18:09:50 +0200 |
---|---|---|
committer | Sean Finney <seanius@debian.org> | 2008-09-03 18:09:50 +0200 |
commit | e1d8fbecbffeda8c5f540a0f36dc49d9fa409804 (patch) | |
tree | 0eb89270a35ddc50dbe4ec32154ffe0c5ac1a6bd | |
parent | c3928ce9083a4e1049d13a6f82610d25c038d5b8 (diff) | |
download | patch-tracker-e1d8fbecbffeda8c5f540a0f36dc49d9fa409804.tar.gz |
maintainer support in frontend
-rwxr-xr-x | pagehandler.py | 15 | ||||
-rw-r--r-- | patchtracker/DB.py | 9 |
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 |