From 2faa0e42195fdf46ff6e647c250da7d438798c59 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Sun, 12 Jul 2020 17:56:06 +0100 Subject: Fix query sorting further --- app/querybuilder.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'app/querybuilder.py') 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() -- cgit v1.2.3