merge
authorSylvain Thénault <sylvain.thenault@logilab.fr>
Wed, 12 Aug 2009 18:06:23 +0200
changeset 2786 971d7c545505
parent 2785 34dfdbefcfd1 (diff)
parent 2784 f395115070c1 (current diff)
child 2787 ece5bbed3cd2
merge
server/session.py
--- a/__pkginfo__.py	Wed Aug 12 18:05:19 2009 +0200
+++ b/__pkginfo__.py	Wed Aug 12 18:06:23 2009 +0200
@@ -7,7 +7,7 @@
 distname = "cubicweb"
 modname = "cubicweb"
 
-numversion = (3, 4, 2)
+numversion = (3, 4, 3)
 version = '.'.join(str(num) for num in numversion)
 
 license = 'LGPL v2'
--- a/schema.py	Wed Aug 12 18:05:19 2009 +0200
+++ b/schema.py	Wed Aug 12 18:06:23 2009 +0200
@@ -874,6 +874,10 @@
         from <directory>
         """
         self.info('loading %s schemas', ', '.join(config.cubes()))
+        self.extrapath = {}
+        for cubesdir in config.cubes_search_path():
+            if cubesdir != config.CUBES_DIR:
+                self.extrapath[cubesdir] = 'cubes'
         if config.apphome:
             path = tuple(reversed([config.apphome] + config.cubes_path()))
         else:
--- a/server/session.py	Wed Aug 12 18:05:19 2009 +0200
+++ b/server/session.py	Wed Aug 12 18:06:23 2009 +0200
@@ -114,8 +114,9 @@
         if rcache is not None:
             rset, entities = rcache
             rset.rows.append([targeteid])
-            if isinstance(rset.description, list): # else description not set
-                rset.description.append([self.describe(targeteid)[0]])
+            if not isinstance(rset.description, list): # else description not set
+                rset.description = list(rset.description)
+            rset.description.append([self.describe(targeteid)[0]])
             rset.rowcount += 1
             targetentity = self.entity_from_eid(targeteid)
             entities.append(targetentity)
--- a/web/test/unittest_urlrewrite.py	Wed Aug 12 18:05:19 2009 +0200
+++ b/web/test/unittest_urlrewrite.py	Wed Aug 12 18:06:23 2009 +0200
@@ -29,6 +29,8 @@
         self.assertListEquals(rules, [
             ('foo' , dict(rql='Foo F')),
             ('/index' , dict(vid='index2')),
+            ('/_', dict(vid='manage')),
+            ('/_registry', dict(vid='registry')),
             ('/schema', dict(vid='schema')),
             ('/myprefs', dict(vid='propertiesform')),
             ('/siteconfig', dict(vid='systempropertiesform')),
--- a/web/test/unittest_viewselector.py	Wed Aug 12 18:05:19 2009 +0200
+++ b/web/test/unittest_viewselector.py	Wed Aug 12 18:06:23 2009 +0200
@@ -74,6 +74,7 @@
                               ('manage', startup.ManageView),
                               ('owl', owl.OWLView),
                               ('propertiesform', cwproperties.CWPropertiesForm),
+                              ('registry', startup.RegistryView),
                               ('schema', schema.SchemaView),
                               ('systempropertiesform', cwproperties.SystemCWPropertiesForm)])
 
--- a/web/views/autoform.py	Wed Aug 12 18:05:19 2009 +0200
+++ b/web/views/autoform.py	Wed Aug 12 18:06:23 2009 +0200
@@ -25,6 +25,8 @@
     * rtags (rcategories, rfields, rwidgets, inlined, rpermissions)
     * various standard form parameters
 
+    XXX s/rtags/uicfg/ ?
+
     You can also easily customise it by adding/removing fields in
     AutomaticEntityForm instances.
     """
--- a/web/views/startup.py	Wed Aug 12 18:05:19 2009 +0200
+++ b/web/views/startup.py	Wed Aug 12 18:06:23 2009 +0200
@@ -160,16 +160,21 @@
 class RegistryView(StartupView):
     id = 'registry'
     title = _('registry')
-    __select__ = match_user_groups('managers')
+    __select__ = StartupView.__select__ & match_user_groups('managers')
 
     def call(self, **kwargs):
         """The default view representing the instance's management"""
         self.w(u'<h1>%s</h1>' % _("Registry's content"))
         keys = sorted(self.vreg)
-        self.w(u'<p>%s</p>' % ' - '.join('<a href="/_registry#%s">%s</a>' % (key, key) for key in keys))
+        self.w(u'<p>%s</p>\n' % ' - '.join('<a href="/_registry#%s">%s</a>' % (key, key) for key in keys))
         for key in keys:
-            self.w(u'<a name="%s"><h2>%s</h2></a><table>' % (key,key))
-            for key, value in sorted(self.vreg[key].items()):
-                self.w(u'<tr><td>%s</td><td>%s</td></tr>' % (key, xml_escape(repr(value))))
-            self.w(u'</table>')
+            self.w(u'<h2><a name="%s">%s</a></h2>' % (key,key))
+            items = self.vreg[key].items()
+            if items:
+                self.w(u'<table><tbody>')
+                for key, value in sorted(items):
+                    self.w(u'<tr><td>%s</td><td>%s</td></tr>' % (key, xml_escape(repr(value))))
+                self.w(u'</tbody></table>\n')
+            else:
+                self.w(u'<p>Empty</p>\n')