Hello {{ session['username'] }} !
- Bienvenue sur la création d'un nouvel article de blog. Vous pouvez créer ou importer un article de blog ici,
- vous avez le choix de le rendre publique dès sa création en cochant publique ou le laisser en privé
- si vous souhaitez le modifier plus-tard avant sa publication.
- Par défaut il est laissé en privé pour éviter les publications
- accidentelles.
-
- {# on affiche les messages d'erreur puis les messages de succes #}
- {% for categorie in ['error', 'succes'] %}
+ {# on affiche les messages d'erreurs puis les messages de succes #}
+ {% for categorie in ['error', 'success'] %}
{% with msgs = get_flashed_messages(category_filter=[categorie]) %}
{% if msgs %}
-
-
-
+
+
+
diff --git a/templates/accueil.html b/templates/accueil.html
index caf0de5..c36f5ba 100644
--- a/templates/accueil.html
+++ b/templates/accueil.html
@@ -2,57 +2,45 @@
{% include '_head.html' %}
-
+
-{% block main %}
+
+
+ {% block main %}
-
-
+
Bienvenue sur
-
-
-
-
-
Pywallter
-
-
-
-
-
Restez libres
-
Bienvenue sur Olala, un portail utilisateur libre basé sur Flask à héberger sur un petit ordinateur.
- Tu peux importer des fichiers et dans l'avenir les rendres disponibles pour ton site
- Tu peux consulter ou participer au tableau des post-its pour communiquer avec les autres membres ou
- simplement savoir ce qu'il se passe sur le serveur.
- Tu peux gérer ton compte MAIL et XMPP si les serveurs Mail(SMTP, IMAP) et XMPP sont actifs.
-
- Site en construction permanente.
-
+
Bienvenue sur Olala, un portail utilisateur libre basé sur Flask à héberger sur un petit ordinateur.
+ Tu peux importer des fichiers et dans l'avenir les rendres disponibles pour ton site.
+ Tu peux consulter ou participer au tableau des post-its pour communiquer avec les autres membres ou
+ simplement savoir ce qu'il se passe sur le serveur.
+
+
+ Tu peux gérer ton compte MAIL et XMPP si les serveurs Mail(SMTP, IMAP) et XMPP sont actifs.
+
{% include '_flash_msgs.html' %}
-
-
-
-
-
-
-
-
-
-
-{% endblock %}
+
+
+
-{% include '_footer.html' %}
+
+ {% endblock %}
+
-{% include '_js.html' %}
+
+ {% include '_footer.html' %}
+
+ {% include '_js.html' %}
diff --git a/templates/delete_account.html b/templates/delete_account.html
index fe05ba9..58e6f25 100644
--- a/templates/delete_account.html
+++ b/templates/delete_account.html
@@ -2,33 +2,18 @@
{% block main %}
-
+
Supprimer mon compte
-
Vous voulez supprimer votre compte pas de problèmes toutes vos données seront effacées du serveur et après un periodes de {{ time_backup }} vos données seront complètements supprimées des sauvegardes, il n'y aura aucun retour en arrière possible.
+
Vous voulez supprimer votre compte pas de problèmes toutes vos données seront effacées du serveur et après un periodes de {{ time_backup }} vos données seront complètements supprimées des sauvegardes, il n'y aura aucun retour en arrière possible.
Entrez votre mot de passe pour confirmer la suppression de votre compte
-
+
-
-
-{# on affiche les messages d'erreur puis les messages de succes #}
-{% for categorie in ['error', 'succes'] %}
-{% with msgs = get_flashed_messages(category_filter=[categorie]) %}
-{% if msgs %}
-
-
Vous pouvez modifier votre article. Actuellement seule la date de première édition sera publiée. Prochainement : intégration de la date de mise à jour dans la base de donnée.
-
-
+
Vous pouvez modifier votre article. Actuellement seule la date de première édition sera publiée. Prochainement : intégration de la date de mise à jour dans la base de donnée.
diff --git a/templates/invitation.html b/templates/invitation.html
index 8ff1c77..92e12ff 100644
--- a/templates/invitation.html
+++ b/templates/invitation.html
@@ -3,51 +3,33 @@
{% block main %}
-
-
-
- Si vous voulez vous pouvez inviter une personne à se crée un compte sur ce serveur
- pour cela vous devez crée un lien d'inscription. Ce lien restera valable tant
- que la personne ne s'est pas inscrite ou tant que vous ne créez pas un autre lien.
- Les invitations se font une par une et sont limité à 20 personnes pour ne pas surcharger notre petit serveur :).
- Une fois que la personne s'est incrite votre nombre d'invitations sera mis à jour
-
- {# on affiche les messages d'erreur puis les messages de succes #}
- {% for categorie in ['error', 'succes'] %}
- {% with msgs = get_flashed_messages(category_filter=[categorie]) %}
- {% if msgs %}
-
- {% for m in msgs %}
-
{{ m|safe }}
- {% endfor %}
-
- {% endif %}
- {% endwith %}
- {% endfor %}
-
+
+ Si vous voulez vous pouvez inviter une personne à se crée un compte sur ce serveur
+ pour cela vous devez crée un lien d'inscription. Ce lien restera valable tant
+ que la personne ne s'est pas inscrite ou tant que vous ne créez pas un autre lien.
+ Les invitations se font une par une et sont limité à 20 personnes pour ne pas surcharger notre petit serveur :).
+ Une fois que la personne s'est incrite votre nombre d'invitations sera mis à jour
+
-
-
-{% endblock %}
-
-{% include '_footer.html' %}
-
-{% include '_js.html' %}
+
+ {% include '_footer.html' %}
+
+ {% include '_js.html' %}
diff --git a/templates/new_article_blog.html b/templates/new_article_blog.html
index 91a879a..5f00fd5 100644
--- a/templates/new_article_blog.html
+++ b/templates/new_article_blog.html
@@ -4,17 +4,14 @@
{% block main %}
-
-
-
-
Hello {{ session['username'] }} !
+
Hello {{ session['username'] }} !
Bienvenue sur la création d'un nouvel article de blog. Vous pouvez créer ou importer un article de blog ici,
vous avez le choix de le rendre publique dès sa création en cochant publique ou le laisser en privé
si vous souhaitez le modifier plus-tard avant sa publication.
Par défaut il est laissé en privé pour éviter les publications
accidentelles.
-
-
+
+
+
+
+
+
{% endblock %}
diff --git a/views/filesupload.py b/views/filesupload.py
index 965e58e..e7205a3 100644
--- a/views/filesupload.py
+++ b/views/filesupload.py
@@ -184,3 +184,12 @@ def remove_publicFile(filename):
return redirect(url_for('filesupload.list', _external=True))
else :
return redirect(BASE_URL, code=401)
+
+@filesupload.route('/theme.min.css')
+def theme():
+ if 'username' in session:
+ user = '%s' % escape(session['username'])
+ if os.path.isfile(DOSSIER_PERSO+ user +'/theme.min.css'):
+ return send_file(DOSSIER_PERSO+ user +'/theme.min.css', mimetype='text/css')
+ else:
+ return send_file("static/default.min.css", mimetype='text/css')
diff --git a/views/loginlogout.py b/views/loginlogout.py
index 9f32c1e..f641419 100644
--- a/views/loginlogout.py
+++ b/views/loginlogout.py
@@ -47,7 +47,7 @@ def login() :
if user_exist:
user = user_exist[0]
- passwd_bcrypt = user_exist[1].decode()
+ passwd_bcrypt = user_exist[1]
if user == request.form['user'] and bcrypt.check_password_hash(passwd_bcrypt, password) is True:
session['username'] = request.form['user']
diff --git a/views/profil.py b/views/profil.py
index 1a35013..6aa401d 100644
--- a/views/profil.py
+++ b/views/profil.py
@@ -5,6 +5,7 @@ from markupsafe import escape
import time
import sqlite3
import os
+from shutil import copy
from socket import gethostname
from flask_bcrypt import Bcrypt
from tools.utils import email_disp, append_to_log, gen_token, valid_passwd, valid_token_register, get_user_by_token
@@ -43,13 +44,13 @@ def profil_img(user, img) :
-@profil.route('/profil/', methods=['GET','POST'] )
+@profil.route('/profil/', methods=['GET','POST'])
def profile() :
if 'username' in session :
- UTILISATEUR='%s' % escape(session['username'])
+ user='%s' % escape(session['username'])
conn = sqlite3.connect(DATABASE) # Connexion à la base de donnée
cursor = conn.cursor() # Création de l'objet "curseur"
- cursor.execute("""SELECT avatar, nom, prenom, age, Mail_rescue FROM users WHERE name=?""", (UTILISATEUR,))
+ cursor.execute("""SELECT avatar, nom, prenom, age, Mail_rescue FROM users WHERE name=?""", (user,))
tmp = (cursor.fetchone())
profil_user = dict()
profil_user['avatar'] = tmp[0]
@@ -62,6 +63,12 @@ def profile() :
if request.method == 'POST' :
f = request.files['fic']
+
+
+ if request.form['theme'] != "Default":
+ copy( "static/vendors/picocss/pico.fluid.classless."+request.form['theme']+".min.css",
+ DOSSIER_PERSO+ user +'/theme.min.css' )
+
if request.form['nom']:
profil_user['nom'] = request.form['nom']
if request.form['prenom']:
@@ -74,30 +81,30 @@ def profile() :
else:
flash(u'Adresse de courriel invalide', 'error')
else:
- flash(u'Adresse de courriel invalide', 'error')
+ flash(u'Adresse de courriel de secour invalide', 'error')
if f: # On vérifie qu'un fichier a bien été envoyé
nom = secure_filename(f.filename)
- f.save(DOSSIER_PERSO + UTILISATEUR + '/profile/' + nom)
- image = DOSSIER_PERSO + UTILISATEUR + '/profile/' + nom
+ f.save(DOSSIER_PERSO + user + '/profile/' + nom)
+ image = DOSSIER_PERSO + user + '/profile/' + nom
with Image.open(image) as img:
img.thumbnail((300,200))
- img.save( DOSSIER_PERSO + UTILISATEUR + '/profile/' + nom)
+ img.save( DOSSIER_PERSO + user + '/profile/' + nom)
filename = nom
conn = sqlite3.connect(DATABASE) # Connexion à la base de donnée
cursor = conn.cursor() # Création de l'objet "curseur"
cursor.execute("UPDATE users SET avatar=? WHERE name=?",
- (filename, UTILISATEUR))
+ (filename, user))
conn.commit()
cursor = conn.cursor() # Création de l'objet "curseur"
conn.close()
- flash(u'Image de profil mise à jour', 'succes')
+ flash(u'Image de profil mise à jour', 'success')
else:
conn = sqlite3.connect(DATABASE) # Connexion à la base de donnée
cursor = conn.cursor() # Création de l\'objet "curseur"
cursor.execute("UPDATE users SET nom=?, prenom=?, age=?, mail_rescue=? WHERE name=?",
(profil_user['nom'], profil_user['prenom'], profil_user['age'], profil_user['mail_rescue'],
- UTILISATEUR))
+ user))
conn.commit()
flash(u'Le profil a été mis à jour', 'succes')
@@ -107,11 +114,24 @@ def profile() :
return render_template('profil.html',
section="Profil",
profil=profil_user,
- username=UTILISATEUR)
+ username=user)
else :
return redirect(BASE_URL, code=401)
+
+
+@profil.route('/profil/homepage', methods=['GET'] )
+def homepage():
+ if 'username' in session :
+ username='%s' % escape(session['username'])
+
+ return render_template('homepage.html',
+ section="Profil",
+ username=username)
+
+
+
@profil.route('/profil/change-password/', methods=['GET','POST'] )
def change_passwd() :
if 'username' in session: