From 3dfea22046f786713dc62a25697dff9b6637bf25 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Wed, 17 Jun 2026 22:12:05 +0200 Subject: [PATCH] feat: Sortierung nach Beliebtheit im Frontend-Filter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Dropdown: Neueste zuerst / ๐Ÿ‘ Beliebteste / ๐Ÿ‘ Meist gesehen - Beliebteste: likes DESC, views DESC, published_at DESC - Meist gesehen: views DESC, published_at DESC - Cross-Filter: Sort-Parameter bleibt bei Halle/Kategorie-Wechsel erhalten - Reset-Link erscheint bei aktiver Sortierung --- app.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/app.py b/app.py index 28caaf0..9052802 100644 --- a/app.py +++ b/app.py @@ -1605,6 +1605,7 @@ def public_frontend(): # Filters halle_filter = request.args.get("halle", "").strip() cat_filter = request.args.get("cat", "").strip() + sort = request.args.get("sort", "neu").strip() query = "SELECT * FROM submissions WHERE status='published' AND deleted_at IS NULL" params = [] @@ -1614,7 +1615,12 @@ def public_frontend(): if cat_filter: query += " AND category = ?" params.append(cat_filter) - query += " ORDER BY published_at DESC LIMIT 50" + if sort == "beliebt": + query += " ORDER BY likes DESC, views DESC, published_at DESC LIMIT 50" + elif sort == "gesehen": + query += " ORDER BY views DESC, published_at DESC LIMIT 50" + else: + query += " ORDER BY published_at DESC LIMIT 50" rows = db.execute(query, params).fetchall() # Get available filter values โ€” group by hall number (H1-H7) @@ -1675,7 +1681,20 @@ def public_frontend(): selected = " selected" if cat_filter == c else "" filter_html += f'' filter_html += ' ' - if halle_filter or cat_filter: + # Sort dropdown + filter_html += '๐Ÿ”ฝ Sortierung: ' + filter_html += '
' + if halle_filter: + filter_html += f'' + if cat_filter: + filter_html += f'' + filter_html += '
' + + if halle_filter or cat_filter or sort != "neu": filter_html += 'โœ• Filter zurรผcksetzen' filter_html += ""