From 3fd50c9a18ac154a8ed3656aa95215fe050aa69c Mon Sep 17 00:00:00 2001 From: InigoAllende Date: Tue, 7 Oct 2025 14:36:10 +0200 Subject: [PATCH] added `show all` option to pagination --- gdshowreelvote/blueprints/forms.py | 3 +-- gdshowreelvote/blueprints/votes.py | 14 +++++++++++--- templates/history.html | 4 +--- templates/pagination.html | 9 +++++++++ 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/gdshowreelvote/blueprints/forms.py b/gdshowreelvote/blueprints/forms.py index 7c89cdf..3eb6804 100644 --- a/gdshowreelvote/blueprints/forms.py +++ b/gdshowreelvote/blueprints/forms.py @@ -1,4 +1,3 @@ -from typing import Optional from flask_wtf import FlaskForm from wtforms import IntegerField, StringField, ValidationError from wtforms.validators import InputRequired @@ -24,4 +23,4 @@ class CastVoteForm(FlaskForm): class SelectVideoForm(FlaskForm): - video_id = IntegerField('Video ID', validators=[InputRequired()]) \ No newline at end of file + video_id = IntegerField('Video ID', validators=[InputRequired()]) diff --git a/gdshowreelvote/blueprints/votes.py b/gdshowreelvote/blueprints/votes.py index fba5d44..782f7ae 100644 --- a/gdshowreelvote/blueprints/votes.py +++ b/gdshowreelvote/blueprints/votes.py @@ -89,6 +89,7 @@ def delete_vote(video_id: int): @bp.route('/history') @auth.vote_role_required def history(): + limit = request.args.get('limit') page = int(request.args.get('page', 1)) total_video_count = DB.session.query(Video).count() total_user_votes = DB.session.query(Vote).filter(Vote.user_id == g.user.id).count() @@ -98,15 +99,22 @@ def history(): } query = DB.session.query(Vote).filter(Vote.user_id == g.user.id).order_by(Vote.created_at.desc()) + if limit == 'all': + total_results = query.count() + per_page = total_results if total_results > 0 else 1 + else: + per_page = 30 + try: - submitted_votes = DB.paginate(query, page=page, per_page=30) + submitted_votes = DB.paginate(query, page=page, per_page=per_page) except NotFound: - submitted_votes = DB.paginate(query, page=1, per_page=30) + submitted_votes = DB.paginate(query, page=1, per_page=per_page) # We probably want to add pagination here content = render_template('history.html', progress=progress, submitted_votes=submitted_votes) - if request.args.get('page'): + + if request.args.get('page') or request.args.get('limit'): return content return render_template('default.html', content = content, user=g.user) diff --git a/templates/history.html b/templates/history.html index 7b1a979..bb81cf3 100644 --- a/templates/history.html +++ b/templates/history.html @@ -29,8 +29,7 @@

Vote history

You have voted {{ progress.current }} out of {{ progress.total }} entries. {% if progress.current != progress.total %}Continue voting.{% endif %}

- -
+
{% for entry in submitted_votes.items %} @@ -43,7 +42,6 @@ {% elif entry.rating == -1 %}

Your vote: No 👎

{% else %} -

Your vote: Skip ⏭️

{% endif %}
diff --git a/templates/pagination.html b/templates/pagination.html index fd35a10..1bc1f7d 100644 --- a/templates/pagination.html +++ b/templates/pagination.html @@ -41,5 +41,14 @@ {% endif %} {% endfor %} +
{% endif %}