mango r247 - in branches/django: . mango www



Author: ovitters
Date: Mon Jun 23 21:46:57 2008
New Revision: 247
URL: http://svn.gnome.org/viewvc/mango?rev=247&view=rev

Log:
	* mango/models.py (Users.add_to_xml, Modules, Modules.maintainer,
	  Modules.add_to_xml, L10nModules): Fix Users.add_to_xml to actually
	  work. For Modules, maintainerUid is a MULTI_ATTR, not memberUid.
	  Further, add a maintainer property (joins maintainerUid together).
	  Finally, add an add_to_xml helper function.
	* mango/urls.py: Add list_modules view to configuration. Also change
	the way existing views are referenced.
	* mango/views.py (list_modules): New view. Shows modules.
	* www/list_modules.xsl: Update scriptname so that links point to the
	right place.


Modified:
   branches/django/   (props changed)
   branches/django/ChangeLog
   branches/django/mango/models.py
   branches/django/mango/urls.py
   branches/django/mango/views.py
   branches/django/www/list_modules.xsl

Modified: branches/django/mango/models.py
==============================================================================
--- branches/django/mango/models.py	(original)
+++ branches/django/mango/models.py	Mon Jun 23 21:46:57 2008
@@ -226,27 +226,36 @@
 
         return self._groups
 
-    def add_to_xml(ET, formnode):
+    def add_to_xml(self, ET, formnode):
         for item in ('uid', 'cn', 'mail', 'description'):
             node = ET.SubElement(formnode, item)
-            node.text = user.__dict__.get(item, '')
+            node.text = self.__dict__.get(item, '')
 
-        for key in user.__dict__.get('authorizedKey', []):
+        for key in self.__dict__.get('authorizedKey', []):
             # TODO:
             #  - add fingerprint of above keys
             if key:
                 node = ET.SubElement(formnode, 'authorizedKey')
                 node.text = key
 
-        for group in user.groups:
+        for group in self.groups:
             node = ET.SubElement(formnode, 'group', {'cn': group.cn})
 
 class Modules(LdapObject):
     """Base class for Module information (maintainer into, etc)"""
     BASEDN = settings.MANGO_CFG['ldap_modules_basedn']
-    MULTI_ATTRS = set(('memberUid', 'objectClass'))
+    MULTI_ATTRS = set(('maintainerUid', 'objectClass'))
     FILTER = Q(objectClass='gnomeModule')
 
+    @property
+    def maintainer(self):
+        return u', '.join(self.__dict__.get('maintainerUid', []))
+
+    def add_to_xml(self, ET, formnode):
+        for item in ('cn', 'description', 'maintainer'):
+            node = ET.SubElement(formnode, item)
+            node.text = getattr(self, item, '')
+
 class L10nModules(Modules):
     """Specific filter to only return localization modules
 

Modified: branches/django/mango/urls.py
==============================================================================
--- branches/django/mango/urls.py	(original)
+++ branches/django/mango/urls.py	Mon Jun 23 21:46:57 2008
@@ -1,19 +1,20 @@
 from django.conf.urls.defaults import *
 
-from mango.views import current_datetime, list_users, list_accounts, edit_user, list_mirrors, add_mirror, edit_mirror, list_foundationmembers, view_index, add_account
+from mango import views as view
 import mango.settings
 
 urlpatterns = patterns('',
-    (r'^%s$' % mango.settings.SITE_ROOT, view_index),
-    (r'^%stime/$' % mango.settings.SITE_ROOT, current_datetime),
-    (r'^%susers/$' % mango.settings.SITE_ROOT, list_users),
-    (r'^%susers/edit/(?P<user>\w+)/$' % mango.settings.SITE_ROOT, edit_user),
-    (r'^%srequests/$' % mango.settings.SITE_ROOT, list_accounts),
-    (r'^%srequests/add/$' % mango.settings.SITE_ROOT, add_account),
-    (r'^%smirrors/$' % mango.settings.SITE_ROOT, list_mirrors),
-    (r'^%smirrors/add/$' % mango.settings.SITE_ROOT, add_mirror),
-    (r'^%smirrors/edit/(?P<pk>\d+)/$' % mango.settings.SITE_ROOT, edit_mirror),
-    (r'^%sfoundationmembers/$' % mango.settings.SITE_ROOT, list_foundationmembers),
+    (r'^%s$' % mango.settings.SITE_ROOT, view.view_index),
+    (r'^%stime/$' % mango.settings.SITE_ROOT, view.current_datetime),
+    (r'^%susers/$' % mango.settings.SITE_ROOT, view.list_users),
+    (r'^%susers/edit/(?P<user>\w+)/$' % mango.settings.SITE_ROOT, view.edit_user),
+    (r'^%srequests/$' % mango.settings.SITE_ROOT, view.list_accounts),
+    (r'^%srequests/add/$' % mango.settings.SITE_ROOT, view.add_account),
+    (r'^%smirrors/$' % mango.settings.SITE_ROOT, view.list_mirrors),
+    (r'^%smirrors/add/$' % mango.settings.SITE_ROOT, view.add_mirror),
+    (r'^%smirrors/edit/(?P<pk>\d+)/$' % mango.settings.SITE_ROOT, view.edit_mirror),
+    (r'^%smodules/$' % mango.settings.SITE_ROOT, view.list_modules),
+    (r'^%sfoundationmembers/$' % mango.settings.SITE_ROOT, view.list_foundationmembers),
     # Example:
     # (r'^mango/', include('mango.foo.urls')),
 

Modified: branches/django/mango/views.py
==============================================================================
--- branches/django/mango/views.py	(original)
+++ branches/django/mango/views.py	Mon Jun 23 21:46:57 2008
@@ -265,4 +265,20 @@
 
     return get_xmlresponse(doc, "list_foundationmembers.xsl")
 
+def list_modules(request):
+    doc, root = get_xmldoc('List Modules', request)
+    pagenode = ET.SubElement(root, 'listmodules')
 
+    queryset = models.Modules.search()
+
+    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:
+        modulenode = ET.SubElement(pagenode, 'module')
+        obj.add_to_xml(ET, modulenode)
+
+    return get_xmlresponse(doc, "list_modules.xsl")

Modified: branches/django/www/list_modules.xsl
==============================================================================
--- branches/django/www/list_modules.xsl	(original)
+++ branches/django/www/list_modules.xsl	Mon Jun 23 21:46:57 2008
@@ -7,7 +7,7 @@
  
   <xsl:include href="common.xsl" />
 
-  <xsl:variable name="script" select="'list_modules.php'"/>
+  <xsl:variable name="script" select="'.'"/>
 
   <xsl:template match="listmodules">
    <xsl:apply-templates select="error"/>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]