Beispiel #1
0
 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
Beispiel #2
0
 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)
Beispiel #3
0
 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
Beispiel #4
0
    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&nbsp;</span>'
                + '<span class="sort_surname">%s&nbsp;</span>'
                + '<span class="sort_email">&lt;%s&gt;</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
Beispiel #5
0
 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
Beispiel #6
0
 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
Beispiel #7
0
 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
Beispiel #8
0
 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
Beispiel #9
0
 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
Beispiel #10
0
 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)
Beispiel #11
0
 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)
Beispiel #12
0
 def next(self, request):
     return HTTPFound(make_url(request.request, node=self.model.__parent__))
Beispiel #13
0
 def add_target(self):
     return make_url(self.request, node=self.model.root["users"], query=make_query(factory=u"user"))