backport stable
authorSylvain Thénault <sylvain.thenault@logilab.fr>
Wed, 24 Mar 2010 08:42:49 +0100
changeset 4984 6cb91be7707f
parent 4983 5594aadb740e (current diff)
parent 4982 4247066fd3de (diff)
child 4986 c4ef22c85d16
child 5003 cb27485ef5ae
backport stable
.hgtags
__pkginfo__.py
debian/changelog
debian/control
hooks/test/unittest_syncschema.py
server/repository.py
web/request.py
web/views/basecontrollers.py
--- a/.hgtags	Wed Mar 24 08:40:21 2010 +0100
+++ b/.hgtags	Wed Mar 24 08:42:49 2010 +0100
@@ -111,3 +111,5 @@
 0c9ff7e496ce344b7e6bf5c9dd2847daf9034e5e cubicweb-debian-version-3.7.0-1
 6b0832bbd1daf27c2ce445af5b5222e1e522fb90 cubicweb-version-3.7.1
 9194740f070e64da5a89f6a9a31050a8401ebf0c cubicweb-debian-version-3.7.1-1
+9c342fa4f1b73e06917d7dc675949baff442108b cubicweb-version-3.6.3
+f9fce56d6a0c2bc6c4b497b66039a8bbbbdc8074 cubicweb-debian-version-3.6.3-1
--- a/debian/changelog	Wed Mar 24 08:40:21 2010 +0100
+++ b/debian/changelog	Wed Mar 24 08:42:49 2010 +0100
@@ -8,11 +8,22 @@
 
   * remove postgresql-contrib from cubicweb dependency (using tsearch
     which is included with postgres >= 8.3)
-  * add postgresql-client | mysql-client to cubicweb-server dependencies, necessary
-    for dump/restore of database
+  * add postgresql-client | mysql-client to cubicweb-server dependencies using two
+    new cubicweb-[postgresql|mysql]-support virtual packages (necessary for
+    dump/restore of database)
 
  -- Sylvain Thénault <sylvain.thenault@logilab.fr>  Tue, 16 Mar 2010 17:55:37 +0100
 
+ cubicweb (3.6.3-1) unstable; urgency=low
+
+  * remove postgresql-contrib from cubicweb dependency (using tsearch
+    which is included with postgres >= 8.3)
+  * add postgresql-client | mysql-client to cubicweb-server dependencies using two
+    new cubicweb-[postgresql|mysql]-support virtual packages (necessary for
+    dump/restore of database)
+
+ -- Sylvain Thénault <sylvain.thenault@logilab.fr>  Wed, 24 Mar 2010 07:50:47 +0100
+
 cubicweb (3.6.2-1) unstable; urgency=low
 
   * new upstream release
--- a/debian/control	Wed Mar 24 08:40:21 2010 +0100
+++ b/debian/control	Wed Mar 24 08:42:49 2010 +0100
@@ -33,7 +33,6 @@
 Conflicts: cubicweb-multisources
 Replaces: cubicweb-multisources
 Provides: cubicweb-multisources
-# postgresql/mysql -client packages for backup/restore of non local database
 Depends: ${python:Depends}, cubicweb-common (= ${source:Version}), cubicweb-ctl (= ${source:Version}), python-logilab-database, cubicweb-postgresql-support | cubicweb-mysql-support | python-pysqlite2
 Recommends: pyro, cubicweb-documentation (= ${source:Version})
 Description: server part of the CubicWeb framework
@@ -46,7 +45,7 @@
 
 Package: cubicweb-postgresql-support
 Architecture: all
-# postgresql/mysql -client packages for backup/restore of non local database
+# postgresql-client packages for backup/restore of non local database
 Depends: python-psycopg2, postgresql-client
 Description: postgres support for the CubicWeb framework
  CubicWeb is a semantic web application framework.
@@ -56,7 +55,7 @@
 
 Package: cubicweb-mysql-support
 Architecture: all
-# postgresql/mysql -client packages for backup/restore of non local database
+# mysql-client packages for backup/restore of non local database
 Depends: python-mysqldb, mysql-client
 Description: mysql support for the CubicWeb framework
  CubicWeb is a semantic web application framework.
--- a/hooks/test/unittest_syncschema.py	Wed Mar 24 08:40:21 2010 +0100
+++ b/hooks/test/unittest_syncschema.py	Wed Mar 24 08:42:49 2010 +0100
@@ -307,3 +307,6 @@
         cstr = rdef.constraint_by_type('StaticVocabularyConstraint')
         self.assertEquals(cstr.values, (u'normal', u'auto', u'new'))
         self.execute('INSERT Transition T: T name "hop", T type "new"')
+
+if __name__ == '__main__':
+    unittest_main()
--- a/server/repository.py	Wed Mar 24 08:40:21 2010 +0100
+++ b/server/repository.py	Wed Mar 24 08:42:49 2010 +0100
@@ -1003,7 +1003,11 @@
         # init edited_attributes before calling before_add_entity hooks
         entity._is_saved = False # entity has an eid but is not yet saved
         entity.edited_attributes = set(entity)
-        entity = entity.pre_add_hook()
+        entity_ = entity.pre_add_hook()
+        # XXX kill that transmutation feature !
+        if not entity_ is entity:
+            entity.__class__ = entity_.__class__
+            entity.__dict__.update(entity_.__dict__)
         eschema = entity.e_schema
         etype = str(eschema)
         source = self.locate_etype_source(etype)
--- a/skeleton/__pkginfo__.py.tmpl	Wed Mar 24 08:40:21 2010 +0100
+++ b/skeleton/__pkginfo__.py.tmpl	Wed Mar 24 08:42:49 2010 +0100
@@ -44,7 +44,7 @@
 # them to be included in the debian package
 
 __depends_cubes__ = {}
-__depends__ = {'cubicweb': '>= 3.5.0'}
+__depends__ = {'cubicweb': '>= 3.6.0'}
 __use__ = (%(dependancies)s)
 __recommend__ = ()
 
--- a/web/data/cubicweb.edition.js	Wed Mar 24 08:40:21 2010 +0100
+++ b/web/data/cubicweb.edition.js	Wed Mar 24 08:42:49 2010 +0100
@@ -35,8 +35,8 @@
  * this function is called when an AJAX form was generated to
  * make sure tabindex remains consistent
  */
-function reorderTabindex(start) {
-    var form = getNode('entityForm');
+function reorderTabindex(start, formid) {
+    var form = getNode(formid || 'entityForm');
     var inputTypes = ['INPUT', 'SELECT', 'TEXTAREA'];
     var tabindex = (start==null)?15:start;
     nodeWalkDepthFirst(form, function(elem) {
@@ -254,7 +254,7 @@
         form.css('display', 'none');
         form.insertBefore(insertBefore).slideDown('fast');
         updateInlinedEntitiesCounters(rtype, role);
-        reorderTabindex();
+        reorderTabindex(null, $(insertBefore).closest('form')[0]);
         jQuery(CubicWeb).trigger('inlinedform-added', form);
         // if the inlined form contains a file input, we must force
         // the form enctype to multipart/form-data
--- a/web/formwidgets.py	Wed Mar 24 08:40:21 2010 +0100
+++ b/web/formwidgets.py	Wed Mar 24 08:42:49 2010 +0100
@@ -263,8 +263,8 @@
     """<select>, for field having a specific vocabulary"""
     vocabulary_widget = True
 
-    def __init__(self, attrs=None, multiple=False):
-        super(Select, self).__init__(attrs)
+    def __init__(self, attrs=None, multiple=False, **kwargs):
+        super(Select, self).__init__(attrs, **kwargs)
         self._multiple = multiple
 
     def render(self, form, field, renderer):
--- a/web/request.py	Wed Mar 24 08:40:21 2010 +0100
+++ b/web/request.py	Wed Mar 24 08:42:49 2010 +0100
@@ -314,7 +314,7 @@
                 breadcrumbs.append(self.url())
             else:
                 url = self.url()
-                if breadcrumbs[-1] != url:
+                if breadcrumbs and breadcrumbs[-1] != url:
                     breadcrumbs.append(url)
 
     def last_visited_page(self):
--- a/web/views/basecontrollers.py	Wed Mar 24 08:40:21 2010 +0100
+++ b/web/views/basecontrollers.py	Wed Mar 24 08:42:49 2010 +0100
@@ -394,7 +394,14 @@
                              for key, value in extraargs.items())
         comp = self._cw.vreg[registry].select(compid, self._cw, rset=rset, **extraargs)
         extraargs = extraargs or {}
-        return comp.render(**extraargs)
+        stream = comp.set_stream()
+        comp.render(**extraargs)
+        extresources = self._cw.html_headers.getvalue(skiphead=True)
+        if extresources:
+            stream.write(u'<div class="ajaxHtmlHead">\n')
+            stream.write(extresources)
+            stream.write(u'</div>\n')
+        return stream.getvalue()
 
     @check_pageid
     @xhtmlize
--- a/web/views/schema.py	Wed Mar 24 08:40:21 2010 +0100
+++ b/web/views/schema.py	Wed Mar 24 08:42:49 2010 +0100
@@ -247,7 +247,7 @@
         self.w(u'<h2>%s</h2>' % _('Relations'))
         rset = self._cw.execute(
             'Any R,C,TT,K,D,A,RN,TTN ORDERBY RN '
-            'WHERE A is CWRelation, A description D, A composite K?, '
+            'WHERE A is CWRelation, A description D, A composite K, '
             'A relation_type R, R name RN, A to_entity TT, TT name TTN, '
             'A cardinality C, A from_entity S, S eid %(x)s',
             {'x': entity.eid})
@@ -255,7 +255,7 @@
                    displaycols=range(6), mainindex=5)
         rset = self._cw.execute(
             'Any R,C,TT,K,D,A,RN,TTN ORDERBY RN '
-            'WHERE A is CWRelation, A description D, A composite K?, '
+            'WHERE A is CWRelation, A description D, A composite K, '
             'A relation_type R, R name RN, A from_entity TT, TT name TTN, '
             'A cardinality C, A to_entity O, O eid %(x)s',
             {'x': entity.eid})