diff options
-rw-r--r-- | israwhidebroken/controllers.py | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/israwhidebroken/controllers.py b/israwhidebroken/controllers.py index 9727b47..24dad52 100644 --- a/israwhidebroken/controllers.py +++ b/israwhidebroken/controllers.py @@ -16,17 +16,13 @@ class Root(controllers.RootController): # Main index page @expose(template="israwhidebroken.templates.index") def index(self, c=None): - c = to_int(c) - # FIXME This is really, really stupid - use a LIMIT or something - composelist = sorted(set([t.compose_id for t in Tree.select()])) if not c: - c = composelist[-1] - prev = composelist[-2] + c = Tree.select().max('compose_id') next = None - elif c in composelist: - idx = composelist.index(c) - prev = (idx > 0) and composelist[idx-1] or None - next = (idx+1 < len(composelist)) and composelist[idx+1] or None + else: + c = to_int(c) + next = Tree.select(Tree.q.compose_id > c).min('compose_id') + prev = Tree.select(Tree.q.compose_id < c).max('compose_id') # FIXME BLUH WIDGETIFY THIS return dict(c=c, prev=prev, next=next, in_qa='qa' in identity.current.groups, |