From d8e46270e1a879ea9a5fda8852ad7ddede95695d Mon Sep 17 00:00:00 2001 From: François Schmidts Date: Sat, 11 Apr 2015 15:20:03 +0200 Subject: regrouping favorties and home, redoing the tab selection jscode --- pyaggr3g470r/templates/favorites.html | 48 ----------------------------------- pyaggr3g470r/templates/layout.html | 27 ++++++++++---------- pyaggr3g470r/views/views.py | 26 ++++++------------- 3 files changed, 22 insertions(+), 79 deletions(-) delete mode 100644 pyaggr3g470r/templates/favorites.html (limited to 'pyaggr3g470r') diff --git a/pyaggr3g470r/templates/favorites.html b/pyaggr3g470r/templates/favorites.html deleted file mode 100644 index 210f7343..00000000 --- a/pyaggr3g470r/templates/favorites.html +++ /dev/null @@ -1,48 +0,0 @@ - {% extends "layout.html" %} -{% block content %} -
- {% if feeds|count == 0 %} - - {% else %} - - {% for feed in feeds|sort(attribute="title") %} -
-
-

{{ feed.title|safe }}

- - - -
-
- {% for number in range(0, feed.articles|length-(feed.articles|length % 3), 3) %} -
- {% for n in range(number, number+3) %} -
- {% if feed.articles[n].readed %}

{% else %}

{% endif %} - {{ feed.articles[n].title|safe }} - {% if feed.articles[n].readed %}

{% else %}{% endif %} -
{{ feed.articles[n].date | datetime }}
-
- {% endfor %} -
- {% endfor %} - {% if feed.articles|length % 3 != 0 %} -
- {% for n in range(feed.articles|length-(feed.articles|length % 3), feed.articles|length) %} -
- {% if feed.articles[n].readed %}

{% else %}

{% endif %} - {{ feed.articles[n].title|safe }} - {% if feed.articles[n].readed %}

{% else %}{% endif %} -
{{ feed.articles[n].date | datetime }}
-
- {% endfor %} -
- {% endif %} - {% endfor %} - {% endif %} -
-{% endblock %} diff --git a/pyaggr3g470r/templates/layout.html b/pyaggr3g470r/templates/layout.html index 90263fb8..f9b51127 100644 --- a/pyaggr3g470r/templates/layout.html +++ b/pyaggr3g470r/templates/layout.html @@ -6,7 +6,7 @@ - {% if head_title %}{{ head_title }} - {% endif %}pyAggr3g470r + pyAggr3g470r{% if head_title %} - {{ head_title }}{% endif %} @@ -25,7 +25,7 @@ - pyAggr3g470r + pyAggr3g470r{% if head_title %}-  {{ head_title }}{% endif %} @@ -101,18 +101,19 @@ diff --git a/pyaggr3g470r/views/views.py b/pyaggr3g470r/views/views.py index ff33b576..623cf5d4 100644 --- a/pyaggr3g470r/views/views.py +++ b/pyaggr3g470r/views/views.py @@ -224,11 +224,14 @@ def signup(): return render_template('signup.html', form=form) @app.route('/') +@app.route('/favorites') @login_required def home(): """ Home page for connected users. Displays by default unread articles. """ + favorites = request.path.startswith('/favorites') + head_title = gettext('Favorites') if favorites else '' feed_contr = FeedController(g.user.id) arti_contr = ArticleController(g.user.id) feeds = {feed.id: feed.title for feed in feed_contr.read()} @@ -237,11 +240,13 @@ def home(): in_error = {feed.id: feed.error_count for feed in feed_contr.read(error_count__gt=2)} - filter_ = request.args.get('filter_', 'unread') + filter_ = request.args.get('filter_', 'all' if favorites else 'unread') feed_id = int(request.args.get('feed', 0)) limit = request.args.get('limit', 1000) filters = {} + if favorites: + filters['like'] = True if filter_ != 'all': filters['readed'] = filter_ == 'read' if feed_id: @@ -256,12 +261,13 @@ def home(): return url_for('home', filter_=filter_, limit=limit, feed=feed) articles = list(articles) - if not articles: + if not articles and not favorites: return redirect(gen_url(filter_='all')) return render_template('home.html', gen_url=gen_url, feed_id=feed_id, filter_=filter_, limit=limit, feeds=feeds, unread=unread, articles=articles, in_error=in_error, + head_title=head_title, default_max_error = conf.DEFAULT_MAX_ERROR) @@ -348,22 +354,6 @@ def delete(article_id=None): return redirect(url_for('home')) -@app.route('/favorites', methods=['GET']) -@login_required -def favorites(): - """ - List favorites articles. - """ - feeds_with_like = Feed.query.filter(Feed.user_id == g.user.id, Feed.articles.any(like=True)) - result, nb_favorites = [], 0 - light_feed = namedtuple('Feed', ['id', 'title', 'articles'], verbose=False, rename=False) - for feed in feeds_with_like: - articles = Article.query.filter(Article.user_id == g.user.id, Article.feed_id == feed.id, Article.like == True).all() - result.append(light_feed(feed.id, feed.title, articles)) - nb_favorites += len(articles) - return render_template('favorites.html', feeds=result, nb_favorites=nb_favorites) - - @app.route('/inactives', methods=['GET']) @login_required def inactives(): -- cgit