inital upload
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
{% extends "layout.jinja2" %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="card mb-0">
|
||||
<div class="card-body">
|
||||
<div class="alert alert-danger">
|
||||
<p class="lead text-center bg-error"><strong>404</strong> - Désolé, la page demandée n'existe plus.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
@@ -0,0 +1,47 @@
|
||||
{% extends "layout.jinja2" %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="card mb-0">
|
||||
<div class="card-body">
|
||||
{% if request.authenticated_userid %}
|
||||
<p>
|
||||
<a href="{{ request.route_url('topic', topic=entry.topic_id) }}" class="btn btn-light" role="button">
|
||||
<span class="glyphicon glyphicon-chevron-left"></span> Retour</a>
|
||||
<a href="{{ request.route_url('blog_edit', topic=entry.topic_id, id=entry.id) }}" class="btn btn-primary" role="button">
|
||||
<span class="glyphicon glyphicon-pencil"></span> Modifier</a>
|
||||
<a href="{{ request.route_url('blog_copy', topic=entry.topic_id, id=entry.id) }}" class="btn btn-success" role="button">
|
||||
<span class="glyphicon glyphicon-duplicate"></span> Duppliquer</a>
|
||||
</p>
|
||||
|
||||
{% endif %}
|
||||
|
||||
<p>
|
||||
<strong>{{ entry.author }}</strong> - Publié le <strong>{{ entry.create_date }}</strong><br>
|
||||
</p>
|
||||
<hr/>
|
||||
<p>{{ body_html | safe }}</p>
|
||||
<hr/>
|
||||
|
||||
{% if entry.source_link != '' %}
|
||||
<ul>
|
||||
<li><b>{{ scr_label }}</b> : <a href="{{ entry.source_link }}">{{ entry.source_title }}</a> - {{ entry.source_site }}</li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
{% if entry.related %}
|
||||
<ul>
|
||||
<li><b>{{ rel_label }}</b> : <a href="{{ request.route_url('blog', id=related.id, slug=related.title) }}">{{ related.title }}</a> - {{ related.author }}</li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
|
||||
<p>
|
||||
{% if request.authenticated_userid %}
|
||||
Topic - Tag : <strong>{{ entry.topic_id }}</strong> - <strong>{{ entry.tag }}</strong><br>
|
||||
Language : <strong>{{ entry.language }}</strong><br>
|
||||
Statut : <strong>{{ entry.status }}</strong><br>
|
||||
{% endif %}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,113 @@
|
||||
{% extends "layout.jinja2" %}
|
||||
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<div class="card mb-0">
|
||||
<div class="card-body">
|
||||
|
||||
<form action="{{ url }}" method="post" class="form needs-validation">
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label required-field" for="title">Titre</label>
|
||||
<input class="form-control" name="title" type="text" value="{{entry.title}}" required>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label required-field" for="body">Corps du texte</label>
|
||||
<textarea class="form-control monospace-font" id="body" name="body" required rows="20" cols="35">
|
||||
{{ entry.body }}
|
||||
</textarea>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label required-field" for="tag">Tag</label>
|
||||
<select class="form-control" id="tag" name="tag" value="{{ entry.tag }}">
|
||||
{% for x in tags %}
|
||||
<option value="{{x.tag}}"
|
||||
{% if entry.tag == x.tag %} selected {% endif %}>{{x.tag_name}}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label required-field" for="author">Auteur</label>
|
||||
<input class="form-control" name="author" type="text" value="{{entry.author}}" required>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label for="author">Source lien</label>
|
||||
<input class="form-control" name="source_link" type="text" value="{{entry.source_link}}">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label for="author">Source titre</label>
|
||||
<input class="form-control" name="source_title" type="text" value="{{entry.source_title}}">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label for="author">Contenu corrélé</label>
|
||||
<input class="form-control" name="related" type="text" value="{{entry.related}}">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label required-field" for="status">Statut</label>
|
||||
<select class="form-control" id="status" name="status" value="{{ entry.status}}">
|
||||
<option value="brouillon"
|
||||
{% if entry.status == "brouillon" %} selected {% endif %}>Brouillon</option>
|
||||
<option value="privé"
|
||||
{% if entry.status == "privé" %} selected {% endif %}>Privé</option>
|
||||
<option value="publié"
|
||||
{% if entry.status == "publié" %} selected {% endif %}>Publié</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label required-field" for="created">Créé le</label>
|
||||
<input class="form-control" name="created" type="text" value="{{entry.created}}" required>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Topic : <strong>{{ entry.topic_id }}</strong> - <strong>{{ entry.language }}</strong><br>
|
||||
{% if blog_id != '0' %}
|
||||
Modifié le : <strong>{{ entry.edit_date }}</strong>
|
||||
{% endif %}
|
||||
</p>
|
||||
<br />
|
||||
<div class="mb-3">
|
||||
<a class="btn btn-light" href="{{ url_retour }}">Retour</a>
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted">Enregistrer</button>
|
||||
{% if blog_id != '0' %}
|
||||
<button class="btn btn-danger" type="button" data-bs-toggle="modal" data-bs-target="#confirmDelete">Supprimer</button>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<p class="text-center">Apprendre la syntaxe de <a href="https://daringfireball.net/projects/markdown/syntax"
|
||||
target="_blank">Markdown</a></li></p>
|
||||
|
||||
</form>
|
||||
|
||||
<!-- Modal : Confirmation SUPRESSION -->
|
||||
<div id="confirmDelete" class="modal">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">Supprimer une page</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<!-- The form is placed inside the body of modal -->
|
||||
<p>Etes-vous certain(e) de vouloir supprimer <b><br>
|
||||
{{ entry.title }}</b> ?</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<form id="confirmForm" method="post">
|
||||
<button type="submit" class="btn btn-danger" name="form.deleted">Supprimer</button>
|
||||
<button type="button" class="btn btn-success" data-bs-dismiss="modal">Fermer</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,48 @@
|
||||
{% extends "layout.jinja2" %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="card mb-0">
|
||||
<div class="card-body">
|
||||
|
||||
<form id="search-form" class="form-horizontal" role="form" action="/blog_search" method="post">
|
||||
|
||||
<div class="mb-3">
|
||||
<div class="input-group mb-3">
|
||||
<input type="text" class="form-control" name="criteria">
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted">Rechercher</button>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class="row">
|
||||
<table class="table table-sm">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Titre</th>
|
||||
<th>Tags</th>
|
||||
<th>Date</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
{% for entry in items %}
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{{ request.route_url('blog', id=entry.id, slug='slug') }}">
|
||||
{{ entry.title }}
|
||||
</a>
|
||||
</td>
|
||||
<td>{{ entry.tag }}</td>
|
||||
<td>{{ entry.edit_date }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<br />
|
||||
<br />
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,61 @@
|
||||
{% extends "layout.jinja2" %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<div class="card mb-0">
|
||||
<div class="card-body">
|
||||
<form action="{{ request.route_url('home') }}" method="POST" class="form">
|
||||
<div class="mb-3">
|
||||
<label for="username" class="form-label required-field">Nom et prénom - Tên họ</label>
|
||||
<input type="text" class="form-control" name="name" value="{{name}}"required>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label for="email" class="form-label">Email</label>
|
||||
<input type="email" class="form-control" name="email" required value="{{email}} ">
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label for="comments" class="form-label">"Message - Tin nhắn"</label>
|
||||
<textarea class="form-control" id="comments" name="comments" required rows="5"></textarea>
|
||||
<br>
|
||||
<div class="g-recaptcha" data-sitekey="6LeDvVUgAAAAAOqD_-h93kd5aW8CmpeVvKYu-m0p" data-callback='recaptchaCallback'></div>
|
||||
<input type="hidden" id="response" name="response" value="" />
|
||||
<br>
|
||||
<button class="btn btn-primary hidden" id="btnSubmit" type="submit" name="form.submitted">Envoyer</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<h5>Méditation Sunyata Paris</h5>
|
||||
<p>
|
||||
116 bd Maréchal Foch<br>
|
||||
93160 NOISY LE GRAND<br>
|
||||
<br>
|
||||
<span class="badge bg-danger">RER A</span> station Bry sur Marne<br>
|
||||
<br>
|
||||
<span class="badge bg-primary">Bus 220</span> arrêt Verdun<br>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
|
||||
<script>
|
||||
function recaptchaCallback() {
|
||||
var btnSubmit = document.getElementById("btnSubmit");
|
||||
var response = grecaptcha.getResponse();
|
||||
|
||||
document.getElementById("response").value = response;
|
||||
if ( btnSubmit.classList.contains("hidden") ) {
|
||||
btnSubmit.classList.remove("hidden");
|
||||
btnSubmit.classList.add("show");
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,219 @@
|
||||
{% extends "layout.jinja2" %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="row">
|
||||
<!-- Carousel -->
|
||||
<div class="card p-0 mb-4">
|
||||
<div class="card-body p-0">
|
||||
<div id="myCarousel" class="carousel slide" data-bs-ride="carousel">
|
||||
|
||||
<!-- Indicators/dots -->
|
||||
<div class="carousel-indicators">
|
||||
<button type="button" data-bs-target="#myCarousel" data-bs-slide-to="0" class="active"></button>
|
||||
<button type="button" data-bs-target="#myCarousel" data-bs-slide-to="1"></button>
|
||||
<button type="button" data-bs-target="#myCarousel" data-bs-slide-to="2"></button>
|
||||
<button type="button" data-bs-target="#myCarousel" data-bs-slide-to="3"></button>
|
||||
<button type="button" data-bs-target="#myCarousel" data-bs-slide-to="4"></button>
|
||||
<button type="button" data-bs-target="#myCarousel" data-bs-slide-to="5"></button>
|
||||
<button type="button" data-bs-target="#myCarousel" data-bs-slide-to="6"></button>
|
||||
<button type="button" data-bs-target="#myCarousel" data-bs-slide-to="7"></button>
|
||||
<button type="button" data-bs-target="#myCarousel" data-bs-slide-to="8"></button>
|
||||
<button type="button" data-bs-target="#myCarousel" data-bs-slide-to="9"></button>
|
||||
</div>
|
||||
|
||||
<!-- The slideshow/carousel -->
|
||||
<div class="carousel-inner">
|
||||
<div class="carousel-item active">
|
||||
<img src="{{ car_images[0] }}" alt="Los Angeles" class="d-block w-100">
|
||||
</div>
|
||||
<div class="carousel-item">
|
||||
<img src="{{ car_images[1] }}" alt="Chicago" class="d-block w-100">
|
||||
</div>
|
||||
<div class="carousel-item">
|
||||
<img src="{{ car_images[2] }}" alt="New York" class="d-block w-100">
|
||||
</div>
|
||||
<div class="carousel-item active">
|
||||
<img src="{{ car_images[3] }}" alt="Los Angeles" class="d-block w-100">
|
||||
</div>
|
||||
<div class="carousel-item">
|
||||
<img src="{{ car_images[4] }}" alt="Chicago" class="d-block w-100">
|
||||
</div>
|
||||
<div class="carousel-item">
|
||||
<img src="{{ car_images[5] }}" alt="New York" class="d-block w-100">
|
||||
</div>
|
||||
<div class="carousel-item active">
|
||||
<img src="{{ car_images[6] }}" alt="Los Angeles" class="d-block w-100">
|
||||
</div>
|
||||
<div class="carousel-item">
|
||||
<img src="{{ car_images[7] }}" alt="Chicago" class="d-block w-100">
|
||||
</div>
|
||||
<div class="carousel-item">
|
||||
<img src="{{ car_images[8] }}" alt="New York" class="d-block w-100">
|
||||
</div>
|
||||
<div class="carousel-item">
|
||||
<img src="{{ car_images[9] }}" alt="New York" class="d-block w-100">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Left and right controls/icons -->
|
||||
<button class="carousel-control-prev" type="button" data-bs-target="#myCarousel" data-bs-slide="prev">
|
||||
<span class="carousel-control-prev-icon"></span>
|
||||
</button>
|
||||
<button class="carousel-control-next" type="button" data-bs-target="#myCarousel" data-bs-slide="next">
|
||||
<span class="carousel-control-next-icon"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="text-center">Méditation SUNYATA Paris est une branche du <a href="http://www.sunyatameditation.org/">SUNYATA Méditation Center</a> dont le siège est à Perris, CA, Etats-Unis.<br>
|
||||
Notre but est de promouvoir la pratique de la méditation et du QiGong SUNYATA à Paris.
|
||||
</p>
|
||||
|
||||
<div class="row">
|
||||
<!-- Container (ACTIVITES Section) -->
|
||||
<div class="col-lg-4">
|
||||
<div class="card overflow-hidden hover-img">
|
||||
<div class="position-relative">
|
||||
<img src="{{request.static_url('tcs_site:static/img/home/home_activity1.jpeg')}}" class="card-img-top">
|
||||
<span class="badge text-bg-light text-dark fs-2 lh-sm mb-9 me-9 py-1 px-2 fw-semibold position-absolute bottom-0 end-0">
|
||||
à Noisy-le-Grand</span>
|
||||
</div>
|
||||
<!-- Activites - colonne 1 -->
|
||||
<div class="card-body text-center p-3">
|
||||
{{ activity_col1 | safe }}
|
||||
{% if request.authenticated_userid %}
|
||||
<p class="text-left fs-2"> <a href="{{ request.route_url('blog', id=32, slug='slug') }}">[Modifier ce bloc]</a></p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="card overflow-hidden hover-img">
|
||||
<div class="position-relative">
|
||||
<img src="{{request.static_url('tcs_site:static/img/home/home_activity2.jpg')}}" class="card-img-top" alt="matdash-img">
|
||||
<span class="badge text-bg-light text-dark fs-2 lh-sm mb-9 me-9 py-1 px-2 fw-semibold position-absolute bottom-0 end-0">
|
||||
sur Zoom</span>
|
||||
</div>
|
||||
<!-- Activites - colonne 2 -->
|
||||
<div class="card-body text-center p-3">
|
||||
{{ activity_col2 | safe }}
|
||||
{% if request.authenticated_userid %}
|
||||
<p class="text-left fs-2"> <a href="{{ request.route_url('blog', id=40, slug='slug') }}">[Modifier ce bloc]</a></p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="card overflow-hidden hover-img">
|
||||
<div class="position-relative">
|
||||
<img src="{{request.static_url('tcs_site:static/img/home/home_activity3.jpg')}}" class="card-img-top" alt="matdash-img">
|
||||
<span class="badge text-bg-light text-dark fs-2 lh-sm mb-9 me-9 py-1 px-2 fw-semibold position-absolute bottom-0 end-0">
|
||||
Evènement</span>
|
||||
</div>
|
||||
<!-- Activites - colonne 3 -->
|
||||
<div class="card-body text-center p-3">
|
||||
{{ activity_col3 | safe }}
|
||||
{% if request.authenticated_userid %}
|
||||
<p class="text-left fs-2"> <a href="{{ request.route_url('blog', id=207, slug='slug') }}">[Modifier ce bloc]</a></p>
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Container (POSTS Section) -->
|
||||
<div class="card">
|
||||
<div class="card-body pb-0">
|
||||
<h5 class="card-title">Pages récentes - Các bài mới</h5>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-sm">
|
||||
<tbody class="table-group-divider">
|
||||
{% for entry in last_ten %}
|
||||
<tr>
|
||||
<td>{{ entry.create_date }}</td>
|
||||
<td>
|
||||
<a href="{{ request.route_url('blog', id=entry.id, slug='slug') }}">{{ entry.title }}</a>
|
||||
</td>
|
||||
<td>{{ entry.author }}</td>
|
||||
{% if entry.status == 'brouillon' %}
|
||||
<td><span class="label label-danger">{{ entry.status }}</span></td>
|
||||
{% else %}
|
||||
<td> </td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer" align="center">
|
||||
<span class="menu-item">
|
||||
<a href="{{ request.route_url('topic', topic='enseignement') }}">[ Enseignement ]</a>
|
||||
</span>
|
||||
<span class="menu-item">
|
||||
<a href="{{ request.route_url('topic', topic='pratique') }}">[ Pratique ]</a>
|
||||
</span>
|
||||
<span class="menu-item">
|
||||
<a href="{{ request.route_url('topic', topic='qigong') }}">[ Qi Gong ]</a>
|
||||
</span>
|
||||
<br>
|
||||
<span class="menu-item">
|
||||
<a href="{{ request.route_url('topic', topic='tu_hoc') }}">[ Tu học ]</a>
|
||||
</span>
|
||||
<span class="menu-item">
|
||||
<a href="{{ request.route_url('topic', topic='tu_tap') }}">[ Tu tập ]</a>
|
||||
</span>
|
||||
<span class="menu-item">
|
||||
<a href="{{ request.route_url('topic', topic='qigong') }}">[ Khí Công ]</a>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<!-- Container (Méditation SUNYATA Section) -->
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<div class="card ms-3">
|
||||
<div class="card-body p-3">
|
||||
<h5 class="mb-4 text-center">La Méditation SUNYATA</h5>
|
||||
<p class="text-center"><img src="{{ request.static_url('tcs_site:static/ni-su.jpg') }}"
|
||||
class="rounded-circle" alt="Médiation Sunyata" width="200" height="200">
|
||||
</p>
|
||||
<p>développée par le maître zen Thích Thông Triệt, combine les <a href="/blog/10/la-meditation-sunyata-%25253A-un-apercu">enseignements essentiels</a>
|
||||
du processus de réalisation et d'éveil du Bouddha, les pratiques des 3 traditions du bouddhisme (Theravāda, Mahayana et Zen) et les découvertes de la neuro-sciences.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="card">
|
||||
<div class="card-body p-3">
|
||||
<h5 class="mb-4 text-center">Le Maître Fondateur</h5>
|
||||
<p class="text-center"><img src="{{ request.static_url('tcs_site:static/img/thong-triet.jpg') }}"
|
||||
class="rounded-circle" alt="thong-triet.jpg" width="200" height="200">
|
||||
</p>
|
||||
<p><a href="/blog/2/biographie-du-maitre-thich-thong-triet-%2525281929-2019%252529">Le Vénérable Maître Thích Thông Triệt</a> a été ordonné par le Vénérable Maître Zen Thích Thanh Từ en 1974 et a eu sa réalisation spirituelle majeure en 1989 au Vietnam.
|
||||
Il s'est ensuite établi aux Etats Unis et a commencé à enseigner en 1995 dans l'Oregon. </p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="card me-3">
|
||||
<div class="card-body p-3">
|
||||
<h5 class="mb-4 text-center">La technique « PARLE PAS »</h5>
|
||||
<p class="text-center"><img src="{{ request.static_url('tcs_site:static/khong-noi.jpg') }}"
|
||||
class="rounded-circle" alt="khong-noi.jpg" width="200" height="200">
|
||||
</p>
|
||||
<p>Depuis 2016, <a href="/blog/2/biographie-du-maitre-thich-thong-triet-%2525281929-2019%252529">la technique « PARLE PAS »</a> (ou KHÔNG NÓI) est devenue la pierre angulaire de la pratique de la méditation SUNYATA. Cette technique conduit le méditant vers la maîtrise de ses pensées à travers un processus graduel d'extinction des murmures mentaux.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,57 @@
|
||||
{% extends "layout.jinja2" %}
|
||||
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<div class="card mb-0">
|
||||
<div class="card-body">
|
||||
|
||||
{% if message %}
|
||||
<div class="alert alert-danger">{{ message }}</div>
|
||||
{% endif %}
|
||||
|
||||
<form action="{{request.route_url('image_edit', filename=filename)}}" method="post" class="form needs-validation">
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label required-field" for="new_name">Nouveau nom</label>
|
||||
<input type="text" name="new_name" class="form-control" required value="{{ filename }}">
|
||||
</div>
|
||||
<br>
|
||||
<div class="form-group">
|
||||
<a class="btn btn-light" href="{{ request.route_url('images') }}"><span class="ti ti-chevron-left fs-4"></span> Retour</a>
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted">
|
||||
<span class="ti ti-check fs-4"></span> Renommer</button>
|
||||
<button class="btn btn-danger" type="button" data-bs-toggle="modal" data-bs-target="#confirmDelete">
|
||||
<span class="ti ti-x fs-4"></span> Supprimer</button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
<div class="alert alert-primary text-center mt-3">
|
||||
<img src="{{ file_url }}" alt="" />
|
||||
</div>
|
||||
|
||||
<!-- Modal : Confirmation SUPRESSION -->
|
||||
<div id="confirmDelete" class="modal" role="dialog">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">Supprimer une IMAGES</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<!-- The form is placed inside the body of modal -->
|
||||
<p>Etes-vous certain(e) de vouloir supprimer cette image :<br>
|
||||
<b>{{ filename }}</b> ?</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<form id="confirmForm" method="post">
|
||||
<button type="submit" class="btn btn-danger" name="form.deleted">Supprimer</button>
|
||||
<button type="button" class="btn btn-success" data-bs-dismiss="modal">Fermer</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,54 @@
|
||||
{% extends "layout.jinja2" %}
|
||||
{% block content %}
|
||||
|
||||
<div class="card mb-0">
|
||||
<div class="card-body">
|
||||
|
||||
<p>
|
||||
<button class="btn btn-success" type="button" data-bs-toggle="modal" data-bs-target="#confirmAdd">
|
||||
<span class="ti ti-plus"></span> Nouvelle image</button>
|
||||
|
||||
</p>
|
||||
<br />
|
||||
<table id="images_list" class="table table-striped table-bordered table-sm">
|
||||
{% for entry in images_list %}
|
||||
<tr>
|
||||
<td><a href="{{request.route_url('image_edit', filename=entry[0])}}">{{ entry[0] }}</a></td>
|
||||
<td class="text-right">{{ entry[1] }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
|
||||
<!-- Modal : Confirmation AJOUT -->
|
||||
<div id="confirmAdd" class="modal">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">Ajouter une image</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>
|
||||
- Seuls les documents au format <b>PNG ou JPG</b> seront acceptés.<br>
|
||||
- La taille de chaque document ne doit <b>pas dépasser 4 Mo</b>.
|
||||
</p>
|
||||
<form id="upload_doc-form" action="{{ request.route_url('images') }}" method="post"
|
||||
accept-charset="utf-8" enctype="multipart/form-data">
|
||||
<div class="pb-3">
|
||||
<label class="form-label" for="uploadfile">Veuillez séléctionner un fichier :</label>
|
||||
<input class="form-control" id="uploadfile" name="uploadfile" type="file" multiple />
|
||||
</div>
|
||||
<br />
|
||||
<div class="form-group">
|
||||
<button id="uploadButton" class="btn btn-success" type="submit" name="form.submitted">
|
||||
<i class="ti ti-upload fs-6"></i> Télécharger</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-danger" data-bs-dismiss="modal">Fermer</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,268 @@
|
||||
<!doctype html>
|
||||
<html lang="fr">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="Association de méditation Sunyata Paris, Hội Thiền Tánh Không Paris">
|
||||
<meta name="keywords" content="méditation paris sunyata formation pratique zen Thien Tanh Khong Paris France">
|
||||
<meta name="author" content="Cao Thien Phuoc">
|
||||
<title>{{page_title}}</title>
|
||||
<link rel="shortcut icon" href="{{request.static_url('tcs_site:static/zazen.png')}}">
|
||||
<link rel="stylesheet" href="{{request.static_url('tcs_site:static/css/styles.min.css')}}" />
|
||||
<script src="{{request.static_url('tcs_site:static/js/jquery.min.js')}}"></script>
|
||||
<script src="{{request.static_url('tcs_site:static/js/bootstrap.bundle.min.js')}}"></script>
|
||||
<script src="{{request.static_url('tcs_site:static/js/simplebar.js')}}"></script>
|
||||
<script src="{{request.static_url('tcs_site:static/js/sidebarmenu.js')}}"></script>
|
||||
<script src="{{request.static_url('tcs_site:static/js/app.min.js')}}"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- Body Wrapper -->
|
||||
<div class="page-wrapper" id="main-wrapper" data-layout="vertical" data-navbarbg="skin6" data-sidebartype="full"
|
||||
data-sidebar-position="fixed" data-header-position="fixed">
|
||||
<!-- Sidebar Start -->
|
||||
<aside class="left-sidebar">
|
||||
<!-- Sidebar scroll-->
|
||||
<div>
|
||||
<div class="brand-logo d-flex align-items-center justify-content-between">
|
||||
<div class="close-btn d-xl-none d-block sidebartoggler cursor-pointer" id="sidebarCollapse">
|
||||
<i class="ti ti-x fs-8"></i>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Sidebar navigation-->
|
||||
<nav class="sidebar-nav scroll-sidebar" data-simplebar="">
|
||||
<ul id="sidebarnav">
|
||||
<li class="nav-small-cap">
|
||||
<i class="ti ti-dots nav-small-cap-icon fs-6"></i>
|
||||
<span class="hide-menu text-danger">Home - Trang chủ</span>
|
||||
</li>
|
||||
<li class="sidebar-item">
|
||||
<a class="sidebar-link" href="{{ request.route_url('home') }}" aria-expanded="false">
|
||||
<span><i class="ti ti-home fs-6"></i></span>
|
||||
<span class="hide-menu">Accueil</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-small-cap">
|
||||
<i class="ti ti-dots nav-small-cap-icon fs-6"></i>
|
||||
<span class="hide-menu text-danger">En FRANCAIS</span>
|
||||
</li>
|
||||
<li class="sidebar-item">
|
||||
<a class="sidebar-link" href="{{ request.route_url('topic', topic='enseignement') }}" aria-expanded="false">
|
||||
<span><i class="ti ti-chalkboard fs-6"></i></span>
|
||||
<span class="hide-menu">Enseignement</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="sidebar-item">
|
||||
<a class="sidebar-link" href="{{ request.route_url('topic', topic='pratique') }}" aria-expanded="false">
|
||||
<span><i class="ti ti-focus-centered fs-6"></i></span>
|
||||
<span class="hide-menu">Pratique</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="sidebar-item">
|
||||
<a class="sidebar-link" href="{{ request.route_url('topic', topic='qigong') }}" aria-expanded="false">
|
||||
<span><i class="ti ti-yoga fs-6"></i></span>
|
||||
<span class="hide-menu">Qi Gong</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-small-cap">
|
||||
<i class="ti ti-dots nav-small-cap-icon fs-6"></i>
|
||||
<span class="hide-menu text-danger">En Vietnamien</span>
|
||||
</li>
|
||||
<li class="sidebar-item">
|
||||
<a class="sidebar-link" href="{{ request.route_url('topic', topic='tu_hoc') }}" aria-expanded="false">
|
||||
<span><i class="ti ti-chalkboard fs-6"></i></span>
|
||||
<span class="hide-menu">Tu học</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="sidebar-item">
|
||||
<a class="sidebar-link" href="{{ request.route_url('topic', topic='tu_tap') }}" aria-expanded="false">
|
||||
<span><i class="ti ti-focus-centered fs-6"></i></span>
|
||||
<span class="hide-menu">Tu tập </span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="sidebar-item">
|
||||
<a class="sidebar-link" href="{{ request.route_url('topic', topic='qigong') }}" aria-expanded="false">
|
||||
<span><i class="ti ti-yoga fs-6"></i></span>
|
||||
<span class="hide-menu">Khí Công</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-small-cap">
|
||||
<iconify-icon icon="solar:menu-dots-linear" class="nav-small-cap-icon fs-6" class="fs-6"></iconify-icon>
|
||||
<span class="hide-menu text-danger">A PROPOS</span>
|
||||
</li>
|
||||
<li class="sidebar-item">
|
||||
<a class="sidebar-link" href="{{ request.route_url('topic', topic='apropos') }}" aria-expanded="false">
|
||||
<span><i class="ti ti-users fs-6"></i></span>
|
||||
<span class="hide-menu">Qui sommes nous</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="sidebar-item">
|
||||
<a class="sidebar-link" href="{{ request.route_url('blog', id=1, slug='mentions-legales') }}" aria-expanded="false">
|
||||
<span><i class="ti ti-file-text fs-6"></i></span>
|
||||
<span class="hide-menu">Mentions légales</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="sidebar-item">
|
||||
<a class="sidebar-link" href="{{ request.route_url('contact') }}" aria-expanded="false">
|
||||
<span><i class="ti ti-mail fs-6"></i></span>
|
||||
<span class="hide-menu">Contact</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-small-cap">
|
||||
<iconify-icon icon="solar:menu-dots-linear" class="nav-small-cap-icon fs-6" class="fs-6"></iconify-icon>
|
||||
<span class="hide-menu text-danger">SUNYATA sur le Web</span>
|
||||
</li>
|
||||
<li class="sidebar-item">
|
||||
<a class="sidebar-link" href="https://tanhkhong.org" aria-expanded="false">
|
||||
<span><i class="ti ti-world fs-4"></i></span>
|
||||
<span class="hide-menu">tanhkhong.org</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="sidebar-item">
|
||||
<a class="sidebar-link" href="http://www.sunyatameditation.org/" aria-expanded="false">
|
||||
<span><i class="ti ti-world fs-4"></i></span>
|
||||
<span class="hide-menu">sunyatameditation.org</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="sidebar-item">
|
||||
<a class="sidebar-link" href="https://www.sunyata-bw.de/" aria-expanded="false">
|
||||
<span><i class="ti ti-world fs-4"></i></span>
|
||||
<span class="hide-menu">sunyata-bw.de</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="sidebar-item">
|
||||
<a class="sidebar-link" href="http://www.sunyata-meditation-ch.org/" aria-expanded="false">
|
||||
<span><i class="ti ti-world fs-4"></i></span>
|
||||
<span class="hide-menu">sunyata-meditation-ch.org</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="sidebar-item">
|
||||
<a class="sidebar-link" href="https://www.facebook.com/Sacramento.Tanhkhong" aria-expanded="false">
|
||||
<span><i class="ti ti-world fs-4"></i></span>
|
||||
<span class="hide-menu">FB/Sacramento</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<!-- End Sidebar navigation -->
|
||||
</div>
|
||||
<!-- End Sidebar scroll-->
|
||||
</aside>
|
||||
<!-- Sidebar End -->
|
||||
<!-- Main wrapper -->
|
||||
<div class="body-wrapper">
|
||||
<!-- Header Start -->
|
||||
<header class="app-header">
|
||||
<nav class="navbar navbar-expand-lg navbar-light">
|
||||
<ul class="navbar-nav">
|
||||
<li class="nav-item d-block d-xl-none">
|
||||
<a class="nav-link sidebartoggler nav-icon-hover" id="headerCollapse" href="javascript:void(0)">
|
||||
<i class="ti ti-menu-2"></i>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a href="{{ request.route_url('home') }}" class="text-nowrap logo-img">
|
||||
<img src="{{request.static_url('tcs_site:static/logo-msp2.png')}}" height="74px" alt="logo" />
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="navbar-collapse justify-content-end px-0" id="navbarNav">
|
||||
<ul class="navbar-nav flex-row ms-auto align-items-center justify-content-end">
|
||||
<li>
|
||||
<a class="nav-link" href="{{ request.route_url('blog_search') }}" title="Recherche">
|
||||
<i class="ti ti-search fs-7"></i></a>
|
||||
</li>
|
||||
{% if request.authenticated_userid %}
|
||||
<li class="nav-item dropdown">
|
||||
<a class="btn btn-light dropdown-toggle" href="#" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
{{ request.authenticated_userid }}
|
||||
</a>
|
||||
|
||||
<ul class="dropdown-menu dropdown-menu-end">
|
||||
{% if request.authenticated_userid == 'admin' %}
|
||||
<li><a class="dropdown-item" href="{{request.route_url('users')}}">
|
||||
<i class="ti ti-users fs-6"></i> Utilisateurs</a></li>
|
||||
{% else %}
|
||||
<li><a class="dropdown-item" href="{{request.route_url('user_edit', name=request.authenticated_userid)}}">
|
||||
<i class="ti ti-key fs-6"></i> Modifier le mot de passe</a></li>
|
||||
{% endif %}
|
||||
<li><a class="dropdown-item" href="{{request.route_url('settings')}}">
|
||||
<i class="ti ti-settings fs-6"></i> Paramètres</a></li>
|
||||
<li><a class="dropdown-item" href="{{request.route_url('logout')}}">
|
||||
<i class="ti ti-logout fs-6"></i> Se déconnecter</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
{% else %}
|
||||
<li>
|
||||
<a class="nav-link" href="{{request.route_url('login')}}">
|
||||
<i class="ti ti-login fs-7"></i></a>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
<!-- Header End -->
|
||||
<div class="container-fluid">
|
||||
<div class="py-2 text-center">
|
||||
<p> </p>
|
||||
</div>
|
||||
<!-- Display Page Title -->
|
||||
{% if page_title %}
|
||||
<h1>{{ page_title }}</h1>
|
||||
{% endif %}
|
||||
|
||||
<p id="messages">
|
||||
{% for queue in ['', 'info', 'success', 'warning', 'danger'] %}
|
||||
{% for message in request.session.pop_flash(queue) %}
|
||||
<div class="alert alert-{{queue}} alert-dismissible">
|
||||
{{ message }}
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</p>
|
||||
|
||||
<!-- display page content-->
|
||||
{% block content %}
|
||||
<p>No content</p>
|
||||
{% endblock content %}
|
||||
<br />
|
||||
<br />
|
||||
</div>
|
||||
|
||||
<!-- Footer -->
|
||||
<div class="py-6 px-6 text-center">
|
||||
<p class="mb-0 fs-4">© 2022-2024 - Méditation SUNYATA Paris - Hội Thiền Tánh Không Paris</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-NBVRNJ9C0Y"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-NBVRNJ9C0Y');
|
||||
</script>
|
||||
<script type="text/javascript" id="cookieinfo"
|
||||
src="//cookieinfoscript.com/js/cookieinfo.min.js"
|
||||
data-bg="#645862"
|
||||
data-fg="#FFFFFF"
|
||||
data-link="#F1D600"
|
||||
data-divlink="#FFFFFF"
|
||||
data-divlinkbg="#5CB85C"
|
||||
data-cookie="CookieInfoScript"
|
||||
data-text-align="left"
|
||||
data-close-text="J'ai compris!"
|
||||
data-linkmsg = "Mentions légales"
|
||||
data-moreinfo = "https://meditation-sunyata.paris/blog/1/mentions-legales"
|
||||
data-message="Les cookies que nous utilisons sont nécessaires au bon fonctionnement du site. En continuant la visite, vous déclarez accepter leur utilisation.">
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,36 @@
|
||||
{% extends "layout.jinja2" %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="d-flex align-items-center justify-content-center w-100">
|
||||
<div class="row justify-content-center w-100">
|
||||
<div class="col-md-8 col-lg-6 col-xxl-3">
|
||||
<br><br>
|
||||
<div class="card mb-0">
|
||||
<div class="card-body">
|
||||
<h5 class="text-center">Se connecter</h5>
|
||||
<form action="{{ login_url }}" method="post">
|
||||
<input type="hidden" name="came_from" value="{{ came_from }}" />
|
||||
<div class="mb-3">
|
||||
<label for="username" class="form-label">Identifiant</label>
|
||||
<input type="text" class="form-control" name="username" aria-describedby="username">
|
||||
</div>
|
||||
<div class="mb-4">
|
||||
<label for="password" class="form-label">Mot de passe</label>
|
||||
<input type="password" class="form-control" name="password">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<input type="submit" name="form.submitted" value="Se connecter" class="btn btn-primary">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<br><br><br><br><br>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,92 @@
|
||||
{% extends "layout.jinja2" %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-4 mb-3">
|
||||
<div class="card mb-0 ps-3">
|
||||
<nav class="sidebar-nav scroll-sidebar" data-simplebar="">
|
||||
<ul></ul>
|
||||
<li class="sidebar-item mb-3">
|
||||
<a class="sidebar-link" href=" {{request.route_url('topics')}} " aria-expanded="false">
|
||||
<span><i class="ti ti-tag fs-6"></i></span>
|
||||
<span class="hide-menu">Topics / Tags</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="sidebar-item mb-3">
|
||||
<a class="sidebar-link" href=" {{request.route_url('images')}} " aria-expanded="false">
|
||||
<span><i class="ti ti-photo fs-6"></i></span>
|
||||
<span class="hide-menu">Images</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="sidebar-item mb-3">
|
||||
<a class="sidebar-link" href=" {{request.route_url('topic', topic='_admin')}} " aria-expanded="false">
|
||||
<span><i class="ti ti-files fs-6"></i></span>
|
||||
<span class="hide-menu">Pages internes</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="sidebar-item mb-3">
|
||||
<a class="sidebar-link" href=" {{request.route_url('stats_pages') }} " aria-expanded="false">
|
||||
<span><i class="ti ti-chart-bar fs-6"></i></span>
|
||||
<span class="hide-menu">Statistiques</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="sidebar-item mb-3">
|
||||
<a class="sidebar-link" href="https://www.edrawmind.com/online/files" target="_blank" aria-expanded="false">
|
||||
<span><i class="ti ti-pencil fs-6"></i></span>
|
||||
<span class="hide-menu">EdrawMind</span>
|
||||
</a>
|
||||
</li>
|
||||
{% if request.authenticated_userid == 'admin' %}
|
||||
<li class="sidebar-item mb-3">
|
||||
<a class="sidebar-link" href=" {{request.route_url('users')}} " aria-expanded="false">
|
||||
<span><i class="ti ti-users fs-6"></i></span>
|
||||
<span class="hide-menu">Utilisateurs</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="pt-4">
|
||||
<h4>Versions des packages</h4>
|
||||
<ul>
|
||||
<li>tcs_site {{ app_version }}</li>
|
||||
<li>Pyramid {{ pyramid_version }}</li>
|
||||
<li>Markdown {{ markdown_version }}</li>
|
||||
<li>SQLAlchemy {{ sqlalchemy_version }}</li>
|
||||
<li>SQLite {{ sqlite_version }}</li>
|
||||
<li>Python {{ python_version[0:28] }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-8 mb-3">
|
||||
<div class="card mb-0 ps-3 pt-3">
|
||||
<h4>Dernières modifs</h4>
|
||||
<table id="users_list" class="table table-condensed">
|
||||
{% for entry in items %}
|
||||
<tr>
|
||||
<td>{{ entry.edit_date }}</td>
|
||||
<td>{{ entry.editor }}</td>
|
||||
<td>
|
||||
<a href="{{ request.route_url('blog', id=entry.id, slug='slug') }}">{{ entry.title }}</a>
|
||||
</td>
|
||||
<td>{{ entry.tag }}</td>
|
||||
{% if entry.status == 'brouillon' %}
|
||||
<td><span class="label label-danger">{{ entry.status }}</span></td>
|
||||
{% else %}
|
||||
<td> </td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<br>
|
||||
</div>
|
||||
<div class="row">
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,31 @@
|
||||
{% extends "layout.jinja2" %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="card mb-0">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<table class="table table-sm">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Topic</th>
|
||||
<th>Tag</th>
|
||||
<th>Nombre</th>
|
||||
<th>Dern. ajout</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
{% for entry in entries %}
|
||||
<tr>
|
||||
<td>{{ entry.topic_name }}</td>
|
||||
<td>{{ entry.tag_name }}</td>
|
||||
<td>{{ entry.count }}</td>
|
||||
<td>{{ entry.create_date }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
@@ -0,0 +1,57 @@
|
||||
{% extends "layout.jinja2" %}
|
||||
|
||||
{% block content %}
|
||||
<div class="card mb-0">
|
||||
<div class="card-body">
|
||||
|
||||
<form action="{{ url }}" method="post" class="form needs-validation">
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label required-field" for="tag">Tag</label>
|
||||
<input class="form-control" name="tag" type="text" value="{{entry.tag}}" required>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label required-field" for="tag_name">Intitulé</label>
|
||||
<input class="form-control" name="tag_name" type="text" value="{{entry.tag_name}}" required>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<a class="btn btn-light" href="{{ request.route_url('topic_edit', topic=topic) }}">
|
||||
<span class="ti ti-chevron-left"></span> Retour</a>
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted">
|
||||
<span class="ti ti-check"></span> Enregistrer</button>
|
||||
{% if entry.tag != '0' %}
|
||||
<button class="btn btn-danger" type="button" data-bs-toggle="modal" data-bs-target="#confirmDelete">
|
||||
<span class="ti ti-x"></span> Supprimer</button>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
|
||||
</form>
|
||||
|
||||
<!-- Modal : Confirmation SUPRESSION -->
|
||||
<div id="confirmDelete" class="modal">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">Supprimer le Tag</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<!-- The form is placed inside the body of modal -->
|
||||
<p>Etes-vous certain(e) de vouloir supprimer le Tag <b>{{ tag_name }}</b> ?</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<form id="confirmForm" method="post">
|
||||
<button type="submit" class="btn btn-danger" name="form.deleted">Supprimer</button>
|
||||
<button type="button" class="btn btn-success" data-bs-dismiss="modal">Fermer</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,21 @@
|
||||
{% extends "layout.jinja2" %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="card mb-0">
|
||||
<div class="card-body">
|
||||
|
||||
{% if request.authenticated_userid %}
|
||||
<p><a href="{{ request.route_url('blog_edit', topic=topic, id='0') }}" class="btn btn-success" role="button">
|
||||
<span class="glyphicon glyphicon-plus"></span> Nouveau</a>
|
||||
</p>
|
||||
{% endif%}
|
||||
|
||||
{{ liste | safe }}
|
||||
|
||||
<br />
|
||||
{{ topic_quote | safe }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,100 @@
|
||||
{% extends "layout.jinja2" %}
|
||||
|
||||
{% block content %}
|
||||
<div class="card mb-0">
|
||||
<div class="card-body">
|
||||
|
||||
<form action="{{ url }}" method="post" class="form needs-validation">
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label required-field" for="topic">Topic</label>
|
||||
<input class="form-control" name="topic" type="text" value="{{entry.topic}}" required>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label required-field" for="topic_name">Intitulé</label>
|
||||
<input class="form-control" name="topic_name" type="text" value="{{entry.topic_name}}" required>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label required-field" for="topic_language">Language</label>
|
||||
<select class="form-control" id="language" name="topic_language" value="{{ entry.topic_language }}">
|
||||
<option value="fr"
|
||||
{% if entry.topic_language == "fr" %} selected {% endif %}>fr</option>
|
||||
<option value="vn"
|
||||
{% if entry.topic_language == "vn" %} selected {% endif %}>vn</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label required-field" for="topic_quote">Citation</label>
|
||||
<textarea class="form-control monospace-font" id="topic_quote" name="topic_quote" required rows="10" cols="35">
|
||||
{{ entry.topic_quote }}
|
||||
</textarea>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<a class="btn btn-light" href="{{ request.route_url('topics') }}">
|
||||
<span class="ti ti-chevron-left"></span> Retour</a>
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted">
|
||||
<span class="ti ti-check"></span> Enregistrer</button>
|
||||
{% if entry.topic != '0' %}
|
||||
<button class="btn btn-danger" type="button" data-bs-toggle="modal" data-bs-target="#confirmDelete">
|
||||
<span class="ti ti-x"></span> Supprimer</button>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
<h3>Liste des Tags</h3>
|
||||
<p><a href="{{ request.route_url('tag_edit', topic=entry.topic, id='0') }}" class="btn btn-success" role="button">
|
||||
<span class="ti ti-plus"></span> Nouveau</a>
|
||||
</p>
|
||||
|
||||
<table id="users_list" class="table table-striped table-bordered table-sm">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Tag</th>
|
||||
<th>Nom du tag</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
{% for entry in tags %}
|
||||
<tr>
|
||||
<td>{{ entry.tag }}</td>
|
||||
<td>
|
||||
<a href="{{ request.route_url('tag_edit', topic=entry.topic, id=entry.id) }}">
|
||||
{{ entry.tag_name }}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<!-- Modal : Confirmation SUPRESSION -->
|
||||
<div id="confirmDelete" class="modal" role="dialog">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">Supprimer le Topic</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<!-- The form is placed inside the body of modal -->
|
||||
<p>Etes-vous certain(e) de vouloir supprimer le Topic <b>{{ entry.topic_name }}</b> ?</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<form id="confirmForm" method="post">
|
||||
<button type="submit" class="btn btn-danger" name="form.deleted">Supprimer</button>
|
||||
<button type="button" class="btn btn-success" data-bs-dismiss="modal">Fermer</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,39 @@
|
||||
{% extends "layout.jinja2" %}
|
||||
|
||||
{% block content %}
|
||||
<div class="card mb-0">
|
||||
<div class="card-body">
|
||||
|
||||
<p>
|
||||
<a href="{{ request.route_url('settings') }}" class="btn btn-light" role="button">
|
||||
<span class="ti ti-chevron-left fs-3"></span> Retour</a>
|
||||
<a href="{{ request.route_url('topic_edit', topic='0') }}" class="btn btn-success" role="button">
|
||||
<span class="ti ti-plus fs-3"></span> Nouveau Topic</a>
|
||||
</p>
|
||||
|
||||
<table id="users_list" class="table table-sm">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Topic</th>
|
||||
<th>Name</th>
|
||||
<th>Langue</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
{% for entry in topics %}
|
||||
<tr>
|
||||
<td>{{ entry.topic }}</td>
|
||||
<td>
|
||||
<a href="{{ request.route_url('topic_edit', topic=entry.topic) }}">
|
||||
{{ entry.topic_name }}
|
||||
</a>
|
||||
</td>
|
||||
<td>{{ entry.topic_language }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,47 @@
|
||||
{% extends "layout.jinja2" %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
{% if message %}
|
||||
<div class="alert alert-danger">
|
||||
{{ message }}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="row">
|
||||
<div class="card mb-0">
|
||||
<div class="card-body">
|
||||
<form action="{{ url }}" method="post" role="form">
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label required-field" for="name">Nom</label>
|
||||
{% if name != '0' %}
|
||||
<input class="form-control" name="name" type="text" readonly value="{{user.name}}">
|
||||
{% else %}
|
||||
<input class="form-control" name="name" type="text" value="{{user.name}}">
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label class="form-label required-field" for="password">Mot de passe</label>
|
||||
<input class="form-control" name="password" type="password">
|
||||
</div>
|
||||
|
||||
<br>
|
||||
<div class="mb-3">
|
||||
<a class="btn btn-light" href="{{ url_retour }}"><span class="glyphicon glyphicon-chevron-left"></span> Retour</a>
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted">
|
||||
<span class="glyphicon glyphicon-ok"></span> Enregistrer</button>
|
||||
{% if request.authenticated_userid == 'admin' %}
|
||||
<button class="btn btn-warning" type="submit" name="form.deleted">
|
||||
<span class="glyphicon glyphicon-remove"></span> Supprimer</button>
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,37 @@
|
||||
{% extends "layout.jinja2" %}
|
||||
|
||||
{% block content %}
|
||||
<div class="card mb-0">
|
||||
<div class="card-body">
|
||||
<p>
|
||||
<a href="{{ request.route_url('settings' ) }}" class="btn btn-light" role="button">
|
||||
<span class="glyphicon glyphicon-chevron-left"></span> Retour</a>
|
||||
<a href="{{ request.route_url('user_edit', name='0') }}" class="btn btn-success" role="button">
|
||||
<span class="glyphicon glyphicon-plus"></span> Nouvel utilisateur</a>
|
||||
</p>
|
||||
|
||||
<table id="users_list" class="table table-striped table-sm">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class-text="center">No Id</th>
|
||||
<th>Nom</th>
|
||||
<th>Dernière connexion</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
{% for entry in users %}
|
||||
<tr>
|
||||
<td class-text="center">{{ entry.id }}</td>
|
||||
<td>
|
||||
<a href="{{ request.route_url('user_edit', name=entry.name) }}">
|
||||
{{ entry.name }}
|
||||
</a>
|
||||
</td>
|
||||
<td>{{ entry.last_login }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user