web/views/tabs.py
branchstable
changeset 3570 c31de6ea6984
parent 3569 89a60802711b
child 3576 a9ed6f7cf2c2
equal deleted inserted replaced
3569:89a60802711b 3570:c31de6ea6984
    13 from cubicweb import NoSelectableObject, role
    13 from cubicweb import NoSelectableObject, role
    14 from cubicweb.selectors import partial_has_related_entities
    14 from cubicweb.selectors import partial_has_related_entities
    15 from cubicweb.view import EntityView
    15 from cubicweb.view import EntityView
    16 from cubicweb.common import tags, uilib
    16 from cubicweb.common import tags, uilib
    17 from cubicweb.utils import make_uid
    17 from cubicweb.utils import make_uid
       
    18 from cubicweb.web.views import primary
    18 
    19 
    19 class LazyViewMixin(object):
    20 class LazyViewMixin(object):
    20     """provides two convenience methods for the tab machinery
    21     """provides two convenience methods for the tab machinery
    21     can also be used to lazy-load arbitrary views
    22     can also be used to lazy-load arbitrary views
    22     caveat : lazyview is not recursive, i.e : you can't (successfully)
    23     caveat : lazyview is not recursive, i.e : you can't (successfully)
   176         self.w(u'<div class="mainInfo">')
   177         self.w(u'<div class="mainInfo">')
   177         if self.title:
   178         if self.title:
   178             self.w(tags.h1(self.req._(self.title)))
   179             self.w(tags.h1(self.req._(self.title)))
   179         self.wview(self.vid, rset, 'noresult')
   180         self.wview(self.vid, rset, 'noresult')
   180         self.w(u'</div>')
   181         self.w(u'</div>')
       
   182 
       
   183 
       
   184 class TabedPrimaryView(TabsMixin, primary.PrimaryView):
       
   185     __abstract__ = True # don't register
       
   186 
       
   187     tabs = ['main_tab']
       
   188     default_tab = 'main_tab'
       
   189 
       
   190     def cell_call(self, row, col):
       
   191         entity = self.complete_entity(row, col)
       
   192         self.render_entity_title(entity)
       
   193         self.render_entity_metadata(entity)
       
   194         self.render_tabs(self.tabs, self.default_tab, entity)
       
   195 
       
   196 
       
   197 class PrimaryTab(primary.PrimaryView):
       
   198     id = 'main_tab'
       
   199 
       
   200     def is_primary(self):
       
   201         return True
       
   202 
       
   203     def render_entity_title(self, entity):
       
   204         pass
       
   205 
       
   206     def render_entity_metadata(self, entity):
       
   207         pass
       
   208