web/views/tabs.py
branchtls-sprint
changeset 782 01801a10c567
parent 771 ae1b0081ff30
child 838 f2c56312b03a
equal deleted inserted replaced
775:ed106bb2dcd3 782:01801a10c567
     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 abstract_has_related_entities
    15 from cubicweb.selectors import has_related_entities
       
    16 from cubicweb.common.view import EntityView
    15 from cubicweb.common.view import EntityView
    17 from cubicweb.common.utils import HTMLHead
    16 from cubicweb.common.utils import HTMLHead
    18 from cubicweb.common.uilib import rql_for_eid
    17 from cubicweb.common.uilib import rql_for_eid
    19 
    18 
    20 from cubicweb.web.views.basecontrollers import JSonController
    19 from cubicweb.web.views.basecontrollers import JSonController
   142     Then, just define as below, and declare this being the tab content :
   141     Then, just define as below, and declare this being the tab content :
   143 
   142 
   144     class ProjectScreenshotTab(DataDependantTab, ProjectScreenshotsView):
   143     class ProjectScreenshotTab(DataDependantTab, ProjectScreenshotsView):
   145         id = 'screenshots_tab'
   144         id = 'screenshots_tab'
   146     """
   145     """
   147     # XXX needs to be generalized
   146     __select__ = EntityView.__select__ & abstract_has_related_entities()
   148     @objectify_selector
   147                                                           
   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()
       
   155     vid = 'list'
   148     vid = 'list'
   156 
   149 
   157     def cell_call(self, row, col):
   150     def cell_call(self, row, col):
   158         rset = self.entity(row, col).related(self.rtype, role(self))
   151         rset = self.entity(row, col).related(self.rtype, role(self))
   159         self.w(u'<div class="mainInfo">')
   152         self.w(u'<div class="mainInfo">')