inital upload

This commit is contained in:
2025-07-26 17:00:52 +02:00
parent 77463c8c27
commit e2b2bff5e9
417 changed files with 46961 additions and 0 deletions
+12
View File
@@ -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 %}
+47
View File
@@ -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 %}
+113
View File
@@ -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 %}
+48
View File
@@ -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 %}
+61
View File
@@ -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>&nbsp;station Bry sur Marne<br>
<br>
<span class="badge bg-primary">Bus 220</span>&nbsp;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 %}
+219
View File
@@ -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>&nbsp;
</span>
<span class="menu-item">
<a href="{{ request.route_url('topic', topic='pratique') }}">[ Pratique ]</a>&nbsp;
</span>
<span class="menu-item">
<a href="{{ request.route_url('topic', topic='qigong') }}">[ Qi Gong ]</a>&nbsp;
</span>
<br>
<span class="menu-item">
<a href="{{ request.route_url('topic', topic='tu_hoc') }}">[ Tu học ]</a>&nbsp;
</span>
<span class="menu-item">
<a href="{{ request.route_url('topic', topic='tu_tap') }}">[ Tu tập ]</a>&nbsp;
</span>
<span class="menu-item">
<a href="{{ request.route_url('topic', topic='qigong') }}">[ Khí Công ]</a>&nbsp;
</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 %}
+57
View File
@@ -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 %}
+54
View File
@@ -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 %}
+268
View File
@@ -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')}}">
&nbsp;&nbsp;<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>&nbsp;</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>
+36
View File
@@ -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 %}
+92
View File
@@ -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 %}
+31
View File
@@ -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 %}
+57
View File
@@ -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 %}
+21
View File
@@ -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 %}
+100
View File
@@ -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 %}
+39
View File
@@ -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 %}
+47
View File
@@ -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 %}
+37
View File
@@ -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 %}