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
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()
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
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
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])