# HG changeset patch # User Sylvain Thénault # Date 1250154445 -7200 # Node ID ced3daf78e240a8fe0335235cfc7cb6b9467ed69 # Parent b260ed87a650e16a64d9d163e806d250f0f3048b# Parent 112742b3bbe1b04e894956d0bd1113c0a6b501a9 merge diff -r b260ed87a650 -r ced3daf78e24 cwvreg.py --- a/cwvreg.py Thu Aug 13 11:07:00 2009 +0200 +++ b/cwvreg.py Thu Aug 13 11:07:25 2009 +0200 @@ -52,6 +52,7 @@ def initialization_completed(self): pass + @deprecated('[3.5] select object, then use obj.render()') def render(self, __oid, req, __fallback_oid=None, rset=None, **kwargs): """select object, or fallback object if specified and the first one isn't selectable, then render it @@ -64,13 +65,14 @@ obj = self.select(__fallback_oid, req, **kwargs) return obj.render(**kwargs) + @deprecated('[3.5] use select_or_none and test for obj.propval("visible")') def select_vobject(self, oid, *args, **kwargs): selected = self.select_or_none(oid, *args, **kwargs) if selected and selected.propval('visible'): return selected return None - def possible_vobjects(self, *args, **kwargs): + def poss_visible_objects(self, *args, **kwargs): """return an ordered list of possible app objects in a given registry, supposing they support the 'visible' and 'order' properties (as most visualizable objects) @@ -78,6 +80,7 @@ return sorted([x for x in self.possible_objects(*args, **kwargs) if x.propval('visible')], key=lambda x: x.propval('order')) + possible_vobjects = deprecated('[3.5] use poss_visible_objects()')(poss_visible_objects) VRegistry.REGISTRY_FACTORY[None] = CWRegistry diff -r b260ed87a650 -r ced3daf78e24 devtools/testlib.py --- a/devtools/testlib.py Thu Aug 13 11:07:00 2009 +0200 +++ b/devtools/testlib.py Thu Aug 13 11:07:25 2009 +0200 @@ -391,18 +391,18 @@ def pactions(self, req, rset, skipcategories=('addrelated', 'siteactions', 'useractions')): return [(a.id, a.__class__) - for a in self.vreg['actions'].possible_vobjects(req, rset=rset) + for a in self.vreg['actions'].poss_visible_objects(req, rset=rset) if a.category not in skipcategories] def pactions_by_cats(self, req, rset, categories=('addrelated',)): return [(a.id, a.__class__) - for a in self.vreg['actions'].possible_vobjects(req, rset=rset) + for a in self.vreg['actions'].poss_visible_objects(req, rset=rset) if a.category in categories] def pactionsdict(self, req, rset, skipcategories=('addrelated', 'siteactions', 'useractions')): res = {} - for a in self.vreg['actions'].possible_vobjects(req, rset=rset): + for a in self.vreg['actions'].poss_visible_objects(req, rset=rset): if a.category not in skipcategories: res.setdefault(a.category, []).append(a.__class__) return res diff -r b260ed87a650 -r ced3daf78e24 doc/book/en/development/webstdlib/basetemplates.rst --- a/doc/book/en/development/webstdlib/basetemplates.rst Thu Aug 13 11:07:00 2009 +0200 +++ b/doc/book/en/development/webstdlib/basetemplates.rst Thu Aug 13 11:07:25 2009 +0200 @@ -126,8 +126,8 @@ title=False, message=False) def get_searchbox(self, view, context): - boxes = list(self.vreg.possible_vobjects('boxes', self.req, self.rset, - view=view, context=context)) + boxes = list(self.vreg.poss_visible_objects('boxes', self.req, self.rset, + view=view, context=context)) if boxes: for box in boxes: if box.id == 'search_box': diff -r b260ed87a650 -r ced3daf78e24 rset.py --- a/rset.py Thu Aug 13 11:07:00 2009 +0200 +++ b/rset.py Thu Aug 13 11:07:25 2009 +0200 @@ -83,7 +83,7 @@ try: return self._rsetactions[key] except KeyError: - actions = self.vreg['actions'].possible_vobjects( + actions = self.vreg['actions'].poss_visible_objects( self.req, rset=self, **kwargs) self._rsetactions[key] = actions return actions diff -r b260ed87a650 -r ced3daf78e24 web/test/unittest_views_actions.py --- a/web/test/unittest_views_actions.py Thu Aug 13 11:07:00 2009 +0200 +++ b/web/test/unittest_views_actions.py Thu Aug 13 11:07:25 2009 +0200 @@ -13,20 +13,20 @@ def test_view_action(self): req = self.request(__message='bla bla bla', vid='rss', rql='CWUser X') rset = self.execute('CWUser X') - vaction = [action for action in self.vreg['actions'].possible_vobjects(req, rset=rset) - if action.id == 'view'][0] + actions = self.vreg['actions'].poss_visible_objects(req, rset=rset) + vaction = [action for action in actions if action.id == 'view'][0] self.assertEquals(vaction.url(), 'http://testing.fr/cubicweb/view?rql=CWUser%20X') def test_sendmail_action(self): req = self.request() rset = self.execute('Any X WHERE X login "admin"', req=req) - self.failUnless([action for action in self.vreg['actions'].possible_vobjects(req, rset=rset) - if action.id == 'sendemail']) + actions = self.vreg['actions'].poss_visible_objects(req, rset=rset) + self.failUnless([action for action in actions if action.id == 'sendemail']) self.login('anon') req = self.request() rset = self.execute('Any X WHERE X login "anon"', req=req) - self.failIf([action for action in self.vreg['actions'].possible_vobjects(req, rset=rset) - if action.id == 'sendemail']) + actions = self.vreg['actions'].poss_visible_objects(req, rset=rset) + self.failIf([action for action in actions if action.id == 'sendemail']) if __name__ == '__main__': unittest_main() diff -r b260ed87a650 -r ced3daf78e24 web/test/unittest_views_navigation.py --- a/web/test/unittest_views_navigation.py Thu Aug 13 11:07:00 2009 +0200 +++ b/web/test/unittest_views_navigation.py Thu Aug 13 11:07:25 2009 +0200 @@ -102,12 +102,12 @@ view = mock_object(is_primary=lambda x: True) rset = self.execute('CWUser X LIMIT 1') req = self.request() - objs = self.vreg['contentnavigation'].possible_vobjects( + objs = self.vreg['contentnavigation'].poss_visible_objects( req, rset=rset, view=view, context='navtop') # breadcrumbs should be in headers by default clsids = set(obj.id for obj in objs) self.failUnless('breadcrumbs' in clsids) - objs = self.vreg['contentnavigation'].possible_vobjects( + objs = self.vreg['contentnavigation'].poss_visible_objects( req, rset=rset, view=view, context='navbottom') # breadcrumbs should _NOT_ be in footers by default clsids = set(obj.id for obj in objs) @@ -116,12 +116,12 @@ 'P value "navbottom"') # breadcrumbs should now be in footers req.cnx.commit() - objs = self.vreg['contentnavigation'].possible_vobjects( + objs = self.vreg['contentnavigation'].poss_visible_objects( req, rset=rset, view=view, context='navbottom') clsids = [obj.id for obj in objs] self.failUnless('breadcrumbs' in clsids) - objs = self.vreg['contentnavigation'].possible_vobjects( + objs = self.vreg['contentnavigation'].poss_visible_objects( req, rset=rset, view=view, context='navtop') clsids = [obj.id for obj in objs] diff -r b260ed87a650 -r ced3daf78e24 web/views/basetemplates.py --- a/web/views/basetemplates.py Thu Aug 13 11:07:00 2009 +0200 +++ b/web/views/basetemplates.py Thu Aug 13 11:07:25 2009 +0200 @@ -113,9 +113,9 @@ if vtitle: w(u'

%s

\n' % xml_escape(vtitle)) # display entity type restriction component - etypefilter = self.vreg['components'].select_vobject( + etypefilter = self.vreg['components'].select_or_none( 'etypenavigation', self.req, rset=self.rset) - if etypefilter: + if etypefilter and etypefilter.propval('visible'): etypefilter.render(w=w) self.nav_html = UStringIO() if view and view.need_navigation: @@ -172,7 +172,7 @@ self.w(u'') def nav_column(self, view, context): - boxes = list(self.vreg['boxes'].possible_vobjects( + boxes = list(self.vreg['boxes'].poss_visible_objects( self.req, rset=self.rset, view=view, context=context)) if boxes: self.w(u'