def testViewletAvailability(self): from edrn.theme.browser.viewlets import NCIBar, EDRNSiteActions, EDRNLogo, EDRNFooter, EDRNColophon self.failUnless(IViewlet.implementedBy(NCIBar)) self.failUnless(IViewlet.implementedBy(EDRNSiteActions)) self.failUnless(IViewlet.implementedBy(EDRNLogo)) self.failUnless(IViewlet.implementedBy(EDRNFooter)) self.failUnless(IViewlet.implementedBy(EDRNColophon))
def iter_viewlet_registrations(self): gsm = getGlobalSiteManager() sm = getSiteManager() layer_precedence = self.layer_precedence() for reg in itertools.chain(gsm.registeredAdapters(), sm.registeredAdapters()): if len(reg.required) != 4: continue if reg.required[1] not in layer_precedence: continue if IViewlet.implementedBy(reg.factory) or ITTWViewTemplate.providedBy(reg.factory): yield reg
def templateViewRegistrations(): regs = [] for reg in getViews(IBrowserRequest): factory = reg.factory while hasattr(factory, 'factory'): factory = factory.factory # TODO: this should really be dealt with using # a marker interface on the view factory name = getattr(factory, '__name__', '') if name.startswith('SimpleViewClass') or \ name.startswith('SimpleViewletClass') or \ name.endswith('Viewlet') or \ IViewlet.implementedBy(factory) or \ IPortletRenderer.implementedBy(factory): attr, pt = findViewletTemplate(factory) if pt: reg.ptname = basename(pt.filename) else: reg.ptname = None regs.append(reg) return regs