diff options
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) |