Skip to content
Snippets Groups Projects
Commit 265e1ad99d07 authored by Adrien Di Mascio's avatar Adrien Di Mascio
Browse files

[entities] minor refactoring: next_entity and previous_entity actually share 99% of the code

parent 3ebe83f66291
No related branches found
No related tags found
No related merge requests found
......@@ -98,6 +98,5 @@
return []
# IPrevNext interface #####################################################
def next_entity(self):
def _sibling_entry(self, order, operator):
if self.entry_of:
......@@ -103,6 +102,7 @@
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})
rql = ('Any B ORDERBY B %s LIMIT 1 '
'WHERE B is BlogEntry, B entry_of BL, BL eid %%(blog)s, '
'B eid %s %%(eid)s')
rset = self.req.execute(rql % (order, operator),
{'blog': self.entry_of[0].eid, 'eid': self.eid})
else:
......@@ -108,8 +108,7 @@
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})
rql = ('Any B ORDERBY B %s LIMIT 1 '
'WHERE B is BlogEntry, B eid %s %%(eid)s')
rset = self.req.execute(rql % (order, operator), {'eid': self.eid})
if rset:
return rset.get_entity(0,0)
......@@ -113,4 +112,7 @@
if rset:
return rset.get_entity(0,0)
def next_entity(self):
return self._sibling_entry('ASC', '>')
def previous_entity(self):
......@@ -116,13 +118,2 @@
def previous_entity(self):
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)
return self._sibling_entry('DESC', '<')
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment