# HG changeset patch # User Ludovic Chabant # Date 1456468216 28800 # Node ID c1a94e1beb9d2e88607867a6d9b330cec1df473a # Parent dba53f0f767137a575c7c8f002d84a2f1fb78bf5 admin: Show a more classic blog post listing in FoodTruck. diff -r dba53f0f7671 -r c1a94e1beb9d bower.json --- a/bower.json Mon Feb 22 22:44:39 2016 -0800 +++ b/bower.json Thu Feb 25 22:30:16 2016 -0800 @@ -15,7 +15,7 @@ "bootstrap": "~3.3.5", "bootstrap-sass": "~3.3.5", "font-awesome": "fontawesome#~4.5.0", - "Ionicons": "ionicons#~2.0.1" + "Ionicons": "ionicons#~2.0.1", + "jquery-timeago": "^1.5.2" } } - diff -r dba53f0f7671 -r c1a94e1beb9d foodtruck/assets/js/foodtruck.js --- a/foodtruck/assets/js/foodtruck.js Mon Feb 22 22:44:39 2016 -0800 +++ b/foodtruck/assets/js/foodtruck.js Thu Feb 25 22:30:16 2016 -0800 @@ -1,5 +1,7 @@ $(document).ready(function() { + $("time.timeago").timeago(); + $('.ft-nav-toggle').click(function() { $('.ft-nav-container').toggleClass('ft-nav-enabled'); $('.ft-nav').toggleClass('ft-nav-enabled'); diff -r dba53f0f7671 -r c1a94e1beb9d foodtruck/assets/sass/foodtruck/_base.scss --- a/foodtruck/assets/sass/foodtruck/_base.scss Mon Feb 22 22:44:39 2016 -0800 +++ b/foodtruck/assets/sass/foodtruck/_base.scss Thu Feb 25 22:30:16 2016 -0800 @@ -28,6 +28,10 @@ margin-bottom: 1em; } +time { + border-bottom: 1px dotted $ft-color-gray-darker; +} + .ft-login { padding: 1em; margin: 2em 0; diff -r dba53f0f7671 -r c1a94e1beb9d foodtruck/templates/list_source.html --- a/foodtruck/templates/list_source.html Mon Feb 22 22:44:39 2016 -0800 +++ b/foodtruck/templates/list_source.html Thu Feb 25 22:30:16 2016 -0800 @@ -1,16 +1,30 @@ {% extends 'layouts/default.html' %} {% block content %} -
-
+ + + + + + + + + + + {% for p in pages %} -
-

{{p.title}}

-

{{p.text}}

-
+ + + + + + + {% endfor %} - + +
WhenTitleWhoCategoryTags
{{p.title}}{{p.author}}{{p.category}}{{p.tags|join(', ')}}
+
{% if pagination.prev_page or pagination.next_page %}
diff -r dba53f0f7671 -r c1a94e1beb9d foodtruck/views/sources.py --- a/foodtruck/views/sources.py Mon Feb 22 22:44:39 2016 -0800 +++ b/foodtruck/views/sources.py Thu Feb 25 22:30:16 2016 -0800 @@ -16,16 +16,21 @@ abort(400) i = 0 + default_author = site.config.get('site/author') data = {'title': "List %s" % source_name} data['pages'] = [] pgn = Paginator(None, source, page_num=page_num, items_per_page=20) for p in pgn.items: page_data = { 'title': p['title'], + 'author': p.get('author', default_author), 'slug': p['slug'], + 'timestamp': p['timestamp'], + 'tags': p.get('tags', []), + 'category': p.get('category'), 'source': source_name, - 'url': url_for('edit_page', slug=p['slug']), - 'text': text_preview(html_to_text(p['content']), length=300)} + 'url': url_for('edit_page', slug=p['slug']) + } data['pages'].append(page_data) prev_page_url = None diff -r dba53f0f7671 -r c1a94e1beb9d foodtruck/web.py --- a/foodtruck/web.py Mon Feb 22 22:44:39 2016 -0800 +++ b/foodtruck/web.py Thu Feb 25 22:30:16 2016 -0800 @@ -1,5 +1,6 @@ import os import os.path +import time import logging from flask import Flask, g, request, render_template from .configuration import ( @@ -162,6 +163,18 @@ app.bcrypt = Bcrypt(app) +@app.template_filter('iso8601') +def timestamp_to_iso8601(t): + t = time.localtime(t) + return time.strftime('%Y-%m-%dT%H:%M:%SZ', t) + +@app.template_filter('datetime') +def timestamp_to_datetime(t, fmt=None): + fmt = fmt or '%x' + t = time.localtime(t) + return time.strftime(fmt, t) + + import foodtruck.views.create # NOQA import foodtruck.views.dashboard # NOQA import foodtruck.views.edit # NOQA diff -r dba53f0f7671 -r c1a94e1beb9d gulpfile.js --- a/gulpfile.js Mon Feb 22 22:44:39 2016 -0800 +++ b/gulpfile.js Thu Feb 25 22:30:16 2016 -0800 @@ -39,6 +39,7 @@ 'bower_components/bootstrap-sass/assets/javascripts/bootstrap/modal.js', 'bower_components/bootstrap-sass/assets/javascripts/bootstrap/tooltip.js', 'bower_components/bootstrap-sass/assets/javascripts/bootstrap/transition.js', + 'bower_components/jquery-timeago/jquery.timeago.js', 'foodtruck/assets/js/**/*.js' ]) .pipe(sourcemaps.init())