diff --git a/cao_sunyata/models/entries.py b/cao_sunyata/models/entries.py index eafb1b0..d72724f 100644 --- a/cao_sunyata/models/entries.py +++ b/cao_sunyata/models/entries.py @@ -34,8 +34,8 @@ def get_entries_related_by_id(request, _id, id_related): return results def get_entries_by_id(request, _id): - query = """SELECT *, strftime('%d/%m/%Y', created) AS create_date, - strftime('%d/%m/%Y', edited) AS edit_date FROM entries WHERE id=:id;""" + query = """SELECT *, strftime('%d/%m/%Y', created) AS create_date, strftime('%d/%m/%Y', edited) AS edit_date, + strftime('%d/%m/%Y %H:%M', view_date) AS last_view FROM entries WHERE id=:id;""" results = request.dbsession.execute(text(query), {'id':_id}).first() return results @@ -211,3 +211,9 @@ def update_entries_url(request): slug = urlify(entry.title) query = "UPDATE entries SET title_url = :slug WHERE id = :id;" execute_query(request, query, {'id': entry.id, 'slug': slug}) + + +def update_view_counter(request, id, remote_ip, today): + # incrementer le compteur de vues si ip et date sont differents + query = "UPDATE entries SET view_count = view_count + 1, view_date = :today, view_ip = :remote_ip WHERE id = :id;" + execute_query(request, query, {'id': id, 'remote_ip': remote_ip, 'today': today}) diff --git a/cao_sunyata/templates/blog.jinja2 b/cao_sunyata/templates/blog.jinja2 index df964d6..892ef0c 100644 --- a/cao_sunyata/templates/blog.jinja2 +++ b/cao_sunyata/templates/blog.jinja2 @@ -17,7 +17,7 @@ {% endif %}

- {{ entry.author }} - Publié le {{ entry.create_date }}
+ {{ entry.author }} - Publié le {{ entry.create_date }} - Vues : {{ entry.view_count }}


{{ body_html | safe }}

@@ -41,6 +41,7 @@ Topic - Tag : {{ entry.topic_id }} - {{ entry.tag }}
Language : {{ entry.language }}
Statut : {{ entry.status }}
+ Dernière visite : {{ entry.last_view }} {% endif %}

diff --git a/cao_sunyata/views/blog.py b/cao_sunyata/views/blog.py index bab5498..865c988 100644 --- a/cao_sunyata/views/blog.py +++ b/cao_sunyata/views/blog.py @@ -31,6 +31,12 @@ def blog(request): body_html = markdown.markdown(body, extensions=['footnotes']) # lire les contenus correles relateds = get_entries_related(request, entry.id) + # incrementer le compteur de vues + client_addr = request.client_addr + today = datetime.datetime.now() + if client_addr != '127.0.0.1' and entry.edited[:13] != str(today)[:13]: + update_view_counter(request, blog_id, client_addr, today) + return { 'page_title': entry.title,