# HG changeset patch # User Sylvain Thénault # Date 1252501678 -7200 # Node ID ed303cf3a048ffd312839cdb93b3d8edfa1b37ba # Parent 3cda74b5534cc360582b0d9af0106d040eff1347# Parent 996c1ec7376cb0137a9ac35627aefb382378e179 backport stable diff -r 3cda74b5534c -r ed303cf3a048 __pkginfo__.py diff -r 3cda74b5534c -r ed303cf3a048 debian/changelog --- a/debian/changelog Wed Sep 09 14:38:50 2009 +0200 +++ b/debian/changelog Wed Sep 09 15:07:58 2009 +0200 @@ -1,3 +1,9 @@ +cubicweb (3.4.7-1) unstable; urgency=low + + * new upstream release + + -- Sylvain Thénault Wed, 09 Sep 2009 14:08:41 +0200 + cubicweb (3.4.6-1) unstable; urgency=low * new upstream release diff -r 3cda74b5534c -r ed303cf3a048 entity.py --- a/entity.py Wed Sep 09 14:38:50 2009 +0200 +++ b/entity.py Wed Sep 09 15:07:58 2009 +0200 @@ -682,14 +682,16 @@ self.set_related_cache(rtype, role, rset) return self.related(rtype, role, limit, entities) - def related_rql(self, rtype, role='subject'): + def related_rql(self, rtype, role='subject', targettypes=None): rschema = self.schema[rtype] if role == 'subject': - targettypes = rschema.objects(self.e_schema) + if targettypes is None: + targettypes = rschema.objects(self.e_schema) restriction = 'E eid %%(x)s, E %s X' % rtype card = greater_card(rschema, (self.e_schema,), targettypes, 0) else: - targettypes = rschema.subjects(self.e_schema) + if targettypes is None: + targettypes = rschema.subjects(self.e_schema) restriction = 'E eid %%(x)s, X %s E' % rtype card = greater_card(rschema, targettypes, (self.e_schema,), 1) if len(targettypes) > 1: diff -r 3cda74b5534c -r ed303cf3a048 sobjects/supervising.py --- a/sobjects/supervising.py Wed Sep 09 14:38:50 2009 +0200 +++ b/sobjects/supervising.py Wed Sep 09 15:07:58 2009 +0200 @@ -23,6 +23,8 @@ accepts = ('Any',) def call(self, session, *args): + if session.is_super_session or session.repo.config.repairing: + return # ignore changes triggered by hooks or maintainance shell dest = self.config['supervising-addrs'] if not dest: # no supervisors, don't do this for nothing... return diff -r 3cda74b5534c -r ed303cf3a048 test/unittest_entity.py --- a/test/unittest_entity.py Wed Sep 09 14:38:50 2009 +0200 +++ b/test/unittest_entity.py Wed Sep 09 15:07:58 2009 +0200 @@ -182,15 +182,16 @@ from cubicweb.entities import fetch_config Personne = self.vreg['etypes'].etype_class('Personne') Note = self.vreg['etypes'].etype_class('Note') + self.failUnless(issubclass(self.vreg['etypes'].etype_class('SubNote'), Note)) Personne.fetch_attrs, Personne.fetch_order = fetch_config(('nom', 'type')) Note.fetch_attrs, Note.fetch_order = fetch_config(('type',)) - aff = self.add_entity('Personne', nom=u'pouet') - self.assertEquals(aff.related_rql('evaluee'), + p = self.add_entity('Personne', nom=u'pouet') + self.assertEquals(p.related_rql('evaluee'), 'Any X,AA,AB ORDERBY AA ASC WHERE E eid %(x)s, E evaluee X, ' 'X type AA, X modification_date AB') Personne.fetch_attrs, Personne.fetch_order = fetch_config(('nom', )) # XXX - self.assertEquals(aff.related_rql('evaluee'), + self.assertEquals(p.related_rql('evaluee'), 'Any X,AA ORDERBY Z DESC WHERE X modification_date Z, E eid %(x)s, E evaluee X, X modification_date AA') def test_entity_unrelated(self): diff -r 3cda74b5534c -r ed303cf3a048 web/data/cubicweb.edition.js --- a/web/data/cubicweb.edition.js Wed Sep 09 14:38:50 2009 +0200 +++ b/web/data/cubicweb.edition.js Wed Sep 09 15:07:58 2009 +0200 @@ -255,6 +255,11 @@ updateInlinedEntitiesCounters(rtype); reorderTabindex(); form.trigger('inlinedform-added'); + // if the inlined form contains a file input, we must force + // the form enctype to multipart/form-data + if (form.find('input:file').length) { + form.closest('form').attr('enctype', 'multipart/form-data'); + } postAjaxLoad(dom); }); d.addErrback(function (xxx) { diff -r 3cda74b5534c -r ed303cf3a048 web/data/cubicweb.facets.js --- a/web/data/cubicweb.facets.js Wed Sep 09 14:38:50 2009 +0200 +++ b/web/data/cubicweb.facets.js Wed Sep 09 15:07:58 2009 +0200 @@ -66,6 +66,7 @@ extraparams['divid'] = divid; copyParam(zipped, extraparams, 'divid'); copyParam(zipped, extraparams, 'subvid'); + copyParam(zipped, extraparams, 'fromformfilter'); // paginate used to know if the filter box is acting, in which case we // want to reload action box to match current selection (we don't want // this from a table filter) diff -r 3cda74b5534c -r ed303cf3a048 web/uicfg.py diff -r 3cda74b5534c -r ed303cf3a048 web/views/tableview.py --- a/web/views/tableview.py Wed Sep 09 14:38:50 2009 +0200 +++ b/web/views/tableview.py Wed Sep 09 15:07:58 2009 +0200 @@ -51,6 +51,7 @@ """display a form to filter table's content. This should only occurs when a context eid is given """ + self.req.add_css('cubicweb.facets.css') self.req.add_js( ('cubicweb.ajax.js', 'cubicweb.facets.js')) # drop False / None values from vidargs vidargs = dict((k, v) for k, v in vidargs.iteritems() if v) @@ -58,7 +59,9 @@ xml_escape(dumps([divid, 'table', False, vidargs]))) self.w(u'
' % (divid, hidden and 'hidden' or '')) self.w(u'' % divid) - filter_hiddens(self.w, facets=','.join(wdg.facet.id for wdg in fwidgets), baserql=baserql) + self.w(u'') + filter_hiddens(self.w, facets=','.join(wdg.facet.id for wdg in fwidgets), + baserql=baserql) self.w(u'\n') self.w(u'\n') for wdg in fwidgets: @@ -138,7 +141,6 @@ actions += self.form_filter(divid, displaycols, displayfilter, displayactions) elif displayfilter: - req.add_css('cubicweb.facets.css') actions += self.show_hide_actions(divid, True) self.w(u'