]> git.decadent.org.uk Git - dak.git/blobdiff - dak/process_new.py
source should not be a list
[dak.git] / dak / process_new.py
index 93ebb83d5bf2ea5b810c45ab206d4df71b0c1579..84170e4bc8373d19b802b72b878afbdb93485388 100755 (executable)
@@ -64,7 +64,6 @@ from daklib.dak_exceptions import CantOpenError, AlreadyLockedError, CantGetLock
 from daklib.summarystats import SummaryStats
 from daklib.config import Config
 from daklib.policy import UploadCopy, PolicyQueueUploadHandler
 from daklib.summarystats import SummaryStats
 from daklib.config import Config
 from daklib.policy import UploadCopy, PolicyQueueUploadHandler
-from sqlalchemy.sql import not_
 
 # Globals
 Options = None
 
 # Globals
 Options = None
@@ -120,17 +119,21 @@ class Priority_Completer:
 ################################################################################
 
 def claimed_overrides(upload, missing, session):
 ################################################################################
 
 def claimed_overrides(upload, missing, session):
-    source = [upload.source.source]
     binaries = set([x.package for x in upload.binaries])
     suites = ('unstable','experimental')
     for m in missing:
         if m['type'] != 'dsc':
             binaries.remove(m['package'])
     binaries = set([x.package for x in upload.binaries])
     suites = ('unstable','experimental')
     for m in missing:
         if m['type'] != 'dsc':
             binaries.remove(m['package'])
-    return session.query(DBBinary).filter(DBBinary.package.in_(binaries)). \
-                         join(DBBinary.source). \
-                         filter(not_(DBSource.source.in_(source))). \
-                         join(DBBinary.suites). \
-                         filter(Suite.suite_name.in_(suites))
+    if binaries:
+        return session.query(DBBinary.package, DBSource.source).distinct(). \
+                             filter(DBBinary.package.in_(binaries)). \
+                             join(DBBinary.source). \
+                             filter(DBSource.source != upload.source.source). \
+                             join(DBBinary.suites). \
+                             filter(Suite.suite_name.in_(suites)). \
+                             order_by(DBSource.source, DBBinary.package)
+    else:
+        return None
 
 ################################################################################
 
 
 ################################################################################
 
@@ -154,10 +157,10 @@ def print_new (upload, missing, indexed, session, file=sys.stdout):
             line = line + ' [!]'
         print >>file, line
     claimed = claimed_overrides(upload, missing, session)
             line = line + ' [!]'
         print >>file, line
     claimed = claimed_overrides(upload, missing, session)
-    if claimed.count():
+    if claimed and claimed.count():
         print '\nCLAIMED OVERRIDES'
         for c in claimed:
         print '\nCLAIMED OVERRIDES'
         for c in claimed:
-            print '%s:\t%s' % (c.source.source, c.package)
+            print '%s: %s' % (c.source, c.package)
     notes = get_new_comments(upload.policy_queue, upload.changes.source)
     for note in notes:
         print "\nAuthor: %s\nVersion: %s\nTimestamp: %s\n\n%s" \
     notes = get_new_comments(upload.policy_queue, upload.changes.source)
     for note in notes:
         print "\nAuthor: %s\nVersion: %s\nTimestamp: %s\n\n%s" \