~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/translations/model/translationtemplatesbuildjob.py

Merged fix-retest-colorize into redo-read-only-transactions-in-buildmaster, resolving several import conflicts.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright 2010 Canonical Ltd. This software is licensed under the
 
1
# Copyright 2010-2011 Canonical Ltd. This software is licensed under the
2
2
# GNU Affero General Public License version 3 (see the file LICENSE).
3
3
 
4
4
__metaclass__ = type
19
19
    )
20
20
from zope.security.proxy import removeSecurityProxy
21
21
 
22
 
from canonical.config import config
23
 
from lp.services.database.lpstorm import (
24
 
    IMasterStore,
25
 
    IStore,
26
 
    )
27
22
from lp.app.interfaces.launchpad import ILaunchpadCelebrities
28
23
from lp.buildmaster.enums import BuildFarmJobType
29
24
from lp.buildmaster.interfaces.buildfarmbranchjob import IBuildFarmBranchJob
40
35
    BranchJobDerived,
41
36
    BranchJobType,
42
37
    )
 
38
from lp.services.config import config
 
39
from lp.services.database.bulk import load_related
 
40
from lp.services.database.lpstorm import (
 
41
    IMasterStore,
 
42
    IStore,
 
43
    )
43
44
from lp.translations.interfaces.translationtemplatesbuild import (
44
45
    ITranslationTemplatesBuildSource,
45
46
    )
226
227
            return cls(branch_job)
227
228
 
228
229
    @classmethod
 
230
    def getByJobs(cls, jobs):
 
231
        """See `IBuildFarmJob`.
 
232
 
 
233
        Overridden here to search via a BranchJob, rather than a Job.
 
234
        """
 
235
        store = IStore(BranchJob)
 
236
        job_ids = [job.id for job in jobs]
 
237
        branch_jobs = store.find(
 
238
            BranchJob, BranchJob.jobID.is_in(job_ids))
 
239
        return [cls(branch_job) for branch_job in branch_jobs]
 
240
 
 
241
    @classmethod
 
242
    def preloadJobsData(cls, jobs):
 
243
        # Circular imports.
 
244
        from lp.code.model.branch import Branch
 
245
        from lp.registry.model.product import Product
 
246
        from lp.code.model.branchcollection import GenericBranchCollection
 
247
        from lp.services.job.model.job import Job
 
248
        contexts = [job.context for job in jobs]
 
249
        load_related(Job, contexts, ['jobID'])
 
250
        branches = load_related(Branch, contexts, ['branchID'])
 
251
        GenericBranchCollection.preloadDataForBranches(branches)
 
252
        load_related(Product, branches, ['productID'])
 
253
 
 
254
    @classmethod
229
255
    def getByBranch(cls, branch):
230
256
        """See `ITranslationTemplatesBuildJobSource`."""
231
257
        store = IStore(BranchJob)