web/views/tabs.py
branchtls-sprint
changeset 771 ae1b0081ff30
parent 728 a95b284150d1
child 782 01801a10c567
equal deleted inserted replaced
770:193b7e981ea9 771:ae1b0081ff30
     9 
     9 
    10 from logilab.common.decorators import monkeypatch
    10 from logilab.common.decorators import monkeypatch
    11 from logilab.mtconverter import html_escape
    11 from logilab.mtconverter import html_escape
    12 
    12 
    13 from cubicweb import NoSelectableObject, role
    13 from cubicweb import NoSelectableObject, role
       
    14 from cubicweb.vregistry import objectify_selector
    14 from cubicweb.selectors import has_related_entities
    15 from cubicweb.selectors import has_related_entities
    15 from cubicweb.common.view import EntityView
    16 from cubicweb.common.view import EntityView
    16 from cubicweb.common.utils import HTMLHead
    17 from cubicweb.common.utils import HTMLHead
    17 from cubicweb.common.uilib import rql_for_eid
    18 from cubicweb.common.uilib import rql_for_eid
    18 
    19 
   141     Then, just define as below, and declare this being the tab content :
   142     Then, just define as below, and declare this being the tab content :
   142 
   143 
   143     class ProjectScreenshotTab(DataDependantTab, ProjectScreenshotsView):
   144     class ProjectScreenshotTab(DataDependantTab, ProjectScreenshotsView):
   144         id = 'screenshots_tab'
   145         id = 'screenshots_tab'
   145     """
   146     """
   146     __select__ = EntityView.__select__ & (has_related_entities,)
   147     # XXX needs to be generalized
       
   148     @objectify_selector
       
   149     def my_selector(cls, req, rset, row=None, col=0, **kwargs):
       
   150         selector = (EntityView.__select__ &
       
   151                     has_related_entities(cls.rtype, role(cls)))
       
   152         return selector(cls, req, rset, row=None, col=0, **kwargs)
       
   153 
       
   154     __select__ = my_selector()
   147     vid = 'list'
   155     vid = 'list'
   148 
   156 
   149     def cell_call(self, row, col):
   157     def cell_call(self, row, col):
   150         rset = self.entity(row, col).related(self.rtype, role(self))
   158         rset = self.entity(row, col).related(self.rtype, role(self))
   151         self.w(u'<div class="mainInfo">')
   159         self.w(u'<div class="mainInfo">')