Correct login landing page
This commit is contained in:
parent
b0190336b0
commit
823884d265
@ -113,4 +113,4 @@ def create_app():
|
||||
return app
|
||||
|
||||
if __name__ == '__main__' :
|
||||
app.run(host='127.0.0.1', port=8000, debug=True)
|
||||
app.run(host='192.168.7.146', port=8000, debug=True)
|
||||
|
||||
@ -18,7 +18,7 @@ header{
|
||||
}
|
||||
|
||||
body > main {
|
||||
width: 75%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
main
|
||||
@ -99,7 +99,9 @@ footer
|
||||
color: var(--pico-color-red-50);
|
||||
}
|
||||
|
||||
|
||||
article {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Navigation */
|
||||
|
||||
|
||||
@ -47,7 +47,7 @@
|
||||
/*box-shadow: 1px 1px 1px black; */
|
||||
}
|
||||
|
||||
.succes p {
|
||||
.success p {
|
||||
background-color: #444;
|
||||
color: #00C613;
|
||||
}
|
||||
|
||||
@ -1,5 +0,0 @@
|
||||
|
||||
<footer>
|
||||
<
|
||||
<p> Réalisé avec Flask et un thème bootstrap @mdo </p>
|
||||
</footer>
|
||||
@ -1,39 +0,0 @@
|
||||
{% extends 'up_squelette.html' %}
|
||||
|
||||
|
||||
{% block main %}
|
||||
|
||||
<div class="col-sm-1"></div>
|
||||
<div class="col-sm-10">
|
||||
<br />
|
||||
<div class="well"> Hello <span id="majuscule">{{ session['username'] }} ! </span>
|
||||
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.
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<form method="POST" action="{{ url_for('blog.new_article') }}" id="postform">
|
||||
<!--<input type="text" name="category" id="category" placeholder="Catégorie" class="form-control"><br />-->
|
||||
<input type="text" name="title" id="title" placeholder="Titre" class="form-control"><br />
|
||||
<input type="text" name="subtitle" id="subtitle" placeholder="Sous-titre" class="form-control"><br />
|
||||
<hr>
|
||||
<textarea id="editeurMarkdown" class="form-control" form="postform" name="content" id="content" placeholder="Contenu" style="height:10vw;"></textarea><br />
|
||||
<div class="row">
|
||||
<div class="col-sm-4"></div>
|
||||
<div class="col-sm-1"><input type="radio" name="status" value="privé" checked> Privé </div>
|
||||
<div class="col-sm-2"></div>
|
||||
<div class="col-sm-1"><input type="radio" name="status" value="publique">Public<br></div>
|
||||
<div class="col-sm-4"></div>
|
||||
</div>
|
||||
<br />
|
||||
<button id="tada" class="btn btn-default btn-primary" type="submit"> Créer l'article </button>
|
||||
</form>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
@ -1,11 +1,11 @@
|
||||
<div class="msginfo">
|
||||
{# 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 %}
|
||||
<div class="flashed {{ categorie }}">
|
||||
{% for m in msgs %}
|
||||
<p>{{ m|safe }}</p>
|
||||
<p class="center {{ categorie }}" >{{ m|safe }}</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
@ -2,6 +2,6 @@
|
||||
|
||||
<footer>
|
||||
|
||||
<p> Réalisé avec Flask et un thème bootstrap @mdo </p>
|
||||
<p> Réalisé avec Flask et picocss </p>
|
||||
|
||||
</footer>
|
||||
|
||||
@ -4,17 +4,14 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
<link rel="icon" href="{{ url_for('static', filename='bootstrap.min.css') }}">
|
||||
|
||||
<title>Un serveur et des ...</title>
|
||||
<!-- Bootstrap core CSS -->
|
||||
<link href="{{ url_for('static', filename='bootstrap.min.css') }}" rel="stylesheet">
|
||||
<!-- Bootstrap theme -->
|
||||
<link href="{{ url_for('static', filename='bootstrap-theme.min.css') }}" rel="stylesheet">
|
||||
<!-- Custom styles for this template -->
|
||||
<link href="{{ url_for('static', filename='up.css') }}" rel="stylesheet">
|
||||
<link href="{{ url_for('static', filename='cover.css') }}" rel="stylesheet">
|
||||
|
||||
<link href="/theme.min.css" rel="stylesheet">
|
||||
<link href="{{ url_for('static', filename='vendors/picocss/pico.colors.min.css') }}" rel="stylesheet">
|
||||
<link href="{{ url_for('static', filename='pywallter.css') }}" rel="stylesheet">
|
||||
<link href="{{ url_for('static', filename='icons.css') }}" rel="stylesheet">
|
||||
<link href="{{ url_for('static', filename='simplemde.min.css') }}" rel="stylesheet">
|
||||
<link href="{{ url_for('static', filename='glightbox.min.css') }}" rel="stylesheet">
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
@ -2,4 +2,4 @@
|
||||
<!--================================================== -->
|
||||
<!-- Placed at the end of the document so the pages load faster -->
|
||||
<script src="{{ url_for('static', filename='jquery.min.js') }}"></script>
|
||||
<script src="{{ url_for('static', filename='bootstrap.min.js') }}"></script>
|
||||
<script src="{{ url_for('static', filename='vendors/picocss/theme-switcher.js') }}"></script>
|
||||
|
||||
@ -1,8 +1,6 @@
|
||||
<!-- Bootstrap core JavaScript -->
|
||||
<!--================================================== -->
|
||||
|
||||
<!-- Placed at the end of the document so the pages load faster -->
|
||||
<script src="{{ url_for('static', filename='jquery.min.js') }}"></script>
|
||||
<script src="{{ url_for('static', filename='bootstrap.min.js') }}"></script>
|
||||
|
||||
<script src="{{ url_for('static', filename='docs.min.js') }}"></script>
|
||||
<script src="{{ url_for('static', filename='simplemde.min.js') }}"></script>
|
||||
|
||||
@ -1,99 +1,90 @@
|
||||
<!-- Fixed navbar -->
|
||||
<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="navbar-collapse collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
<li{% if section == "Mon Blog" %} class="active" {% endif %}>
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||
<span class="glyphicon glyphicon-globe" aria-hidden="true"></span>
|
||||
Mon blog
|
||||
</a>
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
<li>
|
||||
<a href="/myblog/new-article/"> <span class="glyphicon" aria-hidden="true"></span>
|
||||
Ecrire un billet </a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/myblog/list-articles/"><span class="glyphicon" aria-hidden="true">
|
||||
</span>
|
||||
Gérer mes billets
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/myblog/personalize/"><span class="glyphicon glyphicon-cog" aria-hidden="true"></span>
|
||||
Personnaliser mon blog
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/myblog/view/"><span class="glyphicon" aria-hidden="true"></span>
|
||||
Voir mon blog
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li{% if section == "Files" %} class="active" {% endif %} >
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||
<span class="glyphicon glyphicon-folder-open" aria-hidden="true"></span> Fichiers </a>
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
<li><a href="/view/"> <span class="glyphicon glyphicon-cloud-download" aria-hidden="true"></span>
|
||||
Mes Fichiers </a></li>
|
||||
<li><a href="/gallery/">
|
||||
<span class="glyphicon glyphicon-cog" aria-hidden="true"></span>
|
||||
Ma Gallerie d'images
|
||||
</a></li>
|
||||
<li><a href="/filesupload/">
|
||||
<span class="glyphicon glyphicon-cloud-upload" aria-hidden="true"></span>
|
||||
Envoyer des fichiers</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li{% if section == "mailbox" %} class="active" {% endif %} >
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||
<span class="glyphicon glyphicon-comment" aria-hidden="true"></span> Ma Messagerie </a>
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
<li><a href="/mymailbox/alias"><span class="glyphicon glyphicon-sunglasses" aria-hidden="true"></span>
|
||||
Gerer mes alias</a></li>
|
||||
|
||||
</ul>
|
||||
<aside class="menu">
|
||||
<div class="logo">
|
||||
</div>
|
||||
|
||||
</li>
|
||||
<li{% if section == "Logs" %} class="active" {% endif %}>
|
||||
<a href="/logs/"><span class="glyphicon glyphicon-floppy-disk" aria-hidden="true"></span>
|
||||
Logs
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li {% if section == "Profil" %} class="dropdown active" {% else %} class="dropdown" {% endif %}>
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||
<span class="glyphicon glyphicon-home" aria-hidden="true"></span>
|
||||
<span id="majuscule">{{ session['username'] }} </span>
|
||||
<span class="caret"></span></a>
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
<li><a href="/profil/"><span class="glyphicon glyphicon-user" aria-hidden="true"></span> Profil</a></li>
|
||||
<li><a href="/profil/change-password/"> <span class="glyphicon glyphicon-lock" aria-hidden="true"></span>
|
||||
Changer mon mot de passe </a></li>
|
||||
<li><a href="/invitation/"><span class="glyphicon glyphicon-cog" aria-hidden="true"></span> Inviter une personne</a></li>
|
||||
<li><a href="/delete_me/"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span> Supprimer mon compte </a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li>
|
||||
<a href="/logout/">
|
||||
<span class="glyphicon glyphicon-off" aria-hidden="true"></span>
|
||||
Se déconnecter
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div><!--/.nav-collapse -->
|
||||
</div>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
<nav>
|
||||
<h4>
|
||||
<span class="blog"></span>
|
||||
Mon blog
|
||||
</h4>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<a href="/myblog/new-article/" {% if request.path == "/myblog/new-article/" %} class="invert" {% endif %} > <span class="new-article-blog"></span>
|
||||
Ecrire un billet </a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/myblog/list-articles/" {% if request.path == "/myblog/list-articles/" %} class="invert" {% endif %} ><span class="list-articles-blog"></span>
|
||||
Gérer mes billets
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/myblog/personalize/" {% if request.path == "/myblog/personalize/" %} class="invert" {% endif %} ><span class="custom-blog"></span>
|
||||
Configurer mon site et mon blog
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/myblog/view/" {% if request.path == "/myblog/view/" %} class="invert" {% endif %} ><span class="view-blog" aria-hidden="true"></span>
|
||||
Voir mon blog
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h4>
|
||||
<span class="folder-home"></span> Mes fichiers
|
||||
</h4>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/view/" {% if request.path == "/view/" %} class="invert" {% endif %}> <span class="myfiles"></span> Mes dossiers personels </a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/gallery/" {% if request.path == "/gallery/" %} class="invert" {% endif %} > <span class="mygallery"></span> Ma gallerie d'images </a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/filesupload/" {% if request.path == "/filesupload/" %} class="invert" {% endif %}> <span class="send-files"></span> Envoyer des fichiers </a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<h4>
|
||||
<span class="messaging" aria-hidden="true"></span>
|
||||
Messagerie
|
||||
</h4>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/mymailbox/alias" {% if request.path == "/mymailbox/messagerie" %} class="invert" {% endif %}><span class="infos-messaging"></span>
|
||||
Ma messagerie
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/mymailbox/alias" {% if request.path == "/mymailbox/alias" %} class="invert" {% endif %} ><span class="myalias"></span>
|
||||
Gerer mes alias
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<h4>
|
||||
<span class="profile"></span>
|
||||
Profil :
|
||||
<span id="majuscule">{{ session['username'] }} </span>
|
||||
<span class="caret"></span>
|
||||
</h4>
|
||||
<ul>
|
||||
<li ><a href="/profil/" {% if request.path == "/profil/" %} class="invert" {% endif %} ><span class="configure-profile"></span> Personnaliser mon profil</a></li>
|
||||
<li><a href="/profil/change-password/" {% if request.path == "/profil/change-password/" %} class="invert" {% endif %} > <span class="mypassword" aria-hidden="true"></span>
|
||||
Changer mon mot de passe </a></li>
|
||||
<li><a href="/delete_me/" {% if request.path == "/delete_me/" %} class="invert" {% endif %} ><span class="user-delete"></span> Supprimer mon compte </a></li>
|
||||
<li><a href="/invitation/" {% if request.path == "invitation/" %} class="invert" {% endif %} ><span class="invite"></span> Inviter une personne</a></li>
|
||||
</ul>
|
||||
|
||||
</nav>
|
||||
|
||||
</aside>
|
||||
|
||||
@ -2,57 +2,45 @@
|
||||
<html lang="fr">
|
||||
|
||||
{% include '_head.html' %}
|
||||
<body>
|
||||
<body style="display:block;">
|
||||
|
||||
{% block main %}
|
||||
|
||||
<main style="margin-top: 4vw; max-width:70vw; ">
|
||||
{% block main %}
|
||||
|
||||
<div class="site-wrapper">
|
||||
|
||||
<div class="site-wrapper-inner">
|
||||
<h1> Bienvenue sur</h1>
|
||||
|
||||
<div class="cover-container">
|
||||
|
||||
<div class="masthead clearfix">
|
||||
<div class="inner">
|
||||
<h3 class="masthead-brand">Pywallter</h3>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="inner cover">
|
||||
<h1 class="cover-heading">Restez libres</h1>
|
||||
<p class="lead">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.<br/>
|
||||
Tu peux gérer ton compte MAIL et XMPP si les serveurs Mail(SMTP, IMAP) et XMPP sont actifs.
|
||||
<br/>
|
||||
<strong> Site en construction permanente. </strong></p>
|
||||
<br>
|
||||
<p>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.
|
||||
</p>
|
||||
<p>
|
||||
Tu peux gérer ton compte MAIL et XMPP si les serveurs Mail(SMTP, IMAP) et XMPP sont actifs.
|
||||
</p>
|
||||
|
||||
{% include '_flash_msgs.html' %}
|
||||
<p class="lead">
|
||||
<form method="POST" action="{{ url_for('loginlogout.login') }}">
|
||||
<input type="text" name="user" id="user" placeholder="Utilisateur" class="form-control" width="200px"><br />
|
||||
<input type="password" name="passwd" id="passwd" placeholder="Mot de passe" class="form-control"><br />
|
||||
<br>
|
||||
<p class="lead"><a href="{{ url_for('loginlogout.lost_password') }}"> Mouarf j'ai perdu mon mot de passe </a> </p>
|
||||
<button id="tada" class="btn btn-default btn-primary" type="submit"> Login </button>
|
||||
</form>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{% endblock %}
|
||||
<p class="lead">
|
||||
<form method="POST" action="{{ url_for('loginlogout.login') }}">
|
||||
<input type="text" name="user" id="user" placeholder="Utilisateur" class="form-control" width="200px"><br />
|
||||
<input type="password" name="passwd" id="passwd" placeholder="Mot de passe" class="form-control"><br />
|
||||
<br>
|
||||
<p class="center"><a href="{{ url_for('loginlogout.lost_password') }}"> Mouarf j'ai perdu mon mot de passe </a> </p>
|
||||
<button id="tada" class="btn btn-default btn-primary" type="submit"> Login </button>
|
||||
</form>
|
||||
|
||||
|
||||
{% include '_footer.html' %}
|
||||
|
||||
{% endblock %}
|
||||
</main>
|
||||
|
||||
{% include '_js.html' %}
|
||||
|
||||
{% include '_footer.html' %}
|
||||
|
||||
{% include '_js.html' %}
|
||||
|
||||
</body>
|
||||
|
||||
|
||||
@ -2,33 +2,18 @@
|
||||
|
||||
{% block main %}
|
||||
|
||||
<div class="page-header">
|
||||
|
||||
<h1> Supprimer mon compte </h1>
|
||||
<p class="text-center"> 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.
|
||||
<p class="center"> 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.
|
||||
</p>
|
||||
<h3> Entrez votre mot de passe pour confirmer la suppression de votre compte </h3>
|
||||
</div>
|
||||
|
||||
<form method="POST" action="{{ url_for('loginlogout.delete_account') }}">
|
||||
<input type="password" name="passwd" id="passwd" placeholder="Mot de passe" class="form-control"><br />
|
||||
<br>
|
||||
<button id="tada" class="btn btn-default btn-primary" type="submit"> Je supprime mon compte </button>
|
||||
</form>
|
||||
<div>
|
||||
</div>
|
||||
|
||||
{# 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 %}
|
||||
|
||||
<div class="flashed {{ categorie }}">
|
||||
{% for m in msgs %}
|
||||
<p>{{ m|safe }}</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
{% endfor %}
|
||||
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -2,39 +2,31 @@
|
||||
|
||||
{% block main %}
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-sm-1"></div>
|
||||
<div class="col-sm-10">
|
||||
<div class="well">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.</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>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.</p>
|
||||
|
||||
|
||||
<h2> {{ oldpost[0] }}</h2><br />
|
||||
<form action="" method="POST" id="postform" style="height: 15vw;">
|
||||
|
||||
<input type="text" name="subtitle" id="subtitle" placeholder="Titre" class="form-control" value="{{ oldpost[1] }}"><br />
|
||||
<textarea id="editeurMarkdown" class="form-control" form="postform" name="content" id="content" placeholder="Contenu" >{{ content }}</textarea><br />
|
||||
<textarea id="editeurMarkdown" class="form-control" form="postform" name="content" id="content" placeholder="Contenu" style="height:20vw;">{{ content }}</textarea><br />
|
||||
<h3> Visibilité </h3>
|
||||
<div class="row">
|
||||
<div class="center">
|
||||
{% if oldpost[2] == 'public' %}
|
||||
<div class="col-sm-4"></div>
|
||||
<div class="col-sm-1"><input type="radio" name="status" value="prive"> <br/>Privé </div>
|
||||
<div class="col-sm-2"></div>
|
||||
<div class="col-sm-1"><input type="radio" name="status" value="public" checked> <br/> Publique </div>
|
||||
<div class="col-sm-4"></div>
|
||||
<input type="radio" name="status" value="prive"> Privé
|
||||
<input type="radio" name="status" value="public" checked> Publique
|
||||
|
||||
{% else %}
|
||||
<div class="col-sm-4"></div>
|
||||
<div class="col-sm-1"><input type="radio" name="status" value="Privé" checked> <br/> Privé </div>
|
||||
<div class="col-sm-2"></div>
|
||||
<div class="col-sm-1"><input type="radio" name="status" value="public"> <br/> Publique </div>
|
||||
<div class="col-sm-4"></div>
|
||||
<input type="radio" name="status" value="Privé" checked> Privé
|
||||
<input type="radio" name="status" value="public"> Publique
|
||||
|
||||
{% endif %}
|
||||
</div>
|
||||
<br />
|
||||
<button id="tada" class="btn btn-default btn-primary" type="submit"> Mettre à jour </button>
|
||||
<button type="submit"> Mettre à jour </button>
|
||||
</form>
|
||||
<br />
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@ -3,39 +3,32 @@
|
||||
|
||||
{% block main %}
|
||||
|
||||
<h3> Ma gallerie </h3>
|
||||
|
||||
|
||||
<br />
|
||||
|
||||
<div class="center row">
|
||||
{% if fichiers %}
|
||||
|
||||
|
||||
|
||||
<div class="gallery">
|
||||
{% for image in fichiers %}
|
||||
<div class="column">
|
||||
|
||||
<div class="picture">
|
||||
<a href="/myfiles/images/{{ image }}" class="glightbox">
|
||||
<img src="/myfiles/images/thumbnails/{{ image }}" class="img-rounded gallery" alt=""/>
|
||||
</a>
|
||||
</a>
|
||||
|
||||
<div class="control">
|
||||
<a href="{{ url_for('mygallery.remove_privateImage', filename=image) }}"> <button class="btn btn-danger "><span class="glyphicon glyphicon-trash"></span> </button></a>
|
||||
<!-- <button class="btn btn-success "><span class="glyphicon glyphicon-globe"></span></button> -->
|
||||
</div>
|
||||
<a href="{{ url_for('mygallery.remove_privateImage', filename=image) }}"> <button class="danger trash"></button></a>
|
||||
</div>
|
||||
|
||||
{% endfor %}
|
||||
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
{% else %}
|
||||
|
||||
<h2> Il n'y a aucunes images dans votre gallerie </h2>
|
||||
|
||||
|
||||
|
||||
<h2> Il n'y a aucunes images dans votre gallerie </h2>
|
||||
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
@ -3,51 +3,33 @@
|
||||
|
||||
{% block main %}
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="well">
|
||||
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
|
||||
</div>
|
||||
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">Création du lien d'inscription</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
{% if token %}
|
||||
<h3> Votre lien d'inscription en cours: </h3>
|
||||
|
||||
<a href="{{ url_invitation }}">
|
||||
{{ url_invitation }}
|
||||
</a>
|
||||
{% else %}
|
||||
<h3> Pas d'invitation en attente </h3>
|
||||
{% endif %}
|
||||
<p> Il vous reste : {{ nb_invitation }} invitations à envoyer </p>
|
||||
<a href="/gen_token/">
|
||||
<button type="submit" id="tada" class="btn btn btn-success"> Créer un nouveau lien </button></a>
|
||||
|
||||
|
||||
<div class="msginfo">
|
||||
{# 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 %}
|
||||
<div class="flashed {{ categorie }}">
|
||||
{% for m in msgs %}
|
||||
<p>{{ m|safe }}</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
<p>
|
||||
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
|
||||
</p>
|
||||
|
||||
|
||||
<h3>Création du lien d'inscription</h3>
|
||||
|
||||
{% if token %}
|
||||
<h3> Votre lien d'inscription en cours: </h3>
|
||||
|
||||
<a href="{{ url_invitation }}">
|
||||
{{ url_invitation }}
|
||||
</a>
|
||||
{% else %}
|
||||
<h3> Pas d'invitation en attente </h3>
|
||||
{% endif %}
|
||||
<p> Il vous reste : {{ nb_invitation }} invitations à envoyer </p>
|
||||
<a href="/gen_token/">
|
||||
<button type="submit" id="tada" class="btn btn btn-success"> Créer un nouveau lien </button></a>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
@ -4,41 +4,24 @@
|
||||
{% block main %}
|
||||
|
||||
|
||||
<h2> Vos articles de blog </h2>
|
||||
|
||||
|
||||
{% for article in list_posts %}
|
||||
<article>
|
||||
<h3> {{ article.title }} </h3>
|
||||
<p> {{ article.subtitle }} </p>
|
||||
<br/>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h2> Vos articles de blog </h2>
|
||||
<table class="table" >
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Titre <span class="badge">{{ nb_articles }}</span></th>
|
||||
<th> Créé le : </th>
|
||||
<th> Dernière modification </th>
|
||||
<th> status </th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody style="text-align: left;">
|
||||
|
||||
{% for article in list_posts %}
|
||||
<tr>
|
||||
<td>{{ article.title }}</td>
|
||||
<td>{{ article.time }}</td>
|
||||
<td>{{ article.last_updated }} </td>
|
||||
<td>{{ article.status }}</td>
|
||||
<td><a href="{{ url_for('blog.edit', title=article.title) }}"><button type="button" class="btn btn-sm btn-info"> Editer </button></a></td>
|
||||
<td><a href="{{ url_for('blog.delete', title=article.title) }}"><button type="button" class="btn btn-sm btn-danger">Supprimer</button></a></td>
|
||||
<td><a href="{{ url_for('blog.edit', title=article.title) }}"><button type="button" class="btn btn-sm btn-success"> Publier </button></a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
{% endblock %}
|
||||
<small> Créé le : {{ article.time }} </small> <br/>
|
||||
<small> Modifié le : {{ article.last_updated }}</small>
|
||||
<p> Status : {{ article.status }}</p>
|
||||
<br/>
|
||||
|
||||
<a href="{{ url_for('blog.edit', title=article.title) }}"><button type="button"> Editer </button></a>
|
||||
<a href="{{ url_for('blog.delete', title=article.title) }}"><button type="button">Supprimer</button></a>
|
||||
<a href="{{ url_for('blog.edit', title=article.title) }}"><button type="button"> Publier </button></a>
|
||||
</article>
|
||||
{% endfor %}
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -2,51 +2,41 @@
|
||||
<html lang="fr">
|
||||
|
||||
{% include '_head.html' %}
|
||||
<body>
|
||||
|
||||
{% block main %}
|
||||
<body style="display:block;">
|
||||
|
||||
<div class="site-wrapper">
|
||||
|
||||
<main style="margin-top: 4vw;">
|
||||
|
||||
<div class="site-wrapper-inner">
|
||||
|
||||
<h3 class="masthead-brand">Pywallter</h3>
|
||||
|
||||
|
||||
|
||||
|
||||
<h1 class="cover-heading"> J'ai perdu mon mot de passe </h1>
|
||||
<p class="lead">
|
||||
Hé oui ça arrive à tout le monde... Il existe des gestionnaires de mot de passe pour éviter que ça t'arrives trop souvent. <a href="https://keepassxc.org/">Tiens en voilà un par exemple</a> ça existe <a href="https://apps.apple.com/fr/app/keepass-password-manager/id6461546929?platform=iphone"> pour iphone </a> et <a href="https://www.keepassdx.com/"> pour android </a>
|
||||
<br/>
|
||||
</p>
|
||||
<br/>
|
||||
|
||||
{% include '_flash_msgs.html' %}
|
||||
<p class="lead">
|
||||
<form method="POST" action="{{ url_for('loginlogout.lost_password') }}">
|
||||
<input type="text" name="user" id="user" placeholder="Entre ton nom d'utilisateur ici, on va voir si on trouve" class="form-control" width="200px"><br />
|
||||
<button id="tada" class="btn btn-default btn-primary" type="submit"> Trouves le stp ! </button>
|
||||
</form>
|
||||
</p>
|
||||
|
||||
</main>
|
||||
|
||||
<div class="cover-container">
|
||||
|
||||
|
||||
<div class="masthead clearfix">
|
||||
<div class="inner">
|
||||
<h3 class="masthead-brand">Pywallter</h3>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="inner cover">
|
||||
<h1 class="cover-heading"> J'ai perdu mon mot de passe </h1>
|
||||
<p class="lead">
|
||||
Hé oui ca arrive à tout le monde... Il existe des gestionnaire des mots de passe pour éviter que t'arrives trop souvent. <a href="https://keepassxc.org/">Tiens en voilà un par exemple</a> et ca existe <a href="https://apps.apple.com/fr/app/keepass-password-manager/id6461546929?platform=iphone"> pour iphone </a> et <a href="https://www.keepassdx.com/"> pour android </a>
|
||||
<br/>
|
||||
</p>
|
||||
<br>
|
||||
|
||||
{% include '_flash_msgs.html' %}
|
||||
<p class="lead">
|
||||
<form method="POST" action="{{ url_for('loginlogout.lost_password') }}">
|
||||
<input type="text" name="user" id="user" placeholder="Utilisateur" class="form-control" width="200px"><br />
|
||||
<button id="tada" class="btn btn-default btn-primary" type="submit"> Nom d'utilisateur </button>
|
||||
</form>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% include '_footer.html' %}
|
||||
|
||||
{% include '_js.html' %}
|
||||
|
||||
{% include '_footer.html' %}
|
||||
|
||||
{% include '_js.html' %}
|
||||
|
||||
</body>
|
||||
|
||||
|
||||
@ -4,17 +4,14 @@
|
||||
|
||||
{% block main %}
|
||||
|
||||
<div class="col-sm-1"></div>
|
||||
<div class="col-sm-10">
|
||||
<br />
|
||||
<div class="well"> Hello <span id="majuscule">{{ session['username'] }} ! </span>
|
||||
<p> Hello <span id="majuscule">{{ session['username'] }} ! </span>
|
||||
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.
|
||||
</div>
|
||||
</div>
|
||||
</p>
|
||||
|
||||
<br />
|
||||
|
||||
<form method="POST" action="{{ url_for('blog.new_article') }}" id="postform">
|
||||
@ -22,19 +19,16 @@
|
||||
<input type="text" name="title" id="title" placeholder="Titre" class="form-control"><br />
|
||||
<input type="text" name="subtitle" id="subtitle" placeholder="Sous-titre" class="form-control"><br />
|
||||
<hr>
|
||||
<textarea id="editeurMarkdown" class="form-control" form="postform" name="content" id="content" placeholder="Contenu" style="height:10vw;"></textarea><br />
|
||||
<div class="row">
|
||||
<div class="col-sm-4"></div>
|
||||
<div class="col-sm-1"><input type="radio" name="status" value="private" checked>Privé</div>
|
||||
<div class="col-sm-2"></div>
|
||||
<div class="col-sm-1"><input type="radio" name="status" value="public">Public<br></div>
|
||||
<div class="col-sm-4"></div>
|
||||
<textarea id="editeurMarkdown" class="form-control" form="postform" name="content" id="content" placeholder="Contenu" style="height:20vw;"></textarea><br />
|
||||
<div class="center">
|
||||
<input type="radio" name="status" value="private" checked> Privé
|
||||
<input type="radio" name="status" value="public">Public<br>
|
||||
</div>
|
||||
<br />
|
||||
<button id="tada" class="btn btn-default btn-primary" type="submit"> Créer l'article </button>
|
||||
<br/>
|
||||
<button id="tada" type="submit"> Créer l'article </button>
|
||||
</form>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -3,69 +3,71 @@
|
||||
|
||||
{% block main %}
|
||||
|
||||
<!--<div class="page-header">
|
||||
<h1>Profil</h1>
|
||||
</div>-->
|
||||
|
||||
<div class="row">
|
||||
<h3> Bienvenue </h3>
|
||||
<p> Si vous êtes sur cette page, c'est que vous diposez d'un compte sur ce serveur.
|
||||
Du coup, vous avez une adresse e-mail et une adresse XMPP que vous pouvez utiliser
|
||||
avec un client mail et avec un client XMPP (Bien évidemment)
|
||||
</p>
|
||||
<div>
|
||||
|
||||
<p> Voici un exemple de <a href="https://www.thunderbird.net/fr/"> client mail </a>
|
||||
et <a href="https://gajim.org/">client XMPP </a> pour un ordinateur </p>
|
||||
|
||||
|
||||
<h3> Mon profil </h3>
|
||||
<p>
|
||||
Votre profil vous sert à vous faire reconnaitre par les autres membres du serveur. Il n'y a pas besoin de mettre son vrai nom
|
||||
ou prénom ou age cela fonctionnera parfaitement même si vous ne remplissez pas tous les champs. Vous pouvez les laisser vides si
|
||||
cela vous convient.
|
||||
</p>
|
||||
|
||||
<p> un exemple de <a href="https://k9mail.app/"> client mail </a> et <a href="https://play.google.com/store/apps/details?id=org.snikket.android&hl=ln&gl=US">client XMPP</a>
|
||||
pour un téléphone sous Android </p>
|
||||
<p> Pour votre mail de secours il sert à vous envoyer un mail pour changer de mot de passe en cas de perte de ce dernier. Il n'y a
|
||||
pas encore de validation de l'e-mail donc vérifiez bien ce que vous tapez. </p>
|
||||
|
||||
<p> et un un exemple de<a href="https://support.apple.com/fr-fr/mail"> client mail</a> et <a href="https://itunes.apple.com/us/app/tigase-messenger/id1153516838"> client XMPP </a>sous iOS pour un iphone ou un Ipad </p>
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
</div> <br/>
|
||||
<br/>
|
||||
|
||||
<form method="POST" action="" enctype="multipart/form-data">
|
||||
<div id="fic" class="center">
|
||||
<label> Photo de profil </label>
|
||||
<input type="file" class="center" name="fic" id="fic"/><br>
|
||||
<img id="fic" src="/profil/{{ username }}/{{ profil['avatar'] }}" alt=""/>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<div class="col-sm-3"></div>
|
||||
<div class="col-sm-6">
|
||||
<label for="theme">Theme</label>
|
||||
<select id="theme" name="theme" required>
|
||||
<option value="" selected>Default</option>
|
||||
<option>amber</option>
|
||||
<option>blue</option>
|
||||
<option>cyan</option>
|
||||
<option>fuchsia</option>
|
||||
<option>green</option>
|
||||
<option>grey</option>
|
||||
<option>indigo</option>
|
||||
<option>jade</option>
|
||||
<option>orange</option>
|
||||
<option>rose</option>
|
||||
<option>pumpkin</option>
|
||||
<option>purple</option>
|
||||
<option>red</option>
|
||||
<option>sand</option>
|
||||
<option>slate</option>
|
||||
<option>violet</option>
|
||||
<option>yellow</option>
|
||||
<option>zinc</option>
|
||||
</select>
|
||||
|
||||
<br />
|
||||
|
||||
<label>Nom </label>
|
||||
<input type="text" name="nom" id="nom" value="{% if profil['nom'] != None %}{{ profil['nom'] }}{%endif%}"><br />
|
||||
<label>Prenom </label>
|
||||
<input type="text" name="prenom" id="prenom" value="{% if profil['nom'] != None %}{{ profil['prenom'] }}{%endif%}"><br />
|
||||
<label> Age </label>
|
||||
<input type="text" name="age" value="{% if profil['age'] != None %}{{ profil['age'] }}{%endif%}"><br />
|
||||
<label> Mail de secours </label>
|
||||
<input type="text" name="mail_rescue" id="mail_rescue" value="{% if profil['mail_rescue'] != None %}{{ profil['mail_rescue'] }}{%endif%}"><br />
|
||||
<button id="tada" class="btn btn-default btn-primary" type="submit">Envoyer</button>
|
||||
</form>
|
||||
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">Mon profil</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<form method="POST" action="" enctype="multipart/form-data">
|
||||
<div id="fic">
|
||||
<label> Photo de profil </label>
|
||||
<input type="file" name="fic" id="fic"/><br>
|
||||
<img id="fic" src="/profil/{{ username }}/{{ profil['avatar'] }}" class="img-rounded" alt=""/>
|
||||
</div>
|
||||
<br>
|
||||
<label>Nom </label>
|
||||
<input type="text" name="nom" id="nom" value="{% if profil['nom'] != None %}{{ profil['nom'] }}{%endif%}" class="form-control"><br />
|
||||
<label>Prenom </label>
|
||||
<input type="text" name="prenom" id="prenom" value="{% if profil['nom'] != None %}{{ profil['prenom'] }}{%endif%}" class="form-control"><br />
|
||||
<label> Age </label>
|
||||
<input type="text" name="age" value="{% if profil['age'] != None %}{{ profil['age'] }}{%endif%}" class="form-control"><br />
|
||||
<label> Mail de secours </label>
|
||||
<input type="text" name="mail_rescue" id="mail_rescue" value="{% if profil['mail_rescue'] != None %}{{ profil['mail_rescue'] }}{%endif%}" class="form-control"><br />
|
||||
<button id="tada" class="btn btn-default btn-primary" type="submit">Envoyer</button>
|
||||
</form>
|
||||
{# 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 %}
|
||||
<div class="flashed {{ categorie }}">
|
||||
{% for m in msgs %}
|
||||
<p>{{ m|safe }}</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -4,23 +4,25 @@
|
||||
{% include '_head.html' %}
|
||||
|
||||
|
||||
<body role="document">
|
||||
<body>
|
||||
|
||||
|
||||
{% include '_nav_userlogin.html'%}
|
||||
{% include '_header.html' %}
|
||||
|
||||
{% include '_nav_userlogin.html'%}
|
||||
|
||||
|
||||
<div class="container theme-showcase" role="main">
|
||||
<main>
|
||||
|
||||
{% include '_flash_msgs.html' %}
|
||||
{% block main %}{% endblock %}
|
||||
|
||||
</div>
|
||||
|
||||
{% include '_flash_msgs.html' %}
|
||||
{% include '_footer.html' %}
|
||||
{% include '_js-core.html' %}
|
||||
{% include '_js-gallery.html' %}
|
||||
</main>
|
||||
|
||||
|
||||
{% include '_footer.html' %}
|
||||
{% include '_js-core.html' %}
|
||||
{% include '_js-gallery.html' %}
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
@ -4,50 +4,24 @@
|
||||
{% extends 'up_squelette.html' %}
|
||||
{% block main %}
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-sm-3"></div>
|
||||
<div class="col-sm-6">
|
||||
<br />
|
||||
<div class="well">Ici, vous pouvez envoyer des fichiers afin de les sauvegarder ou de les rendre accessibles à quelqu'un d'autre. Ils seront par la suite disponibles en téléchargement dans notre rubrique <a href="/view/"><span class="glyphicon glyphicon-cloud-download" aria-hidden="true"></span> Fichiers</a>. Les images envoyées, quand à elles se retrouveront directement dans la <a href="/gallery/"><span class="glyphicon glyphicon-eye-open" aria-hidden="true"></span> Gallerie</a>.<br>Ayez bien conscience que ce site est une expérience est qu'il est indispensable d'avoir une sauvegarde de tous vos fichiers. Nous ne pourrons, en aucun cas, être tenu responsable de la perte de vos données. Merci de votre compréhension.
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">Choisissez un ou plusieurs fichiers à uploader</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<!--<div class="form-group">-->
|
||||
<form action="" method="post" enctype="multipart/form-data">
|
||||
<input type="file" name="fic"id="fic" multiple>
|
||||
<br>
|
||||
<button type="submit" id="tada" class="btn btn btn-success">Upload !</button>
|
||||
</form>
|
||||
<!--</div>-->
|
||||
<br />
|
||||
<p>Ici, vous pouvez envoyer des fichiers afin de les sauvegarder ou de les rendre accessibles à quelqu'un d'autre. Tu pourras ensuite
|
||||
les consulter dans notre rubrique <a href="/view/"> Mes fichiers </a>. Les images envoyées, quand à elles se retrouveront directement
|
||||
dans la <a href="/gallery/"> Gallerie</a>.<br>Ayez bien conscience que ce site est une expérience est qu'il est indispensable d'avoir
|
||||
une sauvegarde de tous vos fichiers qui vous mettrez ici. Nous ne pourrons, en aucun cas, être tenu responsable de la perte de vos
|
||||
données. Merci de votre compréhension.
|
||||
</p>
|
||||
|
||||
<div class="msginfo">
|
||||
{# 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 %}
|
||||
<div class="flashed {{ categorie }}">
|
||||
{% for m in msgs %}
|
||||
<p>{{ m|safe }}</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
<br />
|
||||
<h3>Choisissez un ou plusieurs fichiers à téléverser </h3>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<form action="" method="post" enctype="multipart/form-data">
|
||||
<input type="file" class="center" name="fic"id="fic" multiple>
|
||||
<br>
|
||||
<button type="submit" id="tada" class="btn btn btn-success"> Téléverser !</button>
|
||||
</form>
|
||||
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@ -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')
|
||||
|
||||
@ -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']
|
||||
|
||||
@ -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:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user