Correct login landing page
This commit is contained in:
		
							parent
							
								
									b0190336b0
								
							
						
					
					
						commit
						823884d265
					
				@ -113,4 +113,4 @@ def create_app():
 | 
				
			|||||||
    return app
 | 
					    return app
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if __name__ == '__main__' :
 | 
					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 {
 | 
					body > main {
 | 
				
			||||||
    width: 75%;
 | 
					    width: 100%;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
main
 | 
					main
 | 
				
			||||||
@ -99,7 +99,9 @@ footer
 | 
				
			|||||||
    color: var(--pico-color-red-50);
 | 
					    color: var(--pico-color-red-50);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					article {
 | 
				
			||||||
 | 
					    text-align: center;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Navigation */
 | 
					/* Navigation */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -47,7 +47,7 @@
 | 
				
			|||||||
	/*box-shadow: 1px 1px 1px black; */
 | 
						/*box-shadow: 1px 1px 1px black; */
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.succes p {
 | 
					.success p {
 | 
				
			||||||
  background-color: #444;
 | 
					  background-color: #444;
 | 
				
			||||||
	color: #00C613;
 | 
						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">
 | 
					    <div class="msginfo">
 | 
				
			||||||
              {# on affiche les messages d'erreur puis les messages de succes #}
 | 
					              {# on affiche les messages d'erreurs puis les messages de succes #}
 | 
				
			||||||
              {% for categorie in ['error', 'succes'] %}
 | 
					              {% for categorie in ['error', 'success'] %}
 | 
				
			||||||
              {% with msgs = get_flashed_messages(category_filter=[categorie]) %}
 | 
					              {% with msgs = get_flashed_messages(category_filter=[categorie]) %}
 | 
				
			||||||
              {% if msgs %}
 | 
					              {% if msgs %}
 | 
				
			||||||
              <div class="flashed {{ categorie }}">
 | 
					              <div class="flashed {{ categorie }}">
 | 
				
			||||||
		{% for m in msgs %}
 | 
							{% for m in msgs %}
 | 
				
			||||||
		<p>{{ m|safe }}</p>
 | 
							     <p class="center {{ categorie }}" >{{ m|safe }}</p>
 | 
				
			||||||
		{% endfor %}
 | 
							{% endfor %}
 | 
				
			||||||
              </div>
 | 
					              </div>
 | 
				
			||||||
              {% endif %}
 | 
					              {% endif %}
 | 
				
			||||||
 | 
				
			|||||||
@ -2,6 +2,6 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<footer>
 | 
					<footer>
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  <p> Réalisé avec Flask et un thème bootstrap @mdo </p>
 | 
					  <p> Réalisé avec Flask et picocss </p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</footer>
 | 
					</footer>
 | 
				
			||||||
 | 
				
			|||||||
@ -4,17 +4,14 @@
 | 
				
			|||||||
    <meta name="viewport" content="width=device-width, initial-scale=1">
 | 
					    <meta name="viewport" content="width=device-width, initial-scale=1">
 | 
				
			||||||
    <meta name="description" content="">
 | 
					    <meta name="description" content="">
 | 
				
			||||||
    <meta name="author" content="">
 | 
					    <meta name="author" content="">
 | 
				
			||||||
    <link rel="icon" href="{{ url_for('static', filename='bootstrap.min.css') }}">
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <title>Un serveur et des ...</title>
 | 
					    <title>Un serveur et des ...</title>
 | 
				
			||||||
    <!-- Bootstrap core CSS -->
 | 
					    
 | 
				
			||||||
    <link href="{{ url_for('static', filename='bootstrap.min.css') }}" rel="stylesheet">
 | 
					    <link href="/theme.min.css" rel="stylesheet">
 | 
				
			||||||
    <!-- Bootstrap theme -->
 | 
					    <link href="{{ url_for('static', filename='vendors/picocss/pico.colors.min.css') }}" rel="stylesheet"> 
 | 
				
			||||||
    <link href="{{ url_for('static', filename='bootstrap-theme.min.css') }}" rel="stylesheet">
 | 
					    <link href="{{ url_for('static', filename='pywallter.css') }}" rel="stylesheet">
 | 
				
			||||||
    <!-- Custom styles for this template -->
 | 
					    <link href="{{ url_for('static', filename='icons.css') }}" rel="stylesheet">
 | 
				
			||||||
    <link href="{{ url_for('static', filename='up.css') }}" rel="stylesheet">
 | 
					 | 
				
			||||||
    <link href="{{ url_for('static', filename='cover.css') }}" rel="stylesheet">
 | 
					 | 
				
			||||||
    <link href="{{ url_for('static', filename='simplemde.min.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">
 | 
					    <link href="{{ url_for('static', filename='glightbox.min.css') }}" rel="stylesheet">
 | 
				
			||||||
 
 | 
					    
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
 | 
				
			|||||||
@ -2,4 +2,4 @@
 | 
				
			|||||||
<!--================================================== -->
 | 
					<!--================================================== -->
 | 
				
			||||||
<!-- Placed at the end of the document so the pages load faster -->
 | 
					<!-- 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='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 -->
 | 
					<!-- 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='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='docs.min.js') }}"></script>
 | 
				
			||||||
<script src="{{ url_for('static', filename='simplemde.min.js') }}"></script>
 | 
					<script src="{{ url_for('static', filename='simplemde.min.js') }}"></script>
 | 
				
			||||||
 | 
				
			|||||||
@ -1,99 +1,90 @@
 | 
				
			|||||||
<!-- Fixed navbar -->
 | 
					<!-- Fixed navbar -->
 | 
				
			||||||
<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
 | 
					<aside class="menu">
 | 
				
			||||||
        <div class="navbar-header">
 | 
					  <div class="logo">
 | 
				
			||||||
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
 | 
					  </div>
 | 
				
			||||||
                <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>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            </li>
 | 
					  <nav>
 | 
				
			||||||
            <li{% if section == "Logs" %} class="active" {% endif %}>
 | 
					    <h4>
 | 
				
			||||||
              <a href="/logs/"><span class="glyphicon glyphicon-floppy-disk" aria-hidden="true"></span>
 | 
					      <span class="blog"></span>
 | 
				
			||||||
                Logs
 | 
					      Mon blog
 | 
				
			||||||
              </a>
 | 
					    </h4>
 | 
				
			||||||
            </li>
 | 
					    <ul>
 | 
				
			||||||
 | 
					      <li>
 | 
				
			||||||
	    <li {% if section == "Profil" %} class="dropdown active" {% else %} class="dropdown" {% endif %}>
 | 
						
 | 
				
			||||||
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">
 | 
						<a href="/myblog/new-article/" {% if request.path == "/myblog/new-article/" %} class="invert" {% endif %} > <span class="new-article-blog"></span> 
 | 
				
			||||||
		<span class="glyphicon glyphicon-home" aria-hidden="true"></span>
 | 
						  Ecrire un billet </a>
 | 
				
			||||||
		<span id="majuscule">{{ session['username'] }} </span>
 | 
					      </li>
 | 
				
			||||||
		<span class="caret"></span></a>
 | 
					      <li>
 | 
				
			||||||
              <ul class="dropdown-menu" role="menu">
 | 
						<a href="/myblog/list-articles/" {% if request.path == "/myblog/list-articles/" %} class="invert" {% endif %} ><span class="list-articles-blog"></span>
 | 
				
			||||||
                <li><a href="/profil/"><span class="glyphicon glyphicon-user" aria-hidden="true"></span> Profil</a></li>
 | 
						  Gérer mes billets
 | 
				
			||||||
                <li><a href="/profil/change-password/"> <span class="glyphicon glyphicon-lock" aria-hidden="true"></span>
 | 
						</a>
 | 
				
			||||||
                    Changer mon mot de passe </a></li>
 | 
					      </li>
 | 
				
			||||||
                <li><a href="/invitation/"><span class="glyphicon glyphicon-cog" aria-hidden="true"></span> Inviter une personne</a></li>
 | 
					      <li>
 | 
				
			||||||
                <li><a href="/delete_me/"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span> Supprimer mon compte </a></li>
 | 
						<a href="/myblog/personalize/" {% if request.path == "/myblog/personalize/" %} class="invert" {% endif %} ><span class="custom-blog"></span>
 | 
				
			||||||
              </ul>
 | 
						  Configurer mon site et mon blog
 | 
				
			||||||
            </li>
 | 
					        </a>
 | 
				
			||||||
          </ul>
 | 
					      </li>
 | 
				
			||||||
          <ul class="nav navbar-nav navbar-right">
 | 
					      <li>
 | 
				
			||||||
            <li>
 | 
						<a href="/myblog/view/"  {% if request.path == "/myblog/view/" %} class="invert" {% endif %} ><span class="view-blog" aria-hidden="true"></span>         
 | 
				
			||||||
              <a href="/logout/">
 | 
						  Voir mon blog
 | 
				
			||||||
                <span class="glyphicon glyphicon-off" aria-hidden="true"></span>
 | 
					        </a>
 | 
				
			||||||
                Se déconnecter
 | 
					      </li>
 | 
				
			||||||
              </a>
 | 
					    </ul>
 | 
				
			||||||
            </li>
 | 
					    
 | 
				
			||||||
          </ul>
 | 
					      
 | 
				
			||||||
        </div><!--/.nav-collapse -->
 | 
					    <h4>
 | 
				
			||||||
    </div>
 | 
					      <span class="folder-home"></span> Mes fichiers
 | 
				
			||||||
 | 
					    </h4>
 | 
				
			||||||
<br/>
 | 
					    
 | 
				
			||||||
<br/>
 | 
					    <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">
 | 
					<html lang="fr">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{% include '_head.html' %}
 | 
					{% 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">
 | 
					    <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.
 | 
				
			||||||
          <div class="masthead clearfix">
 | 
					      Tu peux consulter ou participer au tableau des post-its pour communiquer avec les autres membres ou
 | 
				
			||||||
            <div class="inner">
 | 
					      simplement savoir ce qu'il se passe sur le serveur.
 | 
				
			||||||
              <h3 class="masthead-brand">Pywallter</h3>
 | 
					    </p>
 | 
				
			||||||
            </div>
 | 
					    <p>
 | 
				
			||||||
          </div>
 | 
					      Tu peux gérer ton compte MAIL et XMPP si les serveurs Mail(SMTP, IMAP) et XMPP sont actifs.
 | 
				
			||||||
 | 
					    </p>
 | 
				
			||||||
          <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>
 | 
					 | 
				
			||||||
	   
 | 
						   
 | 
				
			||||||
	    {% include '_flash_msgs.html' %}
 | 
						    {% 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>
 | 
					</body>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -2,33 +2,18 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
{% block main %}
 | 
					{% block main %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<div class="page-header">
 | 
					
 | 
				
			||||||
<h1> Supprimer mon compte </h1>
 | 
					<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>
 | 
					</p>
 | 
				
			||||||
<h3> Entrez votre mot de passe pour confirmer la suppression de votre compte </h3>
 | 
					<h3> Entrez votre mot de passe pour confirmer la suppression de votre compte </h3>
 | 
				
			||||||
</div>
 | 
					
 | 
				
			||||||
  <form method="POST" action="{{ url_for('loginlogout.delete_account') }}">
 | 
					  <form method="POST" action="{{ url_for('loginlogout.delete_account') }}">
 | 
				
			||||||
                <input type="password" name="passwd" id="passwd" placeholder="Mot de passe" class="form-control"><br />
 | 
					                <input type="password" name="passwd" id="passwd" placeholder="Mot de passe" class="form-control"><br />
 | 
				
			||||||
                <br>
 | 
					                <br>
 | 
				
			||||||
                <button id="tada" class="btn btn-default btn-primary" type="submit"> Je supprime mon compte </button>
 | 
					                <button id="tada" class="btn btn-default btn-primary" type="submit"> Je supprime mon compte </button>
 | 
				
			||||||
              </form>
 | 
					              </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 %}
 | 
					{% endblock %}
 | 
				
			||||||
 | 
				
			|||||||
@ -2,39 +2,31 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
{% block main %}
 | 
					{% block main %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<div class="container">
 | 
					    <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>
 | 
				
			||||||
<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>
 | 
					 | 
				
			||||||
<h2> {{ oldpost[0] }}</h2><br />
 | 
					<h2> {{ oldpost[0] }}</h2><br />
 | 
				
			||||||
<form action="" method="POST" id="postform" style="height: 15vw;">
 | 
					<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 />
 | 
					  <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>
 | 
					  <h3> Visibilité </h3>
 | 
				
			||||||
  <div class="row">
 | 
					  <div class="center">
 | 
				
			||||||
    {% if oldpost[2] == 'public' %}
 | 
					    {% if oldpost[2] == 'public' %}
 | 
				
			||||||
    <div class="col-sm-4"></div>
 | 
					    <input type="radio" name="status" value="prive"> Privé
 | 
				
			||||||
    <div class="col-sm-1"><input type="radio" name="status" value="prive"> <br/>Privé </div>
 | 
					    <input type="radio" name="status" value="public" checked>  Publique
 | 
				
			||||||
    <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>
 | 
					 | 
				
			||||||
    {% else %}
 | 
					    {% else %}
 | 
				
			||||||
    <div class="col-sm-4"></div>
 | 
					    <input type="radio" name="status" value="Privé" checked>  Privé  
 | 
				
			||||||
    <div class="col-sm-1"><input type="radio" name="status" value="Privé" checked>  <br/> Privé </div>
 | 
					    <input type="radio" name="status" value="public">  Publique 
 | 
				
			||||||
    <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>
 | 
					 | 
				
			||||||
    {% endif %}
 | 
					    {% endif %}
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
  <br />
 | 
					  <br />
 | 
				
			||||||
  <button id="tada" class="btn btn-default btn-primary" type="submit"> Mettre à jour </button>
 | 
					  <button type="submit"> Mettre à jour </button>
 | 
				
			||||||
</form>
 | 
					</form>
 | 
				
			||||||
<br />
 | 
					<br />
 | 
				
			||||||
</div>
 | 
					
 | 
				
			||||||
{% endblock %}
 | 
					{% endblock %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</div>
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -3,39 +3,32 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
{% block main %}
 | 
					{% block main %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<h3> Ma gallerie </h3>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
<br />
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<div class="center row">
 | 
					 | 
				
			||||||
{% if fichiers %}
 | 
					{% if fichiers %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   
 | 
					<div class="gallery">   
 | 
				
			||||||
{% for image in fichiers %}
 | 
					{% for image in fichiers %}
 | 
				
			||||||
<div class="column">
 | 
					
 | 
				
			||||||
 | 
					<div class="picture">
 | 
				
			||||||
  <a href="/myfiles/images/{{ image }}" class="glightbox">
 | 
					  <a href="/myfiles/images/{{ image }}" class="glightbox">
 | 
				
			||||||
    <img src="/myfiles/images/thumbnails/{{ image }}" class="img-rounded gallery" alt=""/>
 | 
					    <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="danger trash"></button></a>
 | 
				
			||||||
   <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>
 | 
					 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    {% endfor %}
 | 
					{% endfor %}
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{% else %}
 | 
					{% else %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<h2> Il n'y a aucunes images dans votre gallerie </h2>
 | 
					<h2> Il n'y a aucunes images dans votre gallerie </h2>   
 | 
				
			||||||
       
 | 
					
 | 
				
			||||||
   
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
{% endif %}
 | 
					{% endif %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 </div>
 | 
					</div>
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -3,51 +3,33 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
{% block main %}
 | 
					{% 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">
 | 
					<p>
 | 
				
			||||||
            {# on affiche les messages d'erreur puis les messages de succes #}
 | 
					  Si vous voulez vous pouvez inviter une personne à se crée un compte sur ce serveur
 | 
				
			||||||
            {% for categorie in ['error', 'succes'] %}
 | 
					  pour cela vous devez crée un lien d'inscription. Ce lien restera valable tant
 | 
				
			||||||
            {% with msgs = get_flashed_messages(category_filter=[categorie]) %}
 | 
					  que la personne ne s'est pas inscrite ou tant que vous ne créez pas un autre lien.
 | 
				
			||||||
            {% if msgs %}
 | 
					  Les invitations se font une par une et sont limité à 20 personnes pour ne pas surcharger notre petit serveur :).
 | 
				
			||||||
            <div class="flashed {{ categorie }}">
 | 
					  Une fois que la personne s'est incrite votre nombre d'invitations sera mis à jour
 | 
				
			||||||
                {% for m in msgs %}
 | 
					</p>
 | 
				
			||||||
                <p>{{ m|safe }}</p>
 | 
					
 | 
				
			||||||
                {% endfor %}
 | 
					
 | 
				
			||||||
            </div>
 | 
					<h3>Création du lien d'inscription</h3>
 | 
				
			||||||
            {% endif %}
 | 
					
 | 
				
			||||||
            {% endwith %}
 | 
					{% if token %}
 | 
				
			||||||
            {% endfor %}
 | 
					<h3> Votre lien d'inscription en cours: </h3>
 | 
				
			||||||
        </div>
 | 
						
 | 
				
			||||||
 | 
					<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 %}
 | 
					{% endblock %}
 | 
				
			||||||
 | 
				
			|||||||
@ -4,41 +4,24 @@
 | 
				
			|||||||
{% block main %}
 | 
					{% block main %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<h2> Vos articles de blog </h2>
 | 
				
			||||||
 | 
					   
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% for article in list_posts %}
 | 
				
			||||||
 | 
					<article>
 | 
				
			||||||
 | 
					  <h3> {{ article.title }} </h3>
 | 
				
			||||||
 | 
					  <p> {{ article.subtitle }} </p>
 | 
				
			||||||
 | 
					  <br/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <small> Créé le : {{ article.time }} </small> <br/>
 | 
				
			||||||
<div class="row">
 | 
					  <small> Modifié le : {{ article.last_updated }}</small>
 | 
				
			||||||
  <div class="col-md-12">
 | 
					  <p> Status : {{ article.status }}</p>
 | 
				
			||||||
    <h2> Vos articles de blog </h2>
 | 
					  <br/>
 | 
				
			||||||
    <table class="table" >
 | 
					  
 | 
				
			||||||
      <thead>
 | 
					  <a href="{{ url_for('blog.edit', title=article.title) }}"><button type="button"> Editer </button></a>
 | 
				
			||||||
        <tr>
 | 
					  <a href="{{ url_for('blog.delete', title=article.title) }}"><button type="button">Supprimer</button></a>
 | 
				
			||||||
          <th>Titre  <span class="badge">{{ nb_articles }}</span></th>
 | 
					  <a href="{{ url_for('blog.edit', title=article.title) }}"><button type="button"> Publier </button></a>
 | 
				
			||||||
	  <th> Créé le : </th>
 | 
					</article>
 | 
				
			||||||
	  <th> Dernière modification </th>
 | 
					{% endfor %}
 | 
				
			||||||
	  <th> status </th>
 | 
					  
 | 
				
			||||||
	  <th></th>
 | 
					  {% endblock %}
 | 
				
			||||||
          <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 %}
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -2,51 +2,41 @@
 | 
				
			|||||||
<html lang="fr">
 | 
					<html lang="fr">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{% include '_head.html' %}
 | 
					{% 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">
 | 
					  {% include '_footer.html' %}
 | 
				
			||||||
              <h3 class="masthead-brand">Pywallter</h3>
 | 
					    
 | 
				
			||||||
            </div>
 | 
					  {% include '_js.html' %}
 | 
				
			||||||
          </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' %}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -4,17 +4,14 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
{% block main %}
 | 
					{% block main %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <div class="col-sm-1"></div>
 | 
					    <p> Hello <span id="majuscule">{{ session['username'] }} ! </span>
 | 
				
			||||||
  <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,
 | 
					      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é
 | 
					      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.
 | 
					      si vous souhaitez le modifier plus-tard avant sa publication.
 | 
				
			||||||
      Par défaut il est laissé en privé pour éviter les publications
 | 
					      Par défaut il est laissé en privé pour éviter les publications
 | 
				
			||||||
      accidentelles.
 | 
					      accidentelles.
 | 
				
			||||||
    </div>
 | 
					    </p>
 | 
				
			||||||
  </div>
 | 
					 
 | 
				
			||||||
<br />
 | 
					<br />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<form method="POST" action="{{ url_for('blog.new_article') }}" id="postform">
 | 
					<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="title" id="title" placeholder="Titre" class="form-control"><br />
 | 
				
			||||||
  <input type="text" name="subtitle" id="subtitle" placeholder="Sous-titre" class="form-control"><br />
 | 
					  <input type="text" name="subtitle" id="subtitle" placeholder="Sous-titre" class="form-control"><br />
 | 
				
			||||||
  <hr>
 | 
					  <hr>
 | 
				
			||||||
  <textarea id="editeurMarkdown" class="form-control" form="postform" name="content" id="content" placeholder="Contenu" style="height:10vw;"></textarea><br />
 | 
					  <textarea id="editeurMarkdown" class="form-control" form="postform" name="content" id="content" placeholder="Contenu" style="height:20vw;"></textarea><br />
 | 
				
			||||||
  <div class="row">
 | 
					  <div class="center">
 | 
				
			||||||
    <div class="col-sm-4"></div>
 | 
					    <input type="radio" name="status"  value="private" checked> Privé
 | 
				
			||||||
    <div class="col-sm-1"><input type="radio" name="status" value="private" checked>Privé</div>
 | 
					    <input type="radio" name="status"  value="public">Public<br>
 | 
				
			||||||
    <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>
 | 
					 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
  <br />
 | 
					  <br/>
 | 
				
			||||||
  <button id="tada" class="btn btn-default btn-primary" type="submit"> Créer l'article </button>
 | 
					  <button id="tada" type="submit"> Créer l'article </button>
 | 
				
			||||||
</form>
 | 
					</form>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 </div>
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{% endblock %}
 | 
					{% endblock %}
 | 
				
			||||||
 | 
				
			|||||||
@ -3,69 +3,71 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
{% block main %}
 | 
					{% block main %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<!--<div class="page-header">
 | 
					 | 
				
			||||||
<h1>Profil</h1>
 | 
					 | 
				
			||||||
</div>-->
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
<div class="row">
 | 
					<div>
 | 
				
			||||||
    <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>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <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>
 | 
					  <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
 | 
				
			||||||
            pour un téléphone sous Android </p>
 | 
					    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>
 | 
					     <label for="theme">Theme</label>
 | 
				
			||||||
    <div class="col-sm-6">
 | 
					     <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>
 | 
					</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{% endblock %}
 | 
					{% endblock %}
 | 
				
			||||||
 | 
				
			|||||||
@ -4,23 +4,25 @@
 | 
				
			|||||||
{% include '_head.html' %}
 | 
					{% include '_head.html' %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<body role="document">
 | 
					<body>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
 {% include '_nav_userlogin.html'%}
 | 
					   {% include '_header.html' %} 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   {% include '_nav_userlogin.html'%}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <main>
 | 
				
			||||||
<div class="container theme-showcase" role="main">
 | 
					 
 | 
				
			||||||
 | 
					  {% include '_flash_msgs.html' %}   
 | 
				
			||||||
    {% block main %}{% endblock %}
 | 
					    {% block main %}{% endblock %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</div>
 | 
					  </main>
 | 
				
			||||||
 | 
					 | 
				
			||||||
{% include '_flash_msgs.html' %}
 | 
					 | 
				
			||||||
{% include '_footer.html' %}
 | 
					 | 
				
			||||||
{% include '_js-core.html' %}
 | 
					 | 
				
			||||||
{% include '_js-gallery.html' %}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					  {% include '_footer.html' %}
 | 
				
			||||||
 | 
					  {% include '_js-core.html' %}
 | 
				
			||||||
 | 
					  {% include '_js-gallery.html' %}
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
 | 
				
			|||||||
@ -4,50 +4,24 @@
 | 
				
			|||||||
{% extends 'up_squelette.html' %}
 | 
					{% extends 'up_squelette.html' %}
 | 
				
			||||||
{% block main %}
 | 
					{% 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">
 | 
					<br />
 | 
				
			||||||
            <div class="panel-heading">
 | 
					<p>Ici, vous pouvez envoyer des fichiers afin de les sauvegarder ou de les rendre accessibles à quelqu'un d'autre. Tu pourras ensuite
 | 
				
			||||||
              <h3 class="panel-title">Choisissez un ou plusieurs fichiers à uploader</h3>
 | 
					  les consulter dans notre rubrique <a href="/view/"> Mes fichiers </a>. Les images envoyées, quand à elles se retrouveront directement
 | 
				
			||||||
            </div>
 | 
					  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
 | 
				
			||||||
            <div class="panel-body">
 | 
					  une sauvegarde de tous vos fichiers qui vous mettrez ici. Nous ne pourrons, en aucun cas, être tenu responsable de la perte de vos
 | 
				
			||||||
                <!--<div class="form-group">-->
 | 
					  données. Merci de votre compréhension.
 | 
				
			||||||
		<form action="" method="post" enctype="multipart/form-data">
 | 
					</p>
 | 
				
			||||||
	            <input type="file" name="fic"id="fic" multiple>
 | 
					 | 
				
			||||||
		    <br>
 | 
					 | 
				
			||||||
                    <button type="submit" id="tada" class="btn btn btn-success">Upload !</button>
 | 
					 | 
				
			||||||
                </form>
 | 
					 | 
				
			||||||
		<!--</div>-->
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                <div class="msginfo">
 | 
					<br />
 | 
				
			||||||
                 {# on affiche les messages d'erreur puis les messages de succes #}
 | 
					<h3>Choisissez un ou plusieurs fichiers à téléverser </h3>
 | 
				
			||||||
                 {% 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>
 | 
					 | 
				
			||||||
      </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 %}
 | 
					{% endblock %}
 | 
				
			||||||
 | 
				
			|||||||
@ -184,3 +184,12 @@ def remove_publicFile(filename):
 | 
				
			|||||||
        return redirect(url_for('filesupload.list', _external=True))
 | 
					        return redirect(url_for('filesupload.list', _external=True))
 | 
				
			||||||
    else :
 | 
					    else :
 | 
				
			||||||
       return redirect(BASE_URL, code=401)
 | 
					       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:
 | 
					            if user_exist:
 | 
				
			||||||
                user = user_exist[0]
 | 
					                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:
 | 
					                if user == request.form['user'] and bcrypt.check_password_hash(passwd_bcrypt, password) is True:
 | 
				
			||||||
                    session['username'] = request.form['user']
 | 
					                    session['username'] = request.form['user']
 | 
				
			||||||
 | 
				
			|||||||
@ -5,6 +5,7 @@ from markupsafe import escape
 | 
				
			|||||||
import time
 | 
					import time
 | 
				
			||||||
import sqlite3
 | 
					import sqlite3
 | 
				
			||||||
import os
 | 
					import os
 | 
				
			||||||
 | 
					from shutil import copy
 | 
				
			||||||
from socket import gethostname
 | 
					from socket import gethostname
 | 
				
			||||||
from flask_bcrypt import Bcrypt
 | 
					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
 | 
					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() :
 | 
					def profile() :
 | 
				
			||||||
   if 'username' in session :
 | 
					   if 'username' in session :
 | 
				
			||||||
      UTILISATEUR='%s' % escape(session['username'])
 | 
					      user='%s' % escape(session['username'])
 | 
				
			||||||
      conn = sqlite3.connect(DATABASE) # Connexion à la base de donnée
 | 
					      conn = sqlite3.connect(DATABASE) # Connexion à la base de donnée
 | 
				
			||||||
      cursor = conn.cursor() # Création de l'objet "curseur"
 | 
					      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())
 | 
					      tmp = (cursor.fetchone())
 | 
				
			||||||
      profil_user = dict()
 | 
					      profil_user = dict()
 | 
				
			||||||
      profil_user['avatar'] = tmp[0]
 | 
					      profil_user['avatar'] = tmp[0]
 | 
				
			||||||
@ -62,6 +63,12 @@ def profile() :
 | 
				
			|||||||
      if request.method == 'POST' :
 | 
					      if request.method == 'POST' :
 | 
				
			||||||
 | 
					
 | 
				
			||||||
         f = request.files['fic']
 | 
					         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']:
 | 
					         if request.form['nom']:
 | 
				
			||||||
            profil_user['nom'] = request.form['nom']
 | 
					            profil_user['nom'] = request.form['nom']
 | 
				
			||||||
         if request.form['prenom']:
 | 
					         if request.form['prenom']:
 | 
				
			||||||
@ -74,30 +81,30 @@ def profile() :
 | 
				
			|||||||
            else:
 | 
					            else:
 | 
				
			||||||
               flash(u'Adresse de courriel invalide', 'error')
 | 
					               flash(u'Adresse de courriel invalide', 'error')
 | 
				
			||||||
         else:
 | 
					         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é
 | 
					         if f: # On vérifie qu'un fichier a bien été envoyé
 | 
				
			||||||
            nom = secure_filename(f.filename)
 | 
					            nom = secure_filename(f.filename)
 | 
				
			||||||
            f.save(DOSSIER_PERSO + UTILISATEUR + '/profile/' + nom)
 | 
					            f.save(DOSSIER_PERSO + user + '/profile/' + nom)
 | 
				
			||||||
            image = DOSSIER_PERSO + UTILISATEUR + '/profile/' + nom
 | 
					            image = DOSSIER_PERSO + user + '/profile/' + nom
 | 
				
			||||||
            with Image.open(image) as img:
 | 
					            with Image.open(image) as img:
 | 
				
			||||||
               img.thumbnail((300,200))
 | 
					               img.thumbnail((300,200))
 | 
				
			||||||
               img.save( DOSSIER_PERSO + UTILISATEUR + '/profile/' + nom)
 | 
					               img.save( DOSSIER_PERSO + user + '/profile/' + nom)
 | 
				
			||||||
               filename = nom
 | 
					               filename = nom
 | 
				
			||||||
               conn = sqlite3.connect(DATABASE) # Connexion à la base de donnée
 | 
					               conn = sqlite3.connect(DATABASE) # Connexion à la base de donnée
 | 
				
			||||||
               cursor = conn.cursor() # Création de l'objet "curseur"
 | 
					               cursor = conn.cursor() # Création de l'objet "curseur"
 | 
				
			||||||
               cursor.execute("UPDATE users SET avatar=? WHERE name=?",
 | 
					               cursor.execute("UPDATE users SET avatar=? WHERE name=?",
 | 
				
			||||||
                              (filename, UTILISATEUR))
 | 
					                              (filename, user))
 | 
				
			||||||
               conn.commit()
 | 
					               conn.commit()
 | 
				
			||||||
               cursor = conn.cursor() # Création de l'objet "curseur"
 | 
					               cursor = conn.cursor() # Création de l'objet "curseur"
 | 
				
			||||||
               conn.close()
 | 
					               conn.close()
 | 
				
			||||||
               flash(u'Image de profil mise à jour', 'succes')
 | 
					               flash(u'Image de profil mise à jour', 'success')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
         else:
 | 
					         else:
 | 
				
			||||||
            conn = sqlite3.connect(DATABASE) # Connexion à la base de donnée
 | 
					            conn = sqlite3.connect(DATABASE) # Connexion à la base de donnée
 | 
				
			||||||
            cursor = conn.cursor() # Création de l\'objet "curseur"
 | 
					            cursor = conn.cursor() # Création de l\'objet "curseur"
 | 
				
			||||||
            cursor.execute("UPDATE users SET nom=?, prenom=?, age=?, mail_rescue=? WHERE name=?",
 | 
					            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'],
 | 
					                                 (profil_user['nom'], profil_user['prenom'], profil_user['age'], profil_user['mail_rescue'],
 | 
				
			||||||
                                  UTILISATEUR))
 | 
					                                  user))
 | 
				
			||||||
            conn.commit()
 | 
					            conn.commit()
 | 
				
			||||||
            flash(u'Le profil a été mis à jour', 'succes')
 | 
					            flash(u'Le profil a été mis à jour', 'succes')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -107,11 +114,24 @@ def profile() :
 | 
				
			|||||||
      return render_template('profil.html',
 | 
					      return render_template('profil.html',
 | 
				
			||||||
                             section="Profil",
 | 
					                             section="Profil",
 | 
				
			||||||
                             profil=profil_user,
 | 
					                             profil=profil_user,
 | 
				
			||||||
                             username=UTILISATEUR)
 | 
					                             username=user)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   else :
 | 
					   else :
 | 
				
			||||||
      return redirect(BASE_URL, code=401)
 | 
					      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'] )
 | 
					@profil.route('/profil/change-password/', methods=['GET','POST'] )
 | 
				
			||||||
def change_passwd() :
 | 
					def change_passwd() :
 | 
				
			||||||
   if 'username' in session:
 | 
					   if 'username' in session:
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user