コード例 #1
0
ファイル: actions.py プロジェクト: Zojax/zojax.content.space
    def __iter__(self):
        if self.contenttype is None:
            raise StopIteration

        context = self.context
        request = self.request

        actions = []
        for ct in self.contenttype.listContainedTypes():
            action = AddContent(context, request, ct, 9999)
            actions.append((action.title, action))

        for context in self.context.values():
            if IWorkspace.providedBy(context):
                contenttype = IContentType(context, None)
                if contenttype is not None:
                    for ct in contenttype.listContainedTypes():
                        action = AddContent(context, request, ct, 9999)
                        actions.append((action.title, action))

        actions.sort()

        weight = 999
        for _t, action in actions:
            weight = weight + 1
            action.weight = weight
            yield action
コード例 #2
0
ファイル: indexes.py プロジェクト: Zojax/zojax.content.draft
    def __init__(self, context, default=None):
        self.value = default
        if IDraftedContent.providedBy(context):
            return

        _context = removeSecurityProxy(context)

        ct = IContentType(_context, None)
        if ct is None:
            return

        perms = {}
        for ct in ct.listContainedTypes(False):
            dct = queryUtility(IDraftContentType, ct.name)
            if dct is not None:
                # do not check permission
                if IDraftedContentType.providedBy(ct):
                    interface.noLongerProvides(ct, IDraftedContentType)
                ct.permission = None
                if not ct.isAvailable():
                    continue

                if dct.publish:
                    perms[dct.publish] = 1

        principals = {}
        for permission in perms.keys():
            principals.update(
                [(user, 1) for user in getAccessList(_context, permission)])

        if principals:
            self.value = principals.keys()
コード例 #3
0
ファイル: adding.py プロジェクト: Zojax/zojax.content.browser
    def addingInfo(self):
        request = self.request
        container = self.context
        url = absoluteURL(container, request)

        contenttype = IContentType(container, None)

        if contenttype is None:
            return []

        result = []
        for ptype in contenttype.listContainedTypes():
            if ptype.addform:
                action = '%s/+/%s'%(url, ptype.addform)
            else:
                action = '%s/+/%s/'%(url, ptype.name)

            result.append({'id': ptype.name,
                           'title': ptype.title,
                           'description': ptype.description,
                           'selected': False,
                           'has_custom_add_view': True,
                           'action': action,
                           'icon': queryMultiAdapter(
                               (ptype, request), name='zmi_icon'),
                           'contenttype': ptype})

        result.sort(lambda a, b: cmp(a['title'], b['title']))
        return result
コード例 #4
0
    def update(self):
        super(Contents, self).update()

        item = IItem(self.context, None)
        if item is not None:
            self.content_title = item.title or self.context.__name__
            self.content_description = item.description
        else:
            dc = IDCDescriptiveProperties(self.context, None)
            if dc is not None:
                self.content_title = dc.title
                self.content_description = dc.description

        contenttype = IContentType(self.context, None)
        try:
            contenttype.listContainedTypes().next()
            self.hasAdding = True
        except:
            self.hasAdding = False
コード例 #5
0
    def __call__(self, context):
        contenttype = IContentType(context, None)
        if contenttype is None:
            return SimpleVocabulary([])

        result = []
        for ptype in contenttype.listContainedTypes():
            result.append((ptype.title, ptype.name))

        result.sort()
        return SimpleVocabulary([
                SimpleTerm(name, name, title) for title, name in result])