added maintenance page
This commit is contained in:
Binary file not shown.
@@ -218,4 +218,5 @@ def update_view_counter(request, id, remote_ip, today):
|
||||
query = """
|
||||
UPDATE entries SET view_count = view_count + 1, view_date = :today, view_ip = :remote_ip
|
||||
WHERE id = :id;"""
|
||||
# import pdb;pdb.set_trace()
|
||||
execute_query(request, query, {'id': id, 'remote_ip': remote_ip, 'today': today})
|
||||
|
||||
@@ -10,6 +10,7 @@ def includeme(config):
|
||||
config.add_route('image_edit', '/image_edit/{filename}')
|
||||
config.add_route('login', '/login')
|
||||
config.add_route('logout', '/logout')
|
||||
config.add_route('maintenance', '/maintenance')
|
||||
config.add_route('related_edit', '/related_edit/{topic}/{id}/{id_related}')
|
||||
config.add_route('settings', '/settings')
|
||||
config.add_route('stats_pages', '/stats_pages')
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
{% extends "layout.jinja2" %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="card mb-0">
|
||||
<div class="card-body">
|
||||
<form id="search-form" class="form-horizontal" role="form" action="/maintenance" method="post">
|
||||
|
||||
<div class="mb-3">
|
||||
<hr>
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted">Import view count from logs</button>
|
||||
<hr>
|
||||
<button class="btn btn-warning" type="submit" name="form.replace">Initialize title_url</button>
|
||||
<hr>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
@@ -45,6 +45,14 @@
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if request.client_addr == '127.0.0.1' %}
|
||||
<li class="sidebar-item mb-3">
|
||||
<a class="sidebar-link" href=" {{request.route_url('maintenance') }} " aria-expanded="false">
|
||||
<span><i class="ti ti-server fs-6"></i></span>
|
||||
<span class="hide-menu">Maintenance BD</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
from pyramid.view import view_config
|
||||
from pyramid.httpexceptions import HTTPNotFound, HTTPFound
|
||||
|
||||
import os
|
||||
import markdown
|
||||
import datetime #<- will be used to set default dates on models
|
||||
|
||||
@@ -31,6 +33,7 @@ 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()
|
||||
@@ -40,7 +43,7 @@ def blog(request):
|
||||
last_view = 'None'
|
||||
|
||||
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") == 0 and request.user_agent.find("crawler") == 0 and request.user_agent.find("+http") == 0:
|
||||
request.user_agent.find("spider") == -1 and request.user_agent.find("crawler") == -1 and request.user_agent.find("+http") == -1:
|
||||
update_view_counter(request, blog_id, client_addr, today)
|
||||
|
||||
|
||||
@@ -308,3 +311,47 @@ def stats_pages(request):
|
||||
'page_title': "Statistiques par topics",
|
||||
'entries': entries,
|
||||
}
|
||||
|
||||
@view_config(route_name='maintenance', renderer='../templates/maintenance.jinja2')
|
||||
def maintenance(request):
|
||||
# Import view counts from logs
|
||||
# select timestamp_iso, remote_addr,request_path,user_agent from logs where status=200 and request_path like '/blog/%' order by timestamp_iso;
|
||||
#
|
||||
if 'form.submitted' in request.params:
|
||||
# lire le fichier logs.txt
|
||||
filename = os.path.join('/Users/phuoc/pyramid/cao_sunyata/', 'logs.txt')
|
||||
with open(filename) as f:
|
||||
n = 0
|
||||
for line in f:
|
||||
cols = line.split('|')
|
||||
user_date = cols[0]
|
||||
user_addr = cols[1]
|
||||
path = cols[2]
|
||||
blog_id = path.split('/')[2]
|
||||
user_agent = cols[3]
|
||||
|
||||
# lire le blog
|
||||
entry = get_entries_by_id(request, blog_id)
|
||||
if entry:
|
||||
if entry.view_date :
|
||||
last_view = entry.view_date[:13]
|
||||
else:
|
||||
last_view = 'None'
|
||||
|
||||
# incrementer le view_count si ip et last view diffrents
|
||||
if entry.view_ip != user_addr and last_view != user_date[:13].replace('T',' ') and \
|
||||
user_agent.find("spider") == -1 and user_agent.find("crawler") == -1 and user_agent.find("+http") == -1:
|
||||
update_view_counter(request, blog_id, user_addr, user_date)
|
||||
n += 1
|
||||
|
||||
request.session.flash(str(n) + "view a été importé avec succès !", 'success')
|
||||
|
||||
# Initialize title_url with title urlify
|
||||
if 'form.replace' in request.params:
|
||||
update_entries_url(request)
|
||||
request.session.flash("Le remplacement a été effectué avec succès !", 'success')
|
||||
|
||||
return {
|
||||
'page_title': "Maintenance de BD",
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user