def items(self): ret = list() for i in range(10): item_target = make_url(self.request, node=self.model.root['groups'], resource=u'group%i' % i) action_query = make_query(id=u'group%i' % i) action_target = make_url(self.request, node=self.model.root['users'], resource=self.model.__name__, query=action_query) ret.append({ 'target': item_target, 'head': 'User in Group - Group %i' % i, 'current': False, 'actions': [{ 'id': 'add_item', 'enabled': False, 'title': 'Add selected User to Group', 'target': action_target}, {'id': 'remove_item', 'enabled': True, 'title': 'Remove selected User from Group', 'target': action_target}]}) return ret
def next(self, request): if hasattr(self, 'next_resource'): url = make_url(request.request, node=self.model, resource=self.next_resource) else: url = make_url(request.request, node=self.model) return HTTPFound(url)
def menuitems(self): ret = list() count = 0 path = nodepath(self.model) if path: curpath = path[0] else: curpath = '' # work with ``self.model.root.keys()``, ``values()`` propably not works # due to the use of factory node. root = self.model.root # check for default child id if no curpath if not curpath and root.properties.default_child: curpath = root.properties.default_child # check wether to render mainmenu item title empty_title = root.properties.mainmenu_empty_title for key in root.keys(): child = root[key] if not has_permission('view', child, self.request): continue item = dict() item['id'] = key if empty_title: item['title'] = ' ' item['description'] = child.metadata.title else: item['title'] = child.metadata.title item['description'] = child.metadata.description item['url'] = make_url(self.request, path=[key]) item['selected'] = curpath == key item['first'] = count == 0 ret.append(item) count += 1 return ret
def items(self): ret = list() # XXX: use ``self.model.ldap_users.search`` for key in self.model: target = make_url(self.request, node=self.model, resource=key) attrs = self.model[key].attrs # XXX: tmp - load props each time they are accessed. attrs.context.load() # XXX: from config head = ( '<span class="sort_name">%s </span>' + '<span class="sort_surname">%s </span>' + '<span class="sort_email"><%s></span>' ) head = head % (attrs.get("cn"), attrs.get("sn"), attrs.get("mail")) # head = '%s %s %s' % (attrs.get('cn'), # attrs.get('sn'), # '<%s>' % attrs.get('mail')) # head = head.strip() ret.append( { "target": target, "head": head, "current": self.current_id == key and True or False, "actions": [{"id": "delete_item", "enabled": True, "title": "Delete User", "target": target}], } ) return ret
def form(self): resource = 'add' if self.model.__name__ is not None: resource = 'edit' # XXX: tmp - load props each time they are accessed. self.model.attrs.context.load() action = make_url(self.request, node=self.model, resource=resource) form = factory( u'form', name='userform', props={'action': action}) settings = self.model.root['settings'] attrmap = settings.attrs.users_form_attrmap if not attrmap: return form schema = self.schema required = self._required_fields protected = self._protected_fields default_chain = 'field:error:label:mode:text' for key, val in attrmap.items(): field = schema.get(key, dict()) chain = field.get('chain', default_chain) props = dict() props['label'] = val if key in required: props['required'] = 'No %s defined' % val props.update(field.get('props', dict())) value = UNSET if resource == 'edit': if key in protected: props['mode'] = 'display' value = self.model.attrs.get(key, u'') form[key] = factory( chain, value=value, props=props, custom=field.get('custom', dict())) form['save'] = factory( 'submit', props = { 'action': 'save', 'expression': True, 'handler': self.save, 'next': self.next, 'label': 'Save', }) if resource =='add': form['cancel'] = factory( 'submit', props = { 'action': 'cancel', 'expression': True, 'next': self.next, 'label': 'Cancel', 'skip': True, }) return form
def items(self): model = self.model ret = [{ 'title': model.metadata.title, 'url': make_url(self.request, node=model), 'selected': True, }] while model.__parent__ is not None: model = model.__parent__ ret.append({ 'title': model.metadata.title, 'url': make_url(self.request, node=model), 'selected': False, }) ret.pop() ret.reverse() return ret
def items(self): ret = list() addables = self.model.nodeinfo.addables if not addables: return ret for addable in addables: info = getNodeInfo(addable) if not info: continue query = make_query(factory=addable) url = make_url(self.request, node=self.model, resource='add', query=query) target = make_url(self.request, node=self.model, query=query) props = Properties() props.url = url props.target = target props.title = info.title props.icon = info.icon ret.append(props) return ret
def vocab(self): ret = list() path = nodepath(self.model) count = len(self.model.keys()) pages = count / self.contents.slicesize if count % self.contents.slicesize != 0: pages += 1 current = self.request.params.get("b_page", "0") sort = self.request.params.get("sort", "") for i in range(pages): query = make_query(b_page=str(i), sort=sort) url = make_url(self.request, path=path, query=query) ret.append({"page": "%i" % (i + 1), "current": current == str(i), "visible": True, "url": url}) return ret
def items(self): ret = list() for i in range(1000): target = make_url(self.request, node=self.model, resource=u'group%i' % i) ret.append({ 'target': target, 'head': 'Group %i' % i, 'current': self.current_id == u'group%i' % i and True or False, 'actions': [ { 'id': 'delete_item', 'enabled': True, 'title': 'Delete Group', 'target': target, } ], }) return ret
def fillchildren(self, model, path, tree): if path: curpath = path[0] else: curpath = None for key in model: node = model[key] if not has_permission('view', node, self.request): continue if not node.properties.get('in_navtree'): continue title = node.metadata.title url = make_url(self.request, node=node) curnode = curpath == key and True or False child = self.navtreeitem(title, url, nodepath(node)) child['showchildren'] = curnode if curnode: self.fillchildren(node, path[1:], child) selected = False if nodepath(self.model) == nodepath(node): selected = True child['selected'] = selected child['showchildren'] = curnode tree['children'].append(child)
def next(self, request): if request.get('from') == 'parent': url = make_url(request.request, node=self.model.__parent__) else: url = make_url(request.request, node=self.model) return HTTPFound(url)
def next(self, request): return HTTPFound(make_url(request.request, node=self.model.__parent__))
def add_target(self): return make_url(self.request, node=self.model.root["users"], query=make_query(factory=u"user"))