diff --git a/cao_blogr.sqlite b/cao_blogr.sqlite index 41b02ab..ba07d9f 100644 Binary files a/cao_blogr.sqlite and b/cao_blogr.sqlite differ diff --git a/cao_blogr/routes.py b/cao_blogr/routes.py index 54f34cc..1a665f3 100644 --- a/cao_blogr/routes.py +++ b/cao_blogr/routes.py @@ -3,6 +3,7 @@ def includeme(config): config.add_route('home', '/') config.add_route('apropos', '/apropos') config.add_route('blog', '/blog/{id:\d+}/{slug}') + config.add_route('blog_bytag', '/blog_bytag/{tag}/{retour}') config.add_route('blog_edit', '/blog_edit/{id}') config.add_route('blog_search', '/blog_search') config.add_route('login', '/login') diff --git a/cao_blogr/services/blog_record.py b/cao_blogr/services/blog_record.py index 46283f2..337c464 100644 --- a/cao_blogr/services/blog_record.py +++ b/cao_blogr/services/blog_record.py @@ -12,18 +12,26 @@ class BlogRecordService(object): def by_criteria(cls, request, criteria): search = "%{}%".format(criteria) query = request.dbsession.query(BlogRecord) + query = query.filter(or_(BlogRecord.title.like(search), BlogRecord.body.like(search))) if request.authenticated_userid == None: # if user is anonym, display only published posts query = query.filter(BlogRecord.status == 'publié') - query = query.filter(or_(BlogRecord.title.like(search), - BlogRecord.body.like(search))).all() - return query + return query.all() @classmethod def by_id(cls, request, _id): query = request.dbsession.query(BlogRecord) return query.get(_id) + @classmethod + def by_tag(cls, request, tag): + query = request.dbsession.query(BlogRecord) + query = query.filter(BlogRecord.tag == tag) + if request.authenticated_userid == None: + # if user is anonym, display only published posts + query = query.filter(BlogRecord.status == 'publié') + return query.order_by(sa.desc(BlogRecord.created)).all() + @classmethod def get_last_created(cls, request): # gest the 10 last created posts @@ -31,7 +39,7 @@ class BlogRecordService(object): if request.authenticated_userid == None: # if user is anonym, display only published posts query = query.filter(BlogRecord.status == 'publié') - query = query.order_by(sa.desc(BlogRecord.created)).limit(10).all() + query = query.order_by(sa.desc(BlogRecord.created)).limit(15).all() return query @classmethod diff --git a/cao_blogr/static/theme.css b/cao_blogr/static/theme.css index d3aa86c..6ecf29d 100644 --- a/cao_blogr/static/theme.css +++ b/cao_blogr/static/theme.css @@ -37,7 +37,6 @@ h3, h4 { } @media (min-width: 1200px) { .container{ - padding: 70px 0 0 0; max-width: 950px; } } @@ -115,6 +114,12 @@ h3, h4 { .navbar-default .navbar-toggle { border-color: transparent; } +.navbar-brand { + /* centrer le logo */ + transform: translateX(-50%); + left: 50%; + position: absolute; +} footer { background-color: #bc2131; color: #f5f5f5; diff --git a/cao_blogr/templates/blog_bytag.jinja2 b/cao_blogr/templates/blog_bytag.jinja2 new file mode 100644 index 0000000..ce1e06a --- /dev/null +++ b/cao_blogr/templates/blog_bytag.jinja2 @@ -0,0 +1,26 @@ +{% extends "layout.jinja2" %} + +{% block content %} + +
+ +| {{ entry.created.strftime("%d %b %y") }} | ++ {{ entry.title }} + | + {% if entry.status != 'publié' %} +{{ entry.status }} | + {% else %} ++ {% endif%} + |
[ {{nb_items}} billets ]
+ +{% endblock %} diff --git a/cao_blogr/templates/blog_search.jinja2 b/cao_blogr/templates/blog_search.jinja2 index 7fca9af..a823f07 100644 --- a/cao_blogr/templates/blog_search.jinja2 +++ b/cao_blogr/templates/blog_search.jinja2 @@ -46,6 +46,12 @@ {% endif %}+ | + {% for tag in tags %} + {{ tag.tag }} | + {% endfor %} +
+ {% endblock %} diff --git a/cao_blogr/templates/home.jinja2 b/cao_blogr/templates/home.jinja2 index d65cd44..990f383 100644 --- a/cao_blogr/templates/home.jinja2 +++ b/cao_blogr/templates/home.jinja2 @@ -10,11 +10,13 @@| {{ entry.created.strftime("%d.%m.%Y") }} | +{{ entry.created.strftime("%d %b %y") }} | {{ entry.title }} | -{{ entry.tag }} | ++ [ {{ entry.tag }} ] + | {% if entry.status != 'publié' %}{{ entry.status }} | {% else %} @@ -25,5 +27,5 @@