From 4e93a974c8d0cde824eb94241fa0cbe8ba2d059f Mon Sep 17 00:00:00 2001 From: Cédric Bonhomme Date: Mon, 29 Oct 2018 07:41:08 +0100 Subject: Added a link to the public user stream pae from the profile page. --- src/web/templates/profile_public.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/web') diff --git a/src/web/templates/profile_public.html b/src/web/templates/profile_public.html index e30ae300..e933a04b 100644 --- a/src/web/templates/profile_public.html +++ b/src/web/templates/profile_public.html @@ -1,7 +1,7 @@ {% extends "layout.html" %} {% block content %}
-

{{ user.nickname }}

+

{{ user.nickname }} / stream

-- cgit From 3ac2de8ff898cfe2df74e8f1a74dd7ef9c65fb66 Mon Sep 17 00:00:00 2001 From: Cédric Bonhomme Date: Mon, 29 Oct 2018 22:43:02 +0100 Subject: Improved the pagination and sorting of the list of articles of the public page. --- src/web/templates/feed.html | 15 ++++++--------- src/web/views/feed.py | 21 ++++++++++++++++----- 2 files changed, 22 insertions(+), 14 deletions(-) (limited to 'src/web') diff --git a/src/web/templates/feed.html b/src/web/templates/feed.html index d914b82b..31db94a5 100644 --- a/src/web/templates/feed.html +++ b/src/web/templates/feed.html @@ -55,7 +55,7 @@ - {% for article in feed.articles %} + {% for article in articles %} {{ article.title }} {{ article.date | datetime }} @@ -67,13 +67,10 @@

+
+
+ {{ pagination.links }} +
+
- {% endblock %} diff --git a/src/web/views/feed.py b/src/web/views/feed.py index 873e1eb6..385d7de2 100644 --- a/src/web/views/feed.py +++ b/src/web/views/feed.py @@ -8,6 +8,7 @@ from flask import Blueprint, render_template, flash, \ redirect, request, url_for from flask_babel import gettext from flask_login import login_required, current_user +from flask_paginate import Pagination, get_page_args import conf from lib import misc_utils, utils @@ -40,17 +41,25 @@ def feed_view(feed_id=None, user_id=None): category = None if feed.category_id: category = CategoryController(user_id).get(id=feed.category_id) - articles = ArticleController(user_id) \ - .read(feed_id=feed_id) \ - .order_by(desc("date")).all() + filters = {} + filters['feed_id'] = feed_id + articles = ArticleController(user_id).read_light(**filters) + + # Server-side pagination + page, per_page, offset = get_page_args(per_page_parameter='per_page') + pagination = Pagination(page=page, total=articles.count(), + css_framework='bootstrap3', + search=False, record_name='articles', + per_page=per_page) today = datetime.now() try: last_article = articles[0].date first_article = articles[-1].date delta = last_article - first_article - average = round(float(len(articles)) / abs(delta.days), 2) - except: + average = round(float(articles.count()) / abs(delta.days), 2) + except Exception as e: + print(e) last_article = datetime.fromtimestamp(0) first_article = datetime.fromtimestamp(0) delta = last_article - first_article @@ -60,6 +69,8 @@ def feed_view(feed_id=None, user_id=None): return render_template('feed.html', head_titles=[utils.clear_string(feed.title)], feed=feed, category=category, + articles=articles.offset(offset).limit(per_page), + pagination=pagination, first_post_date=first_article, end_post_date=last_article, average=average, delta=delta, elapsed=elapsed) -- cgit From 24ecc23ead2b7447a41227e20958222ce2a7e9ed Mon Sep 17 00:00:00 2001 From: Cédric Bonhomme Date: Mon, 29 Oct 2018 22:47:02 +0100 Subject: Removed deug print. --- src/web/views/feed.py | 1 - 1 file changed, 1 deletion(-) (limited to 'src/web') diff --git a/src/web/views/feed.py b/src/web/views/feed.py index 385d7de2..f59878b8 100644 --- a/src/web/views/feed.py +++ b/src/web/views/feed.py @@ -59,7 +59,6 @@ def feed_view(feed_id=None, user_id=None): delta = last_article - first_article average = round(float(articles.count()) / abs(delta.days), 2) except Exception as e: - print(e) last_article = datetime.fromtimestamp(0) first_article = datetime.fromtimestamp(0) delta = last_article - first_article -- cgit