From 05fa8bb45c966bd7649e08c8d3cf98fb21a06e15 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Dec 24 2015 09:22:03 +0000 Subject: Rework the index endpoint to use two different endpoints if you're authenticated or not --- diff --git a/pagure/templates/index_auth.html b/pagure/templates/index_auth.html new file mode 100644 index 0000000..b376dd3 --- /dev/null +++ b/pagure/templates/index_auth.html @@ -0,0 +1,82 @@ +{% extends "master.html" %} + +{% block title %}Home{% endblock %} +{% set tag = "projects" %} +{% from "_browseheader.html" import browse_header %} + + +{% block header %} + +{% endblock %} + + +{% from "_render_repo.html" import render_repos_as_card %} + +{% block content %} +
+
+ {{browse_header(select=tag)}} +
+
+
+
+

+ {{ username | avatar(36) | safe }} {{ username }} + {% if g.fas_user and g.fas_user.username == username %} + + {% endif %} +

+ +
+
+ {{ render_repos_as_card(repos, repos_length, 'Projects') }} + {{ render_repos_as_card(forks, forks_length,'Forks',) }} +
+
+
+
+ Groups {{ user.groups | length }} +
+ {% for group in user.groups %} + + {% else %} +

No group found

+ {% endfor %} +
+
+
+ {% if config.get('DATAGREPPER_URL') %} +
+
+

Contributions

+
+ + User activity graph + +
+ {% endif %} +
+
+{% endblock %} + +{% block jscripts %} + {{ super() }} + +{% endblock %} diff --git a/pagure/ui/app.py b/pagure/ui/app.py index 1420b18..15c1e1f 100644 --- a/pagure/ui/app.py +++ b/pagure/ui/app.py @@ -54,77 +54,79 @@ def index(): total_page = int(ceil(num_repos / float(limit))) - repopage = None - forkpage = None - user_repos = None - user_forks = None - total_page_repos = None - total_page_forks = None - username = None - user_repos_length = None - user_forks_length = None - if authenticated(): - username = flask.g.fas_user.username + return index_auth() - repopage = flask.request.args.get('repopage', 1) - try: - repopage = int(repopage) - except ValueError: - repopage = 1 + return flask.render_template( + 'index.html', + select="projects", + repos=repos, + repos_length=num_repos, + ) - forkpage = flask.request.args.get('forkpage', 1) - try: - forkpage = int(forkpage) - except ValueError: - forkpage = 1 - - repo_start = limit * (repopage - 1) - fork_start = limit * (forkpage - 1) - - user_repos = pagure.lib.search_projects( - SESSION, - username=username, - fork=False, - start=repo_start, - limit=limit) - user_repos_length = pagure.lib.search_projects( - SESSION, - username=username, - fork=False, - count=True) - - user_forks = pagure.lib.search_projects( - SESSION, - username=username, - fork=True, - start=fork_start, - limit=limit) - user_forks_length = pagure.lib.search_projects( - SESSION, - username=username, - fork=True, - count=True) - - total_page_repos = int(ceil(user_repos_length / float(limit))) - total_page_forks = int(ceil(user_forks_length / float(limit))) + +def index_auth(): + """ Front page for authenticated user. + """ + user = pagure.lib.search_user(SESSION, username=flask.g.fas_user.username) + if not user: + flask.abort(404, 'No user `%s` found, re-login maybe?' % username) + + repopage = flask.request.args.get('repopage', 1) + try: + repopage = int(repopage) + except ValueError: + repopage = 1 + + forkpage = flask.request.args.get('forkpage', 1) + try: + forkpage = int(forkpage) + except ValueError: + forkpage = 1 + + limit = APP.config['ITEM_PER_PAGE'] + repo_start = limit * (repopage - 1) + fork_start = limit * (forkpage - 1) + + repos = pagure.lib.search_projects( + SESSION, + username=flask.g.fas_user.username, + fork=False, + start=repo_start, + limit=limit) + repos_length = pagure.lib.search_projects( + SESSION, + username=flask.g.fas_user.username, + fork=False, + count=True) + + forks = pagure.lib.search_projects( + SESSION, + username=flask.g.fas_user.username, + fork=True, + start=fork_start, + limit=limit) + forks_length = pagure.lib.search_projects( + SESSION, + username=flask.g.fas_user.username, + fork=True, + count=True) + + total_page_repos = int(ceil(repos_length / float(limit))) + total_page_forks = int(ceil(forks_length / float(limit))) return flask.render_template( - 'index.html', + 'index_auth.html', + username=flask.g.fas_user.username, + user=user, + forks=forks, repos=repos, - total_page=total_page, - page=page, - username=username, - select="projects", repopage=repopage, forkpage=forkpage, - user_repos=user_repos, - user_forks=user_forks, total_page_repos=total_page_repos, total_page_forks=total_page_forks, - user_repos_length=user_repos_length, - user_forks_length=user_forks_length, - repos_length=num_repos, + repos_length=repos_length, + forks_length=forks_length, )