aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/models.py4
-rw-r--r--app/querybuilder.py19
2 files changed, 12 insertions, 11 deletions
diff --git a/app/models.py b/app/models.py
index ea78638..3e71c75 100644
--- a/app/models.py
+++ b/app/models.py
@@ -340,7 +340,7 @@ provides = db.Table("provides",
db.Column("metapackage_id", db.Integer, db.ForeignKey("meta_package.id"), primary_key=True)
)
-tags = db.Table("tags",
+Tags = db.Table("tags",
db.Column("tag_id", db.Integer, db.ForeignKey("tag.id"), primary_key=True),
db.Column("package_id", db.Integer, db.ForeignKey("package.id"), primary_key=True)
)
@@ -472,7 +472,7 @@ class Package(db.Model):
dependencies = db.relationship("Dependency", backref="depender", lazy="dynamic", foreign_keys=[Dependency.depender_id])
- tags = db.relationship("Tag", secondary=tags, lazy="select",
+ tags = db.relationship("Tag", secondary=Tags, lazy="select",
backref=db.backref("packages", lazy=True))
releases = db.relationship("PackageRelease", backref="package",
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()