From bdb6dc16fd01c551b2e81da7995e03bfc1bb6235 Mon Sep 17 00:00:00 2001 From: Jason McBrayer Date: Sun, 24 Jun 2018 17:07:43 -0400 Subject: [PATCH] Add paging for user pages --- brutaldon/templates/main/user.html | 8 ++++++++ brutaldon/views.py | 21 ++++++++++++++++++--- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/brutaldon/templates/main/user.html b/brutaldon/templates/main/user.html index 27cafd4..af128e6 100644 --- a/brutaldon/templates/main/user.html +++ b/brutaldon/templates/main/user.html @@ -100,5 +100,13 @@ Brutaldon - {{ user.acct }} timelime {% endif %} {% endfor %} + {% endblock %} diff --git a/brutaldon/views.py b/brutaldon/views.py index 0aa08b2..515b7c2 100644 --- a/brutaldon/views.py +++ b/brutaldon/views.py @@ -277,18 +277,33 @@ def thread(request, id): 'fullbrutalism': fullbrutalism_p(request)}) def user(request, username): - mastodon = get_mastodon(request) + try: + mastodon = get_mastodon(request) + except NotLoggedInException: + return redirect(about) try: user_dict = mastodon.account_search(username)[0] except IndexError: raise Http404("The user %s could not be found." % username) data = mastodon.account_statuses(user_dict.id) relationship = mastodon.account_relationships(user_dict.id)[0] - return render(request, 'main/user.html', + try: + prev = data[0]._pagination_prev + if len(mastodon.account_statuses(user_dict.id, + since_id=prev['since_id'])) == 0: + prev = None + except IndexError: + prev = None + try: + next = data[-1]._pagination_next + except IndexError: + next = None + return render(request, 'main/user.html', {'toots': data, 'user': user_dict, 'relationship': relationship, 'own_username': request.session['user'].acct, - 'fullbrutalism': fullbrutalism_p(request)}) + 'fullbrutalism': fullbrutalism_p(request), + 'prev': prev, 'next': next}) @never_cache