import songs albums biography

This commit is contained in:
2025-08-01 18:31:01 +02:00
parent 1b13f676ca
commit 653c956f33
8 changed files with 110 additions and 36 deletions

Binary file not shown.

BIN
tcs_site.temp Normal file

Binary file not shown.

View File

@@ -76,9 +76,15 @@ def get_activities(request):
results = request.dbsession.execute(query,).all() results = request.dbsession.execute(query,).all()
return results return results
def get_tags_byTag(request, topic, tag):
# get tags
query = "SELECT * FROM tags WHERE topic=:topic and tag=:tag;"
results = request.dbsession.execute(query, {'topic':topic, 'tag':tag}).first()
return results
def get_tags_byTopic(request, topic): def get_tags_byTopic(request, topic):
# get tags # get tags
query = "SELECT * FROM tags WHERE topic=:topic ORDER BY tag_name;" query = "SELECT * FROM tags WHERE topic=:topic ORDER BY tag;"
results = request.dbsession.execute(query, {'topic':topic}).all() results = request.dbsession.execute(query, {'topic':topic}).all()
return results return results

View File

@@ -10,6 +10,7 @@ def includeme(config):
config.add_route('image_edit', '/image_edit/{filename}') config.add_route('image_edit', '/image_edit/{filename}')
config.add_route('login', '/login') config.add_route('login', '/login')
config.add_route('logout', '/logout') config.add_route('logout', '/logout')
config.add_route('section', '/section/{topic}/{tag}')
config.add_route('settings', '/settings') config.add_route('settings', '/settings')
config.add_route('stats_pages', '/stats_pages') config.add_route('stats_pages', '/stats_pages')
config.add_route('tag_edit', '/tag_edit/{topic}/{id}') config.add_route('tag_edit', '/tag_edit/{topic}/{id}')

View File

@@ -17,7 +17,9 @@
</div> </div>
<!-- COL 1 Biography --> <!-- COL 1 Biography -->
<div class="card-body text-center p-3"> <div class="card-body text-center p-3">
<h4>Tiểu sử</h4> <h5><a href="/topic/tieu-su">Đời và nhạc</a></h5>
<h5><a href="/topic/life-music">Life and music</a></h5>
<h5><a href="/topic/vie-musique">Vie et musique</a></h5>
</div> </div>
</div> </div>
@@ -29,7 +31,8 @@
</div> </div>
<!-- COL 2 Music --> <!-- COL 2 Music -->
<div class="card-body text-center p-3"> <div class="card-body text-center p-3">
<h4><a href="/blog/934/bai-hat">Bài hát</a></h4> <h5><a href="/blog/934/bai-hat">Bài hát</a></h5>
<h5><a href="/blog/934/bai-hat">Bài hát</a></h5>
</div> </div>
</div> </div>
</div> </div>
@@ -40,7 +43,7 @@
</div> </div>
<!-- COL 3 ART --> <!-- COL 3 ART -->
<div class="card-body text-center p-3"> <div class="card-body text-center p-3">
<h4>Tranh vẽ</h4> <h5>Tranh vẽ</h5>
</div> </div>
</div> </div>
@@ -57,7 +60,7 @@
</div> </div>
<!-- Activites - colonne 3 --> <!-- Activites - colonne 3 -->
<div class="card-body text-center p-3"> <div class="card-body text-center p-3">
<h4>4e dimanche du mois</h4> <h5>4e dimanche du mois</h5>
</div> </div>
</div> </div>
@@ -69,7 +72,7 @@
</div> </div>
<!-- Activites - colonne 3 --> <!-- Activites - colonne 3 -->
<div class="card-body text-center p-3"> <div class="card-body text-center p-3">
<h4>4e dimanche du mois</h4> <h5>4e dimanche du mois</h5>
</div> </div>
</div> </div>

View File

@@ -38,13 +38,13 @@
<span class="hide-menu text-danger">En Vietnamien</span> <span class="hide-menu text-danger">En Vietnamien</span>
</li> </li>
<li class="sidebar-item"> <li class="sidebar-item">
<a class="sidebar-link" href="{{ request.route_url('topic', topic='bio') }}" aria-expanded="false"> <a class="sidebar-link" href="{{ request.route_url('topic', topic='tieu-su') }}" aria-expanded="false">
<span class="hide-menu">Tiểu sử</span> <span class="hide-menu">Đời và nhạc</span>
</a> </a>
</li> </li>
<li class="sidebar-item"> <li class="sidebar-item">
<a class="sidebar-link" href="{{ request.route_url('topic', topic='songs') }}" aria-expanded="false"> <a class="sidebar-link" href="{{ request.route_url('blog', id=934, slug='bai-hat') }}" aria-expanded="false">
<span class="hide-menu">Nhạc</span> <span class="hide-menu">Bài hát </span>
</a> </a>
</li> </li>
<li class="sidebar-item"> <li class="sidebar-item">
@@ -67,17 +67,22 @@
<span class="hide-menu text-danger">In ENGLISH</span> <span class="hide-menu text-danger">In ENGLISH</span>
</li> </li>
<li class="sidebar-item"> <li class="sidebar-item">
<a class="sidebar-link" href="{{ request.route_url('topic', topic='enseignement') }}" aria-expanded="false"> <a class="sidebar-link" href="{{ request.route_url('topic', topic='life-music') }}" aria-expanded="false">
<span class="hide-menu">Life and music</span>
</a>
</li>
<li class="sidebar-item">
<a class="sidebar-link" href="{{ request.route_url('section', topic='english', tag='songs-en') }}" aria-expanded="false">
<span class="hide-menu">Songs</span> <span class="hide-menu">Songs</span>
</a> </a>
</li> </li>
<li class="sidebar-item"> <li class="sidebar-item">
<a class="sidebar-link" href="{{ request.route_url('topic', topic='pratique') }}" aria-expanded="false"> <a class="sidebar-link" href="{{ request.route_url('section', topic='english', tag='articles') }}" aria-expanded="false">
<span class="hide-menu">Articles</span> <span class="hide-menu">Articles</span>
</a> </a>
</li> </li>
<li class="sidebar-item"> <li class="sidebar-item">
<a class="sidebar-link" href="{{ request.route_url('topic', topic='enseignement') }}" aria-expanded="false"> <a class="sidebar-link" href="/blog/170/about-tcs-association-culturelle" aria-expanded="false">
<span class="hide-menu">About</span> <span class="hide-menu">About</span>
</a> </a>
</li> </li>
@@ -90,17 +95,22 @@
<span class="hide-menu text-danger">En FRANCAIS</span> <span class="hide-menu text-danger">En FRANCAIS</span>
</li> </li>
<li class="sidebar-item"> <li class="sidebar-item">
<a class="sidebar-link" href="{{ request.route_url('topic', topic='enseignement') }}" aria-expanded="false"> <a class="sidebar-link" href="{{ request.route_url('topic', topic='vie-musique') }}" aria-expanded="false">
<span class="hide-menu">Vie et musique</span>
</a>
</li>
<li class="sidebar-item">
<a class="sidebar-link" href="{{ request.route_url('section', topic='francais', tag='songs-fr') }}" aria-expanded="false">
<span class="hide-menu">Chansons</span> <span class="hide-menu">Chansons</span>
</a> </a>
</li> </li>
<li class="sidebar-item"> <li class="sidebar-item">
<a class="sidebar-link" href="{{ request.route_url('topic', topic='pratique') }}" aria-expanded="false"> <a class="sidebar-link" href="{{ request.route_url('section', topic='francais', tag='articles') }}" aria-expanded="false">
<span class="hide-menu">Articles</span> <span class="hide-menu">Articles</span>
</a> </a>
</li> </li>
<li class="sidebar-item"> <li class="sidebar-item">
<a class="sidebar-link" href="{{ request.route_url('topic', topic='enseignement') }}" aria-expanded="false"> <a class="sidebar-link" href="/blog/192/a-propos-de-tcs-association-culturelle" aria-expanded="false">
<span class="hide-menu">A propos</span> <span class="hide-menu">A propos</span>
</a> </a>
</li> </li>
@@ -131,18 +141,24 @@
<li class="nav-small-cap"> <li class="nav-small-cap">
<span class="hide-menu text-danger">{{ request.authenticated_userid }}</span> <span class="hide-menu text-danger">{{ request.authenticated_userid }}</span>
</li> </li>
{% if request.authenticated_userid == 'admin' %}
<li class="sidebar-item">
<a class="sidebar-link" href="{{request.route_url('users')}}">
<i class="ti ti-users fs-6"></i></a>
</li>
{% else %}
<li class="sidebar-item">
<a class="sidebar-link" href="{{request.route_url('user_edit', name=request.authenticated_userid)}}">
<i class="ti ti-key fs-6"></i> Modifier le mdp</a>
</li>
{% endif %}
<li class="sidebar-item"> <li class="sidebar-item">
{% if request.authenticated_userid == 'admin' %} <a class="sidebar-link" href="{{request.route_url('settings')}}">
<a class="sidebar-link" href="{{request.route_url('users')}}"> <i class="ti ti-settings fs-6"></i> Paramètres</a>
<i class="ti ti-users fs-6"></i></a> </li>
{% else %} <li class="sidebar-item">
<a class="sidebar-link" href="{{request.route_url('user_edit', name=request.authenticated_userid)}}"> <a class="sidebar-link" href="{{request.route_url('logout')}}">
<i class="ti ti-key fs-6"></i> Modifier le mdp</a> <i class="ti ti-logout fs-6"></i> Se déconnecter</a>
{% endif %}
<a class="sidebar-link" href="{{request.route_url('settings')}}">
<i class="ti ti-settings fs-6"></i> Paramètres</a>
<a class="sidebar-link" href="{{request.route_url('logout')}}">
<i class="ti ti-logout fs-6"></i> Se déconnecter</a>
</li> </li>
{% else %} {% else %}
<li class="sidebar-item"> <li class="sidebar-item">
@@ -178,15 +194,8 @@
<div class="navbar-collapse justify-content-end px-0" id="navbarNav"> <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"> <ul class="navbar-nav flex-row ms-auto align-items-center justify-content-end">
<li> <li>
<form id="search-form" class="form-horizontal" role="form" action="/blog_search" method="post"> <a class="nav-link" href="{{ request.route_url('blog_search') }}" title="Recherche">
<i class="ti ti-search fs-7"></i></a>
<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>
</li> </li>
</ul> </ul>
</div> </div>

View File

@@ -0,0 +1,19 @@
{% 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 }}
</div>
</div>
{% endblock %}

View File

@@ -192,6 +192,41 @@ def blog_search(request):
'criteria': criteria, 'criteria': criteria,
} }
@view_config(route_name='section', renderer='../templates/section.jinja2')
def section(request):
topic = request.matchdict['topic']
tag = request.matchdict['tag']
# get the tag record
tag_record = get_tags_byTag(request, topic, tag)
# convertir champ topic_quote en HTML
# topic_quote = markdown.markdown(tag_record.topic_quote)
# insèrer le path de static/img
# topic_quote = topic_quote.replace('static/', "%s/static/" % request.application_url)
# generate the items list group by tag
liste = ''
# lire toutes les docs du topic / tag
items = get_entries_by_topic(request, topic, tag)
if items:
liste += '<div><table class="table table-sm table-borderless ms-4 mb-4"">'
for item in items:
item_slug = urlify(item.title)
liste += '<tr>'
liste += '<td><a href="%s">%s</a></td>' % (request.route_url('blog', id=item.id, slug=item_slug), item.title)
liste += '<td>%s</td>' % item.description
if item.status != 'publié':
liste += '<td><span class="label label-danger">%s</span></td>' % item.status
liste += '</tr>'
liste += '</tbody></table></div>'
else:
liste += '<ul><li> </li></ul>'
return {
'page_title': tag_record.tag_name,
'topic': topic,
'liste': liste,
}
@view_config(route_name='topic', renderer='../templates/topic.jinja2') @view_config(route_name='topic', renderer='../templates/topic.jinja2')
def topic(request): def topic(request):
@@ -235,6 +270,7 @@ def topic(request):
'liste': liste, 'liste': liste,
} }
@view_config(route_name='stats_pages', renderer='../templates/stats_pages.jinja2') @view_config(route_name='stats_pages', renderer='../templates/stats_pages.jinja2')
def stats_pages(request): def stats_pages(request):