[views] Add ScoreGroup primary views, see #3323325
authorVladimir Popescu <vladimir.popescu@logilab.fr>
Mon, 25 Nov 2013 13:52:58 +0000
changeset 499 257f29128208
parent 498 e2e5853984ff
child 500 12633f30d0bc
[views] Add ScoreGroup primary views, see #3323325
views/primary.py
--- a/views/primary.py	Mon Nov 25 11:18:05 2013 +0000
+++ b/views/primary.py	Mon Nov 25 13:52:58 2013 +0000
@@ -757,6 +757,27 @@
 
 
 ###############################################################################
+### SCORE GROUP ###############################################################
+###############################################################################
+class ScoreGroupPrimaryView(BrainomicsPrimaryView):
+    __select__ = BrainomicsPrimaryView.__select__ & is_instance('ScoreGroup')
+
+    def iterate_attributes(self, entity):
+        yield (self._cw._('Identifier'), entity.identifier)
+        for related_ent in entity.reverse_related_score_groups:
+            yield (self._cw._(related_ent.cw_etype), related_ent.view('incontext'))
+        if entity.protocols:
+            yield (self._cw._('Protocols'), ', '.join([t.dc_title() for t in entity.protocols]))
+
+    def display_main_col(self, entity):
+        scores_rset = self._cw.execute('Any V WHERE V is ScoreValue, X scores V, X eid %(e)s',
+                                       {'e': entity.eid})
+        if scores_rset:
+            self.w(u'<h3>%s</h3>' % self._cw._('Scores'))
+            self.wview('scorevalue-table-view', rset=scores_rset)
+
+
+###############################################################################
 ### REGISTRATION CALLBACK #####################################################
 ###############################################################################
 def registration_callback(vreg):