diff options
author | Sean Finney <seanius@debian.org> | 2010-05-13 20:23:37 +0200 |
---|---|---|
committer | Sean Finney <seanius@debian.org> | 2010-05-13 20:23:37 +0200 |
commit | cd9c47eabb00f528f801ff3f1a73a3f22ce24d88 (patch) | |
tree | 60cb0c397bb093e735d6883cab9d50a4acd5da63 /patchtracker/ComplexQueries.py | |
parent | 4a87687ce6598d89c9368d45f8f570d86c6c665e (diff) | |
download | patch-tracker-cd9c47eabb00f528f801ff3f1a73a3f22ce24d88.tar.gz |
Add maintainer search in django implementation, commonize w/index search.
Diffstat (limited to 'patchtracker/ComplexQueries.py')
-rw-r--r-- | patchtracker/ComplexQueries.py | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/patchtracker/ComplexQueries.py b/patchtracker/ComplexQueries.py index 706301e..be7e30f 100644 --- a/patchtracker/ComplexQueries.py +++ b/patchtracker/ComplexQueries.py @@ -1,16 +1,13 @@ import models -class PackageIndex: - def __init__( self, index ): +class PackageIndexQuery: + def __init__( self, queryobj ): self.dists = [d.name for d in models.RepositorySuite.objects.all()] self.index = {} self.packages = [] + self.queryobj = queryobj - packageMappings = models.SourcePackageMapping.objects.order_by('package__name').filter( package__name=index ) - if not packageMappings: - packageMappings = models.SourcePackageMapping.objects.order_by('package__name').filter( package__name__startswith=index ) - - for mapping in packageMappings: + for mapping in queryobj: self._addPackageMapping(mapping.package, mapping.suite) def _addPackageMapping( self, package, suite ): @@ -23,3 +20,10 @@ class PackageIndex: for pkg in self.packages: yield { 'package':pkg, 'entries':self.index[pkg.name] } +class PackageIndex (PackageIndexQuery): + def __init__( self, index ): + mappings = models.SourcePackageMapping.objects.order_by('package__name').filter( package__name=index ) + if not mappings: + mappings = models.SourcePackageMapping.objects.order_by('package__name').filter( package__name__startswith=index ) + + PackageIndexQuery.__init__(self, mappings) |