summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--israwhidebroken/controllers.py14
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,