def index(self, format='html'): c.delegations = model.Delegation.all(instance=c.instance) if format == 'dot': c.users = model.User.all(instance=c.instance) response.content_type = "text/plain" return render("/delegation/graph.dot") elif format == 'json': c.delegations_pager = pager.delegations(c.delegations) return render_json(c.delegations_pager) else: return self.not_implemented(format=format)
def delegations(self, id, format='html'): c.page_user = get_entity_or_abort(model.User, id, instance_filter=False) require.user.show(c.page_user) scope_id = request.params.get('scope', None) if format == 'json': delegations = model.Delegation.find_by_principal(c.page_user) scope = model.Delegateable.find(scope_id) if scope_id else None if scope is not None: delegations = [d for d in delegations if d.is_match(scope)] delegations_pager = pager.delegations(delegations) return render_json(delegations_pager) c.dgbs = [] if scope_id: c.scope = forms.ValidDelegateable().to_python(scope_id) c.dgbs = [c.scope] + c.scope.children else: c.dgbs = model.Delegateable.all(instance=c.instance) c.nodeClass = democracy.DelegationNode self._common_metadata(c.page_user, member='delegations') return render("/user/delegations.html")