web/box.py
changeset 2758 8a54f91a43e1
parent 2757 c8e28e1754f0
child 2789 39712da6f397
child 3220 11b6016e3970
--- a/web/box.py	Mon Aug 10 18:00:50 2009 +0200
+++ b/web/box.py	Mon Aug 10 18:01:46 2009 +0200
@@ -171,11 +171,12 @@
         self.req.add_js('cubicweb.ajax.js')
         entity = self.entity(row, col)
         box = SideBoxWidget(display_name(self.req, self.rtype), self.id)
-        count = self.w_related(box, entity)
-        if count:
+        related = self.related_boxitems(entity)
+        unrelated = self.unrelated_boxitems(entity)
+        box.extend(related)
+        if related and unrelated:
             box.append(BoxSeparator())
-        if not self.w_unrelated(box, entity):
-            del box.items[-1] # remove useless separator
+        box.extend(unrelated)
         box.render(self.w)
 
     def div_id(self):
@@ -192,22 +193,22 @@
                                                etarget.view('incontext'))
         return RawBoxItem(label, liclass=u'invisible')
 
-    def w_related(self, box, entity):
-        """appends existing relations to the `box`"""
+    def related_boxitems(self, entity):
         rql = 'DELETE S %s O WHERE S eid %%(s)s, O eid %%(o)s' % self.rtype
-        related = self.related_entities(entity)
-        for etarget in related:
-            box.append(self.box_item(entity, etarget, rql, u'-'))
-        return len(related)
+        related = []
+        for etarget in self.related_entities(entity):
+            related.append(self.box_item(entity, etarget, rql, u'-'))
+        return related
 
-    def w_unrelated(self, box, entity):
-        """appends unrelated entities to the `box`"""
+    def unrelated_boxitems(self, entity):
         rql = 'SET S %s O WHERE S eid %%(s)s, O eid %%(o)s' % self.rtype
-        i = 0
+        unrelated = []
         for etarget in self.unrelated_entities(entity):
-            box.append(self.box_item(entity, etarget, rql, u'+'))
-            i += 1
-        return i
+            unrelated.append(self.box_item(entity, etarget, rql, u'+'))
+        return unrelated
+
+    def related_entities(self, entity):
+        return entity.related(self.rtype, get_role(self), entities=True)
 
     def unrelated_entities(self, entity):
         """returns the list of unrelated entities
@@ -229,6 +230,3 @@
                 entities.append(rset.get_entity(0, 0))
         return entities
 
-    def related_entities(self, entity):
-        return entity.related(self.rtype, get_role(self), entities=True)
-