mango r244 - in branches/django: . mango www
- From: ovitters svn gnome org
- To: svn-commits-list gnome org,gnome-sysadmin gnome org
- Subject: mango r244 - in branches/django: . mango www
- Date: Mon, 23 Jun 2008 17:29:49 +0000 (UTC)
Author: ovitters
Date: Mon Jun 23 17:29:49 2008
New Revision: 244
URL: http://svn.gnome.org/viewvc/mango?rev=244&view=rev
Log:
* mango/views.py (list_users): Add pagination to list_users. This is
way more inefficient than normal models as LdapObject actually creates
an instance for every user, no matter if it is needed by the paginator
or not.
* www/list_users.xsl: Correct link to list_users view.
Modified:
branches/django/ (props changed)
branches/django/ChangeLog
branches/django/mango/views.py
branches/django/www/list_users.xsl
Modified: branches/django/mango/views.py
==============================================================================
--- branches/django/mango/views.py (original)
+++ branches/django/mango/views.py Mon Jun 23 17:29:49 2008
@@ -1,6 +1,6 @@
from django.http import HttpResponse, Http404, HttpResponseServerError, HttpResponseRedirect
from django.conf import settings
-from django.core.paginator import InvalidPage, QuerySetPaginator
+from django.core.paginator import InvalidPage, QuerySetPaginator, Paginator
from django.db.models import Q
from django.shortcuts import get_object_or_404
import datetime
@@ -81,25 +81,31 @@
def list_users(request):
doc, root = get_xmldoc('List Users', request)
- el = ET.SubElement(root, 'listusers')
+ pagenode = ET.SubElement(root, 'listusers')
l = models.LdapUtil().handle
if not l:
return HttpResponseServerError('Cannot connect to LDAP?')
- users = models.Users.search()
+ queryset = models.Users.search()
- for user in users:
- usernode = ET.SubElement(el, 'user')
+ paginator = Paginator(queryset, 25)
+ try:
+ page = paginator.page(request.GET.get('page', 1))
+ except InvalidPage:
+ raise Http404('Invalid page')
+ add_paginator_to_xml(pagenode, page)
+ for obj in page.object_list:
+ usernode = ET.SubElement(pagenode, 'user')
node = ET.SubElement(usernode, 'uid')
- node.text = user.uid
+ node.text = obj.uid
node = ET.SubElement(usernode, 'name')
- node.text = user.cn
+ node.text = obj.cn
node = ET.SubElement(usernode, 'email')
- node.text = user.mail
+ node.text = obj.mail
return get_xmlresponse(doc, "list_users.xsl")
Modified: branches/django/www/list_users.xsl
==============================================================================
--- branches/django/www/list_users.xsl (original)
+++ branches/django/www/list_users.xsl Mon Jun 23 17:29:49 2008
@@ -7,7 +7,7 @@
<xsl:include href="common.xsl" />
- <xsl:variable name="script" select="'list_users.php'"/>
+ <xsl:variable name="script" select="'.'"/>
<xsl:template match="listusers">
<xsl:apply-templates select="error"/>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]