diff --git a/pagure/templates/index_auth.html b/pagure/templates/index_auth.html index a967e63..46c75da 100644 --- a/pagure/templates/index_auth.html +++ b/pagure/templates/index_auth.html @@ -3,6 +3,7 @@ {% block title %}Home{% endblock %} {% set tag = "projects" %} {% from "_browseheader.html" import browse_header %} +{% from "_render_repo.html" import pagination_link %} {% block header %} @@ -23,7 +24,7 @@
- My Projects {{repos | count}} + My Projects {{ repos_length }} {% if config.get('ENABLE_NEW_PROJECTS', True) and config.get('ENABLE_UI_NEW_PROJECTS', True) and repos %} @@ -92,6 +93,9 @@
{% endfor %} + {% if repos_length and repos_length > 1 %} + {{ pagination_link('repopage', repopage, total_repo_page, forkpage=forkpage) }} + {% endif %} {% else %}
@@ -112,7 +116,7 @@
- My Forks {{forks | count}} + My Forks {{ forks_length }}
{% if forks %}
@@ -179,6 +183,9 @@
{% endfor %} + {% if repos_length and repos_length > 1 %} + {{ pagination_link('forkpage', forkpage, total_fork_page, repopage=repopage) }} + {% endif %}
{% else %}
diff --git a/pagure/ui/app.py b/pagure/ui/app.py index cabee76..90195ed 100644 --- a/pagure/ui/app.py +++ b/pagure/ui/app.py @@ -126,31 +126,63 @@ def index_auth(): except ValueError: repopage = 1 - forkpage = flask.request.args.get('forkpage', 1) - try: - forkpage = int(forkpage) - if forkpage < 1: - forkpage = 1 - except ValueError: - forkpage = 1 + limit = pagure_config['ITEM_PER_PAGE'] + # PROJECTS + start = limit * (repopage - 1) repos = pagure.lib.search_projects( flask.g.session, username=flask.g.fas_user.username, exclude_groups=pagure_config.get('EXCLUDE_GROUP_INDEX'), - fork=False, private=flask.g.fas_user.username) + fork=False, + private=flask.g.fas_user.username, + start=start, + limit=limit, + ) if repos and acl: repos = _filter_acls(repos, acl, user) - repos_length = len(repos) + repos_length = pagure.lib.search_projects( + flask.g.session, + username=flask.g.fas_user.username, + exclude_groups=pagure_config.get('EXCLUDE_GROUP_INDEX'), + fork=False, + private=flask.g.fas_user.username, + count=True, + ) + total_repo_page = int( + ceil(repos_length / float(limit)) if repos_length > 0 else 1) + + # FORKS + forkpage = flask.request.args.get('forkpage', 1) + try: + forkpage = int(forkpage) + if forkpage < 1: + forkpage = 1 + except ValueError: + forkpage = 1 + start = limit * (forkpage - 1) forks = pagure.lib.search_projects( flask.g.session, username=flask.g.fas_user.username, fork=True, - private=flask.g.fas_user.username) + private=flask.g.fas_user.username, + start=start, + limit=limit, + ) - forks_length = len(forks) + forks_length = pagure.lib.search_projects( + flask.g.session, + username=flask.g.fas_user.username, + fork=True, + private=flask.g.fas_user.username, + start=start, + limit=limit, + count=True, + ) + total_fork_page = int( + ceil(forks_length / float(limit)) if forks_length > 0 else 1) watch_list = pagure.lib.user_watch_list( flask.g.session, @@ -166,9 +198,11 @@ def index_auth(): repos=repos, watch_list=watch_list, repopage=repopage, - forkpage=forkpage, repos_length=repos_length, + total_repo_page=total_repo_page, + forkpage=forkpage, forks_length=forks_length, + total_fork_page=total_fork_page, ) diff --git a/tests/test_pagure_flask_ui_app_index.py b/tests/test_pagure_flask_ui_app_index.py index 0fc69cd..03734e1 100644 --- a/tests/test_pagure_flask_ui_app_index.py +++ b/tests/test_pagure_flask_ui_app_index.py @@ -374,8 +374,9 @@ class PagureFlaskAppIndextests(tests.Modeltests): output = self.app.get('/?acl=admin') self.assertEqual(output.status_code, 200) output_text = output.get_data(as_text=True) + # The total number no longer changes self.assertIn( - 'Projects 1', + 'Projects 2', output_text) self.assertIn( 'Forks 0', @@ -433,7 +434,7 @@ class PagureFlaskAppIndextests(tests.Modeltests): self.assertEqual(output.status_code, 200) output_text = output.get_data(as_text=True) self.assertIn( - 'Projects 1', + 'Projects 2', output_text) self.assertIn( 'Forks 0',