aboutsummaryrefslogtreecommitdiff
path: root/app/querybuilder.py
diff options
context:
space:
mode:
authorrubenwardy <rw@rubenwardy.com>2020-07-12 17:56:06 +0100
committerrubenwardy <rw@rubenwardy.com>2020-07-12 17:56:06 +0100
commit2faa0e42195fdf46ff6e647c250da7d438798c59 (patch)
tree5a4e9af388d3f4a660a0065cbe294d6c2ca75213 /app/querybuilder.py
parent2e3a9035c49217c7d539417762c66a969a8d3bb1 (diff)
downloadcheatdb-2faa0e42195fdf46ff6e647c250da7d438798c59.tar.xz
Fix query sorting further
Diffstat (limited to 'app/querybuilder.py')
-rw-r--r--app/querybuilder.py19
1 files changed, 10 insertions, 9 deletions
diff --git a/app/querybuilder.py b/app/querybuilder.py
index 84513e9..26c0b84 100644
--- a/app/querybuilder.py
+++ b/app/querybuilder.py
@@ -70,7 +70,7 @@ class QueryBuilder:
query = query.filter(Package.type.in_(self.types))
if self.search:
- query = query.search(self.search, sort=True)
+ query = query.search(self.search, sort=self.order_by is None)
if self.random:
query = query.order_by(func.random())
@@ -78,7 +78,7 @@ class QueryBuilder:
to_order = None
if self.order_by is None and self.search:
pass
- if self.order_by is None or self.order_by == "score":
+ elif self.order_by is None or self.order_by == "score":
to_order = Package.score
elif self.order_by == "name":
to_order = Package.name
@@ -91,14 +91,15 @@ class QueryBuilder:
else:
abort(400)
- if self.order_dir == "asc":
- to_order = db.asc(to_order)
- elif self.order_dir == "desc":
- to_order = db.desc(to_order)
- else:
- abort(400)
+ if to_order:
+ if self.order_dir == "asc":
+ to_order = db.asc(to_order)
+ elif self.order_dir == "desc":
+ to_order = db.desc(to_order)
+ else:
+ abort(400)
- query = query.order_by(to_order)
+ query = query.order_by(to_order)
if self.author:
author = User.query.filter_by(username=self.author).first()