summaryrefslogtreecommitdiff
path: root/patchtracker/ComplexQueries.py
diff options
context:
space:
mode:
Diffstat (limited to 'patchtracker/ComplexQueries.py')
-rw-r--r--patchtracker/ComplexQueries.py18
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)