added stats page
This commit is contained in:
@@ -39,12 +39,21 @@ def get_entries_by_id(request, _id):
|
|||||||
results = request.dbsession.execute(text(query), {'id':_id}).first()
|
results = request.dbsession.execute(text(query), {'id':_id}).first()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
def get_entries_count_by_topic(request):
|
def get_entries_last_viewed(request):
|
||||||
query = """SELECT topics.topic_name, tags.tag_name, count(entries.id) as count, strftime('%d/%m/%Y', created) AS create_date
|
query = """SELECT strftime('%d/%m/%Y', view_date) AS last_viewed, title, view_count
|
||||||
FROM entries
|
FROM entries WHERE topic_id <> '_admin' ORDER BY view_date DESC LIMIT 20;"""
|
||||||
INNER JOIN topics ON entries.topic_id = topics.topic
|
results = request.dbsession.execute(text(query),).fetchall()
|
||||||
INNER JOIN tags ON entries.tag = tags.tag
|
return results
|
||||||
GROUP BY entries.tag ORDER BY entries.topic_id, entries.tag;"""
|
|
||||||
|
def get_entries_most_viewed(request):
|
||||||
|
query = """SELECT strftime('%d/%m/%Y', view_date) AS date_viewed, title, view_count
|
||||||
|
FROM entries WHERE topic_id <> '_admin' ORDER BY view_count DESC LIMIT 20;"""
|
||||||
|
results = request.dbsession.execute(text(query),).fetchall()
|
||||||
|
return results
|
||||||
|
|
||||||
|
def get_entries_last_created(request):
|
||||||
|
query = """SELECT strftime('%d/%m/%Y', created) AS last_created, title, view_count
|
||||||
|
FROM entries WHERE topic_id <> '_admin' ORDER BY created DESC LIMIT 20;"""
|
||||||
results = request.dbsession.execute(text(query),).fetchall()
|
results = request.dbsession.execute(text(query),).fetchall()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
|
|||||||
@@ -188,6 +188,8 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
<li><a class="dropdown-item" href="{{request.route_url('settings')}}">
|
<li><a class="dropdown-item" href="{{request.route_url('settings')}}">
|
||||||
<i class="ti ti-settings fs-6"></i> Paramètres</a></li>
|
<i class="ti ti-settings fs-6"></i> Paramètres</a></li>
|
||||||
|
<li><a class="dropdown-item" href="{{request.route_url('stats_pages')}}">
|
||||||
|
<i class="ti ti-chart-bar fs-6"></i> Statistiques</a></li>
|
||||||
<li><a class="dropdown-item" href="{{request.route_url('blog_search')}}">
|
<li><a class="dropdown-item" href="{{request.route_url('blog_search')}}">
|
||||||
<i class="ti ti-search fs-6"></i> Recherche</a></li>
|
<i class="ti ti-search fs-6"></i> Recherche</a></li>
|
||||||
<li><a class="dropdown-item" href="{{request.route_url('logout')}}">
|
<li><a class="dropdown-item" href="{{request.route_url('logout')}}">
|
||||||
|
|||||||
@@ -25,12 +25,6 @@
|
|||||||
<span class="hide-menu">Pages internes</span>
|
<span class="hide-menu">Pages internes</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="sidebar-item mb-3">
|
|
||||||
<a class="sidebar-link" href=" {{request.route_url('stats_pages') }} " aria-expanded="false">
|
|
||||||
<span><i class="ti ti-chart-bar fs-6"></i></span>
|
|
||||||
<span class="hide-menu">Statistiques</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li class="sidebar-item mb-3">
|
<li class="sidebar-item mb-3">
|
||||||
<a class="sidebar-link" href="https://www.edrawmind.com/online/files" target="_blank" aria-expanded="false">
|
<a class="sidebar-link" href="https://www.edrawmind.com/online/files" target="_blank" aria-expanded="false">
|
||||||
<span><i class="ti ti-pencil fs-6"></i></span>
|
<span><i class="ti ti-pencil fs-6"></i></span>
|
||||||
|
|||||||
@@ -2,30 +2,56 @@
|
|||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<div class="card mb-0">
|
<div class="container">
|
||||||
<div class="card-body">
|
<div class="accordion" id="accordionPanelsStayOpenExample">
|
||||||
<div class="row">
|
<div class="accordion-item">
|
||||||
<table class="table table-sm">
|
<h2 class="accordion-header">
|
||||||
<thead>
|
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#panelsStayOpen-collapseOne" aria-expanded="true" aria-controls="panelsStayOpen-collapseOne">
|
||||||
<tr>
|
20 dernieres pages vues
|
||||||
<th>Topic</th>
|
</button>
|
||||||
<th>Tag</th>
|
</h2>
|
||||||
<th>Nombre</th>
|
<div id="panelsStayOpen-collapseOne" class="accordion-collapse collapse">
|
||||||
<th>Dern. ajout</th>
|
<div class="accordion-body">
|
||||||
</tr>
|
<p>
|
||||||
</thead>
|
{% for entry in last_viewed %}
|
||||||
<tbody class="table-group-divider">
|
{{ entry.last_viewed }} - {{ entry.title }} - ({{ entry.view_count }})<br>
|
||||||
{% for entry in entries %}
|
{% endfor %}
|
||||||
<tr>
|
</p>
|
||||||
<td>{{ entry.topic_name }}</td>
|
</div>
|
||||||
<td>{{ entry.tag_name }}</td>
|
|
||||||
<td>{{ entry.count }}</td>
|
|
||||||
<td>{{ entry.create_date }}</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="accordion-item">
|
||||||
|
<h2 class="accordion-header">
|
||||||
|
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#panelsStayOpen-collapseTwo" aria-expanded="false" aria-controls="panelsStayOpen-collapseTwo">
|
||||||
|
20 dernieres pages crées
|
||||||
|
</button>
|
||||||
|
</h2>
|
||||||
|
<div id="panelsStayOpen-collapseTwo" class="accordion-collapse collapse">
|
||||||
|
<div class="accordion-body">
|
||||||
|
<p>
|
||||||
|
{% for entry in last_created %}
|
||||||
|
{{ entry.last_created }} - {{ entry.title }} - ({{ entry.view_count }})<br>
|
||||||
|
{% endfor %}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="accordion-item">
|
||||||
|
<h2 class="accordion-header">
|
||||||
|
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#panelsStayOpen-collapseThree" aria-expanded="false" aria-controls="panelsStayOpen-collapseThree">
|
||||||
|
20 pages les plus vues
|
||||||
|
</button>
|
||||||
|
</h2>
|
||||||
|
<div id="panelsStayOpen-collapseThree" class="accordion-collapse collapse">
|
||||||
|
<div class="accordion-body">
|
||||||
|
<p>
|
||||||
|
{% for entry in most_viewed %}
|
||||||
|
{{ entry.view_count }} - {{ entry.title }} - {{ entry.date_viewed }}<br>
|
||||||
|
{% endfor %}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|||||||
@@ -43,7 +43,8 @@ def blog(request):
|
|||||||
last_view = 'None'
|
last_view = 'None'
|
||||||
|
|
||||||
if client_addr != '127.0.0.1' and entry.view_ip != client_addr and last_view != str(today)[:13] and \
|
if client_addr != '127.0.0.1' and entry.view_ip != client_addr and last_view != str(today)[:13] and \
|
||||||
request.user_agent.find("spider") == -1 and request.user_agent.find("crawler") == -1 and request.user_agent.find("+http") == -1:
|
request.user_agent.find("spider") == -1 and request.user_agent.find("crawler") == -1 and \
|
||||||
|
request.user_agent.find("bot") == -1 and request.user_agent.find("+http") == -1:
|
||||||
update_view_counter(request, blog_id, client_addr, today)
|
update_view_counter(request, blog_id, client_addr, today)
|
||||||
|
|
||||||
|
|
||||||
@@ -305,11 +306,15 @@ def topic(request):
|
|||||||
@view_config(route_name='stats_pages', renderer='../templates/stats_pages.jinja2')
|
@view_config(route_name='stats_pages', renderer='../templates/stats_pages.jinja2')
|
||||||
def stats_pages(request):
|
def stats_pages(request):
|
||||||
|
|
||||||
entries = get_entries_count_by_topic(request)
|
last_viewed = get_entries_last_viewed(request)
|
||||||
|
last_created = get_entries_last_created(request)
|
||||||
|
most_viewed = get_entries_most_viewed(request)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'page_title': "Statistiques par topics",
|
'page_title': "Statistiques",
|
||||||
'entries': entries,
|
'last_viewed': last_viewed,
|
||||||
|
'last_created': last_created,
|
||||||
|
'most_viewed' : most_viewed,
|
||||||
}
|
}
|
||||||
|
|
||||||
@view_config(route_name='maintenance', renderer='../templates/maintenance.jinja2')
|
@view_config(route_name='maintenance', renderer='../templates/maintenance.jinja2')
|
||||||
|
|||||||
Reference in New Issue
Block a user