Mercurial > piecrust2
changeset 657:c1a94e1beb9d
admin: Show a more classic blog post listing in FoodTruck.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Thu, 25 Feb 2016 22:30:16 -0800 |
parents | dba53f0f7671 |
children | a920b2ab1f31 |
files | bower.json foodtruck/assets/js/foodtruck.js foodtruck/assets/sass/foodtruck/_base.scss foodtruck/templates/list_source.html foodtruck/views/sources.py foodtruck/web.py gulpfile.js |
diffstat | 7 files changed, 50 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- 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" } } -
--- 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');
--- 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;
--- 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 %} -<div class="row"> - <div class="col-md-12"> +<table class="table"> + <thead> + <tr> + <th>When</th> + <th>Title</th> + <th>Who</th> + <th>Category</th> + <th>Tags</th> + </tr> + </thead> + <tbody> {% for p in pages %} - <div> - <h3><a href="{{p.url}}">{{p.title}}</a></h3> - <p>{{p.text}}</p> - </div> + <tr> + <td><time class="timeago" datetime="{{p.timestamp|iso8601}}">{{p.timestamp|datetime}}</time></td> + <td><a href="{{p.url}}">{{p.title}}</a></td> + <td>{{p.author}}</td> + <td>{{p.category}}</td> + <td>{{p.tags|join(', ')}}</td> + </tr> {% endfor %} - </div> + </tbody> +</table> +<div class="row"> {% if pagination.prev_page or pagination.next_page %} <div class="col-sm-6 col-sm-offset-3"> <div class="ft-pagination">
--- 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
--- 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
--- 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())