23
23
from lazr.uri import URI
25
25
from z3c.ptcompat import ViewPageTemplateFile
26
from zope.app import zapi
27
from zope.component import (
26
33
from zope.error.interfaces import IErrorReportingUtility
27
34
from zope.interface import (
32
from zope.component import (
38
from zope.app import zapi
39
39
from zope.publisher.browser import BrowserView
40
from zope.schema import TextLine
41
from zope.security.interfaces import Unauthorized
42
from zope.security.proxy import isinstance as zope_isinstance
40
43
from zope.traversing.interfaces import (
45
from zope.security.interfaces import Unauthorized
46
from zope.security.proxy import isinstance as zope_isinstance
47
from zope.schema import TextLine
49
49
from canonical.launchpad import _
50
50
from canonical.launchpad.interfaces.launchpad import (
56
56
from canonical.launchpad.layers import LaunchpadLayer
57
from canonical.launchpad.webapp import canonical_url, urlappend
57
from canonical.launchpad.webapp import (
58
61
from canonical.launchpad.webapp.authorization import check_permission
59
from lp.app.browser.badge import IHasBadges
60
62
from canonical.launchpad.webapp.interfaces import (
73
75
from canonical.launchpad.webapp.publisher import (
74
76
get_current_browser_request,
78
80
from canonical.launchpad.webapp.session import get_cookie_domain
79
81
from canonical.lazr.canonicalurl import nearest_adapter
80
from lp.app.browser.stringformatter import escape, FormattersAPI
82
from lp.app.browser.badge import IHasBadges
83
from lp.app.browser.stringformatter import (
81
87
from lp.blueprints.interfaces.specification import ISpecification
82
88
from lp.blueprints.interfaces.sprint import ISprint
83
89
from lp.bugs.interfaces.bug import IBug
84
90
from lp.buildmaster.enums import BuildStatus
85
91
from lp.code.interfaces.branch import IBranch
86
from lp.services.features import getFeatureFlag
87
from lp.soyuz.enums import ArchivePurpose
88
from lp.soyuz.interfaces.archive import IPPA
89
from lp.soyuz.interfaces.archivesubscriber import IArchiveSubscriberSet
90
from lp.soyuz.interfaces.binarypackagename import (
91
IBinaryAndSourcePackageName,
93
92
from lp.registry.interfaces.distribution import IDistribution
94
93
from lp.registry.interfaces.distributionsourcepackage import (
95
94
IDistributionSourcePackage,
97
96
from lp.registry.interfaces.person import IPerson
98
97
from lp.registry.interfaces.product import IProduct
99
98
from lp.registry.interfaces.projectgroup import IProjectGroup
99
from lp.services.features import getFeatureFlag
100
from lp.soyuz.enums import ArchivePurpose
101
from lp.soyuz.interfaces.archive import IPPA
102
from lp.soyuz.interfaces.archivesubscriber import IArchiveSubscriberSet
103
from lp.soyuz.interfaces.binarypackagename import IBinaryAndSourcePackageName
102
106
SEPARATOR = ' : '