コード例 #1
0
ファイル: indexes.py プロジェクト: Zojax/zojax.content.draft
    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)
コード例 #2
0
    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
コード例 #3
0
    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()
コード例 #4
0
    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])
コード例 #5
0
    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])