]> git.lizzy.rs Git - cheatdb.git/commitdiff
Fix query sorting further
authorrubenwardy <rw@rubenwardy.com>
Sun, 12 Jul 2020 16:56:06 +0000 (17:56 +0100)
committerrubenwardy <rw@rubenwardy.com>
Sun, 12 Jul 2020 16:56:06 +0000 (17:56 +0100)
app/models.py
app/querybuilder.py

index ea786384dc3839e05ae897f9a6fe317d198ab7fa..3e71c750a1ab36cd7d21e7dbb057022264e9e12b 100644 (file)
@@ -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",
index 84513e9018e92260ca421a08a9cf1950321789a7..26c0b8417d871c4fcc7b49b584fa374685c7f36d 100644 (file)
@@ -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()