mango r278 - in branches/django: . mango www



Author: ovitters
Date: Thu Jul 17 19:41:06 2008
New Revision: 278
URL: http://svn.gnome.org/viewvc/mango?rev=278&view=rev

Log:
	* mango/models.py (qobject_inlist): New function to create an 'inlist'
	Q object.
	* mango/urls.py: Add edit_module view to URL.
	* mango.views,py (edit_module): New view. Allows an existing module to
	be edited. Currently doesn't allow any update to be done.
	* www/list_modules.xsl: Correct link to the edit_module view.


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	Thu Jul 17 19:41:06 2008
@@ -172,6 +172,18 @@
         self.__class__.handle = l
 
 
+def qobject_inlist(**args):
+    q = None
+
+    for key, val in args.iteritems():
+        for l in val:
+            if q is None:
+                q = Q(**{key: l})
+            else:
+                q = q | Q(**{key: l})
+
+    return q
+
 class LdapObject(object):
     
     BASEDN = None

Modified: branches/django/mango/urls.py
==============================================================================
--- branches/django/mango/urls.py	(original)
+++ branches/django/mango/urls.py	Thu Jul 17 19:41:06 2008
@@ -16,6 +16,7 @@
     (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'^%smodules/edit/(?P<module>\w+)/$' % mango.settings.SITE_ROOT, view.edit_module),
     (r'^%sfoundationmembers/$' % mango.settings.SITE_ROOT, view.list_foundationmembers),
     (r'^%sfoundationmembers/add/$' % mango.settings.SITE_ROOT, view.add_foundationmember),
     (r'^%sfoundationmembers/edit/(?P<pk>\d+)/$' % mango.settings.SITE_ROOT, view.edit_foundationmember),

Modified: branches/django/mango/views.py
==============================================================================
--- branches/django/mango/views.py	(original)
+++ branches/django/mango/views.py	Thu Jul 17 19:41:06 2008
@@ -354,6 +354,33 @@
 
     return get_xmlresponse(doc, "list_modules.xsl")
 
+def edit_module(request, module):
+    doc, pagenode = get_xmldoc('Edit module', request, 'updatemodule')
+
+    modules = models.Modules.search(Q(cn=module))
+
+    if len(modules) != 1:
+        raise Http404()
+
+    module = modules[0]
+
+    for item in ('cn', 'description'):
+        ET.SubElement(pagenode, item).text = module.__dict__.get(item, '')
+
+    maintainers = module.__dict__.get('maintainerUid', [])
+    if len(maintainers):
+        filter = models.qobject_inlist(uid=maintainers)
+        maints = dict([(maint.uid, maint.cn) for maint in models.Users.search(filter)])
+
+        for m in maintainers:
+            mnode = ET.SubElement(pagenode, 'maintainerUid')
+            ET.SubElement(mnode, 'key').text = m
+            ET.SubElement(mnode, 'value').text = maints.get(m, 'Unknown Name')
+
+        # XXX - add l10n module info to XML
+
+    return get_xmlresponse(doc, "update_module.xsl")
+
 def handle_login(request):
     doc, pagenode = get_xmldoc('List Modules', request, 'loginform')
 

Modified: branches/django/www/list_modules.xsl
==============================================================================
--- branches/django/www/list_modules.xsl	(original)
+++ branches/django/www/list_modules.xsl	Thu Jul 17 19:41:06 2008
@@ -51,7 +51,7 @@
       <xsl:sort select="cn"/>
       <tr class="row-{position() mod 2}">
        <td>
-        <a href="update_module.php?cn={cn}">
+        <a href="edit/{cn}/">
          <xsl:apply-templates select="cn"/>
         </a>
        </td>



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