From c9fe6a680f0c2547157db0825dde93471704c609 Mon Sep 17 00:00:00 2001 From: François Schmidts Date: Sun, 31 Jan 2016 03:11:42 +0100 Subject: decommissionning old home --- src/web/templates/home.html | 153 +++++++------------------------------------ src/web/templates/home2.html | 22 ------- src/web/views/views.py | 120 ++------------------------------- 3 files changed, 27 insertions(+), 268 deletions(-) delete mode 100644 src/web/templates/home2.html (limited to 'src') diff --git a/src/web/templates/home.html b/src/web/templates/home.html index 6b136870..4389ae6f 100644 --- a/src/web/templates/home.html +++ b/src/web/templates/home.html @@ -1,131 +1,22 @@ -{% extends "layout.html" %} -{% block content %} -{% if feeds|count == 0 %} -
-

{{ _("You don't have any feeds.") }}

-

{{ _('Add some') }}, {{ _('or') }} {{ _('upload an OPML file.') }}

-
-{% else %} -
-
- - - {% with messages = get_flashed_messages(with_categories=true) %} - {% if messages %} -
- {% block messages %} - {{ super() }} - {% endblock %} -
- {% endif %} - {% endwith %} -
- - {% if articles | count != 0%} -
- - - - - - - - - - - {% for article in articles %} - - - - - - - {% endfor %} - -
{{ _('Feed') }}{{ _('Article') }}{{ _('Date') }}
- - {% if article.like %} - - {% else %} - - {% endif %} - {% if article.readed %} - - {% else %} - - {% if filter_ == 'all' %}{% endif %} - {% endif %} - - - {% if article.source.icon_url %} - - {% else %} - - {% endif %} - - {{ article.title|safe }} - {{ article.date|datetime }}
-
- {% endif %} -
-
-
- -{% endif %} -{% endblock %} + + + + {% block head %} + + + + + JARR{% if head_titles %} - {{ ' - '.join(head_titles) }}{% endif %} + + + + + + + {% endblock %} + + +
+ + + diff --git a/src/web/templates/home2.html b/src/web/templates/home2.html deleted file mode 100644 index 4389ae6f..00000000 --- a/src/web/templates/home2.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - {% block head %} - - - - - JARR{% if head_titles %} - {{ ' - '.join(head_titles) }}{% endif %} - - - - - - - {% endblock %} - - -
- - - diff --git a/src/web/views/views.py b/src/web/views/views.py index 1aed912d..e09d2696 100644 --- a/src/web/views/views.py +++ b/src/web/views/views.py @@ -29,7 +29,6 @@ __license__ = "AGPLv3" import os import logging import datetime -from collections import OrderedDict from bootstrap import application as app, db from flask import render_template, request, flash, session, \ @@ -47,7 +46,7 @@ import conf from web.lib.utils import redirect_url from web import utils, notifications, export from web.lib.view_utils import etag_match -from web.models import User, Feed, Article, Role +from web.models import User, Article, Role from web.forms import SignupForm, SigninForm from web.controllers import UserController, FeedController, \ @@ -234,10 +233,11 @@ from calendar import timegm from flask import jsonify -@app.route('/home2') +@app.route('/') @login_required -def new_home(): - return render_template('home2.html') +@etag_match +def home(): + return render_template('home.html') @app.route('/menu') @@ -337,116 +337,6 @@ def mark_all_as_read(): return articles -@etag_match -def render_home(filters=None, head_titles=None, - page_to_render='home', **kwargs): - if filters is None: - filters = {} - if head_titles is None: - head_titles = [] - feed_contr = FeedController(g.user.id) - arti_contr = ArticleController(g.user.id) - feeds = {feed.id: feed.title for feed in feed_contr.read()} - - in_error = {feed.id: feed.error_count for feed in - feed_contr.read(error_count__gt=2)} - - filter_ = request.args.get('filter_', - 'unread' if page_to_render == 'home' else 'all') - sort_ = request.args.get('sort_', 'date') - feed_id = int(request.args.get('feed_id', 0)) - limit = request.args.get('limit', 1000) - - if filter_ != 'all': - filters['readed'] = filter_ == 'read' - if feed_id: - filters['feed_id'] = feed_id - head_titles.append(feed_contr.get(id=feed_id).title) - - sort_param = {"feed": Feed.title.desc(), - "date": Article.date.desc(), - "article": Article.title.desc(), - "-feed": Feed.title.asc(), - "-date": Article.date.asc(), - "-article": Article.title.asc() - }.get(sort_, Article.date.desc()) - - articles = arti_contr.read(**filters).join(Article.source). \ - order_by(sort_param) - if limit != 'all': - limit = int(limit) - articles = articles.limit(limit) - - def gen_url(filter_=filter_, sort_=sort_, limit=limit, feed_id=feed_id, - **kwargs): - o_kwargs = OrderedDict() - for key in sorted(kwargs): - o_kwargs[key] = kwargs[key] - if page_to_render == 'search': - o_kwargs['query'] = request.args.get('query', '') - o_kwargs['search_title'] = request.args.get('search_title', 'off') - o_kwargs['search_content'] = request.args.get( - 'search_content', 'off') - # if nor title and content are selected, selecting title - if o_kwargs['search_title'] == o_kwargs['search_content'] == 'off': - o_kwargs['search_title'] = 'on' - o_kwargs['filter_'] = filter_ - o_kwargs['sort_'] = sort_ - o_kwargs['limit'] = limit - o_kwargs['feed_id'] = feed_id - return url_for(page_to_render, **o_kwargs) - - articles = list(articles) - if (page_to_render == 'home' and feed_id or page_to_render == 'search') \ - and filter_ != 'all' and not articles: - return redirect(gen_url(filter_='all')) - - return render_template('home.html', gen_url=gen_url, - feed_id=feed_id, page_to_render=page_to_render, - filter_=filter_, limit=limit, feeds=feeds, - unread=arti_contr.count_by_feed(readed=False), - articles=articles, in_error=in_error, - head_titles=head_titles, sort_=sort_, **kwargs) - - -@app.route('/') -@login_required -def home(): - "Home page for connected users. Displays by default unread articles." - return render_home() - - -@app.route('/favorites') -@login_required -def favorites(): - return render_home({'like': True}, [gettext('Favorites')], 'favorites') - - -@app.route('/search', methods=['GET']) -@login_required -def search(): - "Search articles corresponding to the query." - if 'query' not in request.args: - flash(gettext("No text to search were provided."), "warning") - return render_home() - query = request.args['query'] - filters = {} - search_title = request.args.get('search_title', 'off') - search_content = request.args.get('search_content', 'off') - if search_title == 'on': - filters['title__ilike'] = "%%%s%%" % query - if search_content == 'on': - filters['content__ilike'] = "%%%s%%" % query - if len(filters) == 0: - search_title = 'on' - filters['title__ilike'] = "%%%s%%" % query - if len(filters) > 1: - filters = {"__or__": filters} - return render_home(filters, ["%s %s" % (gettext('Search:'), query)], - 'search', search_query=query, search_title=search_title, - search_content=search_content) - - @app.route('/fetch', methods=['GET']) @app.route('/fetch/', methods=['GET']) @login_required -- cgit