def __init__(self, content, default=None): self.draft = False if IContent.providedBy(content): while content is not None: if IDraftContent.providedBy(content): self.draft = True content = getattr(content, '__parent__', None)
def isAvailable(self): context = self.context for key in context: item = context[key] if IContent.providedBy(item): if checkPermission('zope.View', item): return True return False
def update(self): context = self.context while not IContent.providedBy(context): context = getattr(context, '__parent__', None) if context is None: break if context is not None: ct = IContentType(context, None) if ct is not None: self.klass = ct.name.replace('.', '-') super(ContentViewLayout, self).update()
def __call__(self, context): if IContentItem.providedBy(context): context = context.context terms = [] for name, content in context.items(): if IContent.providedBy(content) and \ checkPermission('zope.View', content): item = IItem(content, None) if item is None: title = content.__name__ else: title = u'%s (%s)'%(item.title, content.__name__) terms.append((title, SimpleTerm(name, name, title))) terms.sort() return SimpleVocabulary([term for t, term in terms])
def __call__(self, context): while not IContent.providedBy(context): context = getattr(context, '__parent__', None) if context is None: return SimpleVocabulary(()) try: request = getInteraction().participations[0] except: request = TestRequest() terms = [] for name, view in getAdapters((context, request), IViewModel): view.update() if not view.isAvailable(): continue term = SimpleTerm(name, name, view.__title__) term.description = view.__description__ terms.append((view.__title__, term)) terms.sort() return Vocabulary([defaultModel] + [term for t, term in terms])