# HG changeset patch # User Sandrine Ribeau <sandrine.ribeau@logilab.fr> # Date 1257382902 28800 # Wed Nov 04 17:01:42 2009 -0800 # Node ID 6102b385b8a3f21f56f13c09787b8f1e5c0fc9b4 # Parent c12f85ec602f06d02b8870c81302c14192fc0eec [entities] fix previous_entity and next_entity methods since entry_of is an optional relation diff --git a/entities.py b/entities.py --- a/entities.py +++ b/entities.py @@ -100,18 +100,29 @@ # IPrevNext interface ##################################################### def next_entity(self): - rql = ('Any B ORDERBY B ASC LIMIT 1 ' - 'WHERE B is BlogEntry, B entry_of BL, BL eid %(blog)s, ' - 'B eid > %(eid)s') - rset = self.req.execute(rql, {'blog': self.entry_of[0].eid, 'eid': self.eid}) + if self.entry_of: + rql = ('Any B ORDERBY B ASC LIMIT 1 ' + 'WHERE B is BlogEntry, B entry_of BL, BL eid %(blog)s, ' + 'B eid > %(eid)s') + rset = self.req.execute(rql, {'blog': self.entry_of[0].eid, 'eid': self.eid}) + else: + rql = ('Any B ORDERBY B ASC LIMIT 1 ' + 'WHERE B is BlogEntry, B eid > %(eid)s') + rset = self.req.execute(rql, {'eid': self.eid}) + if rset: return rset.get_entity(0,0) def previous_entity(self): - rql = ('Any B ORDERBY B DESC LIMIT 1 ' - 'WHERE B is BlogEntry, B entry_of BL, BL eid %(blog)s, ' - 'B eid < %(eid)s') - rset = self.req.execute(rql, {'blog': self.entry_of[0].eid, 'eid': self.eid}) + if self.entry_of: + rql = ('Any B ORDERBY B DESC LIMIT 1 ' + 'WHERE B is BlogEntry, B entry_of BL, BL eid %(blog)s, ' + 'B eid < %(eid)s') + rset = self.req.execute(rql, {'blog': self.entry_of[0].eid, 'eid': self.eid}) + else: + rql = ('Any B ORDERBY B DESC LIMIT 1 ' + 'WHERE B is BlogEntry, B eid < %(eid)s') + rset = self.req.execute(rql, {'eid': self.eid}) if rset: return rset.get_entity(0,0)