~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/registry/model/person.py

[r=allenap][bug=827608] Display synchronised packages on
        +related-package and +synchronised-packages.

Show diffs side-by-side

added added

removed removed

Lines of Context:
297
297
from lp.soyuz.interfaces.archivepermission import IArchivePermissionSet
298
298
from lp.soyuz.interfaces.archivesubscriber import IArchiveSubscriberSet
299
299
from lp.soyuz.model.archive import Archive
 
300
from lp.soyuz.model.publishing import SourcePackagePublishingHistory
300
301
from lp.soyuz.model.sourcepackagerelease import SourcePackageRelease
301
302
from lp.translations.model.hastranslationimports import (
302
303
    HasTranslationImportsMixin,
2586
2587
        """See `IPerson`."""
2587
2588
        return self._latestSeriesQuery()
2588
2589
 
 
2590
    def getLatestSynchronisedPublishings(self):
 
2591
        """See `IPerson`."""
 
2592
        query = """
 
2593
            SourcePackagePublishingHistory.id IN (
 
2594
                SELECT DISTINCT ON (spph.distroseries,
 
2595
                                    spr.sourcepackagename)
 
2596
                    spph.id
 
2597
                FROM
 
2598
                    SourcePackagePublishingHistory as spph, archive,
 
2599
                    SourcePackagePublishingHistory as ancestor_spph,
 
2600
                    SourcePackageRelease as spr
 
2601
                WHERE
 
2602
                    spph.sourcepackagerelease = spr.id AND
 
2603
                    spph.creator = %(creator)s AND
 
2604
                    spph.ancestor = ancestor_spph.id AND
 
2605
                    spph.archive = archive.id AND
 
2606
                    ancestor_spph.archive != spph.archive AND
 
2607
                    archive.purpose = %(archive_purpose)s
 
2608
                ORDER BY spph.distroseries,
 
2609
                    spr.sourcepackagename,
 
2610
                    spph.datecreated DESC,
 
2611
                    spph.id DESC
 
2612
            )
 
2613
            """ % dict(
 
2614
                   creator=quote(self.id),
 
2615
                   archive_purpose=quote(ArchivePurpose.PRIMARY),
 
2616
                   )
 
2617
 
 
2618
        return SourcePackagePublishingHistory.select(
 
2619
            query,
 
2620
            orderBy=['-SourcePackagePublishingHistory.datecreated',
 
2621
                     '-SourcePackagePublishingHistory.id'],
 
2622
            prejoins=['sourcepackagerelease', 'archive'])
 
2623
 
2589
2624
    def getLatestUploadedButNotMaintainedPackages(self):
2590
2625
        """See `IPerson`."""
2591
2626
        return self._latestSeriesQuery(uploader_only=True)