aboutsummaryrefslogtreecommitdiff
path: root/app/views
diff options
context:
space:
mode:
authorrubenwardy <rw@rubenwardy.com>2018-07-04 01:05:32 +0100
committerrubenwardy <rw@rubenwardy.com>2018-07-04 01:08:34 +0100
commit7813c766acb44a328e2a79bc95d8b949b0c1c205 (patch)
tree364bf58c6789e002cd93b723ba28a2f39ebbd1dc /app/views
parent9fc9826d3012b2551e1f36baf2ad4ad78be2cd14 (diff)
downloadcheatdb-7813c766acb44a328e2a79bc95d8b949b0c1c205.tar.xz
Add package scores and split homepage into new and popular
Diffstat (limited to 'app/views')
-rw-r--r--app/views/__init__.py5
-rw-r--r--app/views/admin.py6
-rw-r--r--app/views/packages/__init__.py2
3 files changed, 11 insertions, 2 deletions
diff --git a/app/views/__init__.py b/app/views/__init__.py
index 2001a90..3fec29f 100644
--- a/app/views/__init__.py
+++ b/app/views/__init__.py
@@ -48,8 +48,9 @@ def send_upload(path):
def home_page():
query = Package.query.filter_by(approved=True, soft_deleted=False)
count = query.count()
- packages = query.order_by(db.desc(Package.created_at)).limit(15).all()
- return render_template("index.html", packages=packages, count=count)
+ new = query.order_by(db.desc(Package.created_at)).limit(3).all()
+ popular = query.order_by(db.desc(Package.score)).limit(15).all()
+ return render_template("index.html", new=new, popular=popular, count=count)
from . import users, githublogin, packages, meta, threads, api
from . import sass, tasks, admin, notifications, tagseditor, thumbnails
diff --git a/app/views/admin.py b/app/views/admin.py
index 92ee437..532b642 100644
--- a/app/views/admin.py
+++ b/app/views/admin.py
@@ -64,6 +64,12 @@ def admin_page():
db.session.commit()
return redirect(url_for("admin_page"))
+ elif action == "recalcscores":
+ for p in Package.query.all():
+ p.recalcScore()
+
+ db.session.commit()
+ return redirect(url_for("admin_page"))
else:
flash("Unknown action: " + action, "error")
diff --git a/app/views/packages/__init__.py b/app/views/packages/__init__.py
index 4d357a6..2c8d77b 100644
--- a/app/views/packages/__init__.py
+++ b/app/views/packages/__init__.py
@@ -47,6 +47,8 @@ def build_packages_query():
if search is not None and search.strip() != "":
query = query.filter(Package.title.ilike('%' + search + '%'))
+ query = query.order_by(db.desc(Package.score))
+
return query, title
@menu.register_menu(app, ".mods", "Mods", order=11, endpoint_arguments_constructor=lambda: { 'type': 'mod' })