← Back to team overview

harvest-dev team mailing list archive

[Merge] lp:~dholbach/harvest/581600 into lp:harvest

 

Daniel Holbach has proposed merging lp:~dholbach/harvest/581600 into lp:harvest.

Requested reviews:
  harvest-dev (harvest-dev)
Related bugs:
  #581600 Show unseeded "packageset"
  https://bugs.launchpad.net/bugs/581600

-- 
https://code.launchpad.net/~dholbach/harvest/581600/+merge/26434
Your team harvest-dev is requested to review the proposed merge of lp:~dholbach/harvest/581600 into lp:harvest.
=== modified file 'harvest/opportunities/management/commands/updatepackagesets.py'
--- harvest/opportunities/management/commands/updatepackagesets.py	2010-01-22 13:28:04 +0000
+++ harvest/opportunities/management/commands/updatepackagesets.py	2010-05-31 15:46:30 +0000
@@ -16,10 +16,14 @@
             sys.exit(1)
         lp_packagesets = launchpad.get_packagesets(lp)
         package_mapping = {}
+        unseeded, created = PackageSet.objects.get_or_create(name="unseeded")
+        if created:
+            unseeded.save()
         for lp_packageset in lp_packagesets:
             packageset, created = PackageSet.objects.get_or_create(name=lp_packageset.name)
             if created:
                 packageset.save()
+            # record information which package is in which package sets
             for package_name in lp_packageset.getSourcesIncluded():
                 if not package_mapping.has_key(package_name):
                     package_mapping[package_name] = set()
@@ -35,7 +39,15 @@
                         package.packagesets.get(name=packageset_name)
                     except PackageSet.DoesNotExist:
                         package.packagesets.add(PackageSet.objects.get(name=packageset_name))
+                # if package is in mapping, it can't be in the unseeded
+                # list any more
+                if package.packagesets.filter(name="unseeded"):
+                    package.packagesets.delete(unseeded)
                 for packageset in package.packagesets.all():
                     if packageset.name not in package_mapping[package_name]:
                         package.packagesets.delete(PackageSet.objects.get(name=packageset))
                 package.save()
+        unseeded_packages = SourcePackage.objects.filter(packagesets__isnull=True)
+        for u in unseeded_packages:
+            u.packagesets.add(unseeded)
+            u.save()