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">') |