--- 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
--- 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
--- 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':
--- 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
--- 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()
--- 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]
--- 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'<h1 class="vtitle">%s</h1>\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'</body>')
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'<td class="navcol"><div class="navboxes">\n')
@@ -241,7 +241,7 @@
w(u'<table width="100%" height="100%" border="0"><tr>\n')
w(u'<td class="navcol">\n')
self.topleft_header()
- boxes = list(self.vreg['boxes'].possible_vobjects(
+ boxes = list(self.vreg['boxes'].poss_visible_objects(
self.req, rset=self.rset, view=view, context='left'))
if boxes:
w(u'<div class="navboxes">\n')
@@ -256,9 +256,9 @@
w(u'<h1 class="vtitle">%s</h1>' % xml_escape(vtitle))
def topleft_header(self):
- logo = self.vreg['components'].select_vobject('logo', self.req,
+ logo = self.vreg['components'].select_or_none('logo', self.req,
rset=self.rset)
- if logo:
+ if logo and logo.propval('visible'):
self.w(u'<table id="header"><tr>\n')
self.w(u'<td>')
logo.render(w=self.w)
@@ -328,29 +328,29 @@
"""build the top menu with authentification info and the rql box"""
self.w(u'<table id="header"><tr>\n')
self.w(u'<td id="firstcolumn">')
- logo = self.vreg['components'].select_vobject(
+ logo = self.vreg['components'].select_or_none(
'logo', self.req, rset=self.rset)
- if logo:
+ if logo and logo.propval('visible'):
logo.render(w=self.w)
self.w(u'</td>\n')
# appliname and breadcrumbs
self.w(u'<td id="headtext">')
for cid in ('appliname', 'breadcrumbs'):
- comp = self.vreg['components'].select_vobject(
+ comp = self.vreg['components'].select_or_none(
cid, self.req, rset=self.rset)
- if comp:
+ if comp and comp.propval('visible'):
comp.render(w=self.w)
self.w(u'</td>')
# logged user and help
self.w(u'<td>\n')
- comp = self.vreg['components'].select_vobject(
+ comp = self.vreg['components'].select_or_none(
'loggeduserlink', self.req, rset=self.rset)
- if comp:
+ if comp and comp.propval('visible'):
comp.render(w=self.w)
self.w(u'</td><td>')
- helpcomp = self.vreg['components'].select_vobject(
+ helpcomp = self.vreg['components'].select_or_none(
'help', self.req, rset=self.rset)
- if helpcomp:
+ if helpcomp and helpcomp.propval('visible'):
helpcomp.render(w=self.w)
self.w(u'</td>')
# lastcolumn
@@ -404,7 +404,7 @@
def call(self, view, **kwargs):
"""by default, display informal messages in content header"""
- components = self.vreg['contentnavigation'].possible_vobjects(
+ components = self.vreg['contentnavigation'].poss_visible_objects(
self.req, rset=self.rset, view=view, context='navtop')
if components:
self.w(u'<div id="contentheader">')
@@ -420,7 +420,7 @@
id = 'contentfooter'
def call(self, view, **kwargs):
- components = self.vreg['contentnavigation'].possible_vobjects(
+ components = self.vreg['contentnavigation'].poss_visible_objects(
self.req, rset=self.rset, view=view, context='navbottom')
if components:
self.w(u'<div id="contentfooter">')
--- a/web/views/facets.py Thu Aug 13 11:07:00 2009 +0200
+++ b/web/views/facets.py Thu Aug 13 11:07:25 2009 +0200
@@ -118,9 +118,9 @@
self.w(self.bk_linkbox_template % bk_link)
def get_facets(self, rset, mainvar):
- return self.vreg['facets'].possible_vobjects(self.req, rset=rset,
- context='facetbox',
- filtered_variable=mainvar)
+ return self.vreg['facets'].poss_visible_objects(self.req, rset=rset,
+ context='facetbox',
+ filtered_variable=mainvar)
# facets ######################################################################
--- a/web/views/primary.py Thu Aug 13 11:07:00 2009 +0200
+++ b/web/views/primary.py Thu Aug 13 11:07:25 2009 +0200
@@ -71,7 +71,7 @@
def content_navigation_components(self, context):
self.w(u'<div class="%s">' % context)
- for comp in self.vreg['contentnavigation'].possible_vobjects(
+ for comp in self.vreg['contentnavigation'].poss_visible_objects(
self.req, rset=self.rset, row=self.row, view=self, context=context):
try:
comp.render(w=self.w, row=self.row, view=self)
@@ -147,7 +147,7 @@
label = display_name(self.req, rschema.type, role)
vid = dispctrl.get('vid', 'sidebox')
sideboxes.append( (label, rset, vid) )
- sideboxes += self.vreg['boxes'].possible_vobjects(
+ sideboxes += self.vreg['boxes'].poss_visible_objects(
self.req, rset=self.rset, row=self.row, view=self,
context='incontext')
return sideboxes
--- a/web/views/tableview.py Thu Aug 13 11:07:00 2009 +0200
+++ b/web/views/tableview.py Thu Aug 13 11:07:25 2009 +0200
@@ -34,7 +34,7 @@
return ()
rqlst.save_state()
mainvar, baserql = prepare_facets_rqlst(rqlst, self.rset.args)
- wdgs = [facet.get_widget() for facet in self.vreg['facets'].possible_vobjects(
+ wdgs = [facet.get_widget() for facet in self.vreg['facets'].poss_visible_objects(
self.req, rset=self.rset, context='tablefilter',
filtered_variable=mainvar)]
wdgs = [wdg for wdg in wdgs if wdg is not None]