From 2bd9ab12c2f3551e6ad2ffa05282d87711adbf6b Mon Sep 17 00:00:00 2001 From: Cédric Bonhomme Date: Sat, 12 Apr 2014 16:01:13 +0200 Subject: The /home page is now loading faster. --- pyaggr3g470r/templates/home.html | 10 +++++----- pyaggr3g470r/views.py | 14 ++++++++++++-- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/pyaggr3g470r/templates/home.html b/pyaggr3g470r/templates/home.html index 6363ee06..6448fc15 100644 --- a/pyaggr3g470r/templates/home.html +++ b/pyaggr3g470r/templates/home.html @@ -1,10 +1,10 @@ {% extends "layout.html" %} {% block content %}
- {% if user.feeds.all()|count == 0 %} + {% if result|count == 0 %}

You are not subscribed to any feed. Fix this.

{% else %} - {% for feed in user.feeds|sort(attribute="title") %} + {% for feed in result|sort(attribute="title") %}

{{ feed.title|safe }}

@@ -17,7 +17,7 @@
- {% for number in range(0, feed.articles[0:9]|count-(feed.articles[0:9]|count % 3), 3) %} + {% for number in range(0, feed.articles.all()|count-(feed.articles.all()|count % 3), 3) %}
{% for n in range(number, number+3) %}
@@ -29,9 +29,9 @@ {% endfor %}
{% endfor %} - {% if feed.articles[0:9]|count % 3 != 0 %} + {% if feed.articles.all()|count % 3 != 0 %}
- {% for n in range(feed.articles[0:9]|count-(feed.articles[0:9]|count % 3), feed.articles[0:9]|count) %} + {% for n in range(feed.articles.all()|count-(feed.articles.all()|count % 3), feed.articles.all()|count) %}
{% if feed.articles[n].readed %}

{% else %}

{% endif %} {{ feed.articles[n].title|safe }} diff --git a/pyaggr3g470r/views.py b/pyaggr3g470r/views.py index c1eeec42..0e419dba 100644 --- a/pyaggr3g470r/views.py +++ b/pyaggr3g470r/views.py @@ -31,6 +31,7 @@ import datetime from flask import render_template, jsonify, request, flash, session, url_for, redirect, g, current_app, make_response from flask.ext.login import LoginManager, login_user, logout_user, login_required, current_user, AnonymousUserMixin from flask.ext.principal import Principal, Identity, AnonymousIdentity, identity_changed, identity_loaded, Permission, RoleNeed, UserNeed +from sqlalchemy import desc from werkzeug import generate_password_hash import conf @@ -167,8 +168,16 @@ def home(): The home page lists most recent articles of all feeds. """ user = User.query.filter(User.email == g.user.email).first() + result = [] + for feed in user.feeds: + new_feed = Feed() + new_feed.id = feed.id + new_feed.title = feed.title + new_feed.enabled = feed.enabled + new_feed.articles = Article.query.filter(Article.user_id == g.user.id, Article.feed_id == feed.id).order_by(desc("Article.date")).limit(9) + result.append(new_feed) unread_articles = len(Article.query.filter(Article.user_id == g.user.id, Article.readed == False).all()) - return render_template('home.html', user=user, head_title=unread_articles) + return render_template('home.html', result=result, head_title=unread_articles) @app.route('/fetch/', methods=['GET']) @app.route('/fetch/', methods=['GET']) @@ -277,7 +286,7 @@ def like(article_id=None): db.session.commit() return redirect(redirect_url()) -@app.route('/delete/', methods=['GET']) +@app.route('/delete//', methods=['GET']) @login_required def delete(article_id=None): """ @@ -522,6 +531,7 @@ def delete_feed(feed_id=None): db.session.delete(feed) db.session.commit() flash('Feed "' + feed.title + '" successfully deleted.', 'success') + return redirect(redirect_url()) @app.route('/profile/', methods=['GET', 'POST']) @login_required -- cgit