diff --git a/cao_blogr.sqlite b/cao_blogr.sqlite index fe5e734..2a7fbe0 100644 Binary files a/cao_blogr.sqlite and b/cao_blogr.sqlite differ diff --git a/cao_blogr/routes.py b/cao_blogr/routes.py index cd82953..9d1fe48 100644 --- a/cao_blogr/routes.py +++ b/cao_blogr/routes.py @@ -1,13 +1,13 @@ def includeme(config): config.add_static_view('static', 'static', cache_max_age=3600) config.add_route('home', '/') - config.add_route('admin', '/admin') config.add_route('apropos', '/apropos') config.add_route('blog', '/blog/{id:\d+}/{slug}') config.add_route('blog_edit', '/blog_edit/{topic}/{id}') config.add_route('blog_search', '/blog_search') config.add_route('login', '/login') config.add_route('logout', '/logout') + config.add_route('settings', '/settings') config.add_route('topic', '/topic/{topic}') config.add_route('users', '/users') config.add_route('user_add', '/user_add/{name}') diff --git a/cao_blogr/services/blog_record.py b/cao_blogr/services/blog_record.py index d4e408f..7a37a3a 100644 --- a/cao_blogr/services/blog_record.py +++ b/cao_blogr/services/blog_record.py @@ -4,7 +4,6 @@ import datetime #<- will be used to set default dates on models from sqlalchemy import or_ from paginate_sqlalchemy import SqlalchemyOrmPage #<- provides pagination from ..models.blog_record import BlogRecord, Topics, Tags -from markdown2 import Markdown class BlogRecordService(object): @@ -12,7 +11,9 @@ class BlogRecordService(object): @classmethod def by_topic(cls, request, topic, tag): # get posts by topic - query = request.dbsession.query(BlogRecord).filter(BlogRecord.topic_id == topic, BlogRecord.tag == tag) + query = request.dbsession.query(BlogRecord).filter(BlogRecord.topic_id == topic) + if tag != '': + query = query.filter(BlogRecord.tag == tag) query = query.order_by(BlogRecord.tag, BlogRecord.title).all() return query @@ -48,21 +49,11 @@ class BlogRecordService(object): query = request.dbsession.query(Topics).filter(Topics.topic == id).first() return query.topic_name.upper() - @classmethod - def proc_after_create(cls, request, _id): - entry = request.dbsession.query(BlogRecord).get(_id) - # convertir mardown en HTML - markdowner = Markdown() - entry.body_html = markdowner.convert(entry.body) - return @classmethod def proc_after_update(cls, request, _id): entry = request.dbsession.query(BlogRecord).get(_id) entry.edited = datetime.datetime.now() entry.title_url = entry.slug - # convertir mardown en HTML - markdowner = Markdown() - entry.body_html = markdowner.convert(entry.body) return diff --git a/cao_blogr/static/img/mental-du-saint.jpg b/cao_blogr/static/img/mental-du-saint.jpg new file mode 100644 index 0000000..05c8452 Binary files /dev/null and b/cao_blogr/static/img/mental-du-saint.jpg differ diff --git a/cao_blogr/static/img/mental-ordinaire.jpg b/cao_blogr/static/img/mental-ordinaire.jpg new file mode 100644 index 0000000..e9e3eac Binary files /dev/null and b/cao_blogr/static/img/mental-ordinaire.jpg differ diff --git a/cao_blogr/static/img/palette-couleur.png b/cao_blogr/static/img/palette-couleur.png new file mode 100644 index 0000000..bb5d33e Binary files /dev/null and b/cao_blogr/static/img/palette-couleur.png differ diff --git a/cao_blogr/static/thong-triet.jpg b/cao_blogr/static/img/thong-triet.jpg similarity index 100% rename from cao_blogr/static/thong-triet.jpg rename to cao_blogr/static/img/thong-triet.jpg diff --git a/cao_blogr/static/theme.css b/cao_blogr/static/theme.css index f8d8239..0734b27 100644 --- a/cao_blogr/static/theme.css +++ b/cao_blogr/static/theme.css @@ -5,13 +5,20 @@ body { font: 400 15px/1.8 Lato, sans-serif; color: #666; } -h2 { +.container h2{ + color: #df4937 !important; +} +.container h3{ + color: #df4937 !important; +} +h5 { margin: 30px 0 30px 0; + font-size: 24px; letter-spacing: 10px; color: #111; } .container { - padding: 60px 80px 20px 80px; + padding-top: 6em; } .person { border: 10px solid transparent; @@ -39,10 +46,10 @@ h2 { } } .bg-1 { - background: #bc2131; + background: #df4937; color: #bdbdbd; } -.bg-1 h2 {color: #fff;} +.bg-1 h5 {color: #fff;} .bg-1 p {font-style: italic;} .list-group-item:first-child { border-top-right-radius: 0; @@ -151,3 +158,10 @@ textarea { color: #f4511e; font-size: 50px; } + +@media (min-width: 1200px) { + .container{ + max-width: 900px; + } +} + diff --git a/cao_blogr/templates/404.jinja2 b/cao_blogr/templates/404.jinja2 index 1d8e9df..1018463 100644 --- a/cao_blogr/templates/404.jinja2 +++ b/cao_blogr/templates/404.jinja2 @@ -2,9 +2,8 @@ {% block content %} -
-

Méditation SUNYATA Paris

-

404 Page non trouvée

-
+

Méditation SUNYATA Paris

+

404 Page non trouvée

+ {% endblock content %} diff --git a/cao_blogr/templates/admin.jinja2 b/cao_blogr/templates/admin.jinja2 deleted file mode 100644 index 9945ba9..0000000 --- a/cao_blogr/templates/admin.jinja2 +++ /dev/null @@ -1,23 +0,0 @@ -{% extends "cao_blogr:templates/layout.jinja2" %} - -{% block content %} - -
-
-
- -

UTILISATEURS

-
-
- -

TOPICS / TAGS

-
-
- -

PAGES ADMIN

-
-
-
- - -{% endblock %} diff --git a/cao_blogr/templates/blog.jinja2 b/cao_blogr/templates/blog.jinja2 index feee89b..e54ce6a 100644 --- a/cao_blogr/templates/blog.jinja2 +++ b/cao_blogr/templates/blog.jinja2 @@ -11,7 +11,7 @@ {% endif %}
-

{{ entry.body_html | safe }}

+

{{ body_html | safe }}


Publié le : {{ entry.edited.strftime("%d-%m-%Y - %H:%M") }} diff --git a/cao_blogr/templates/home.jinja2 b/cao_blogr/templates/home.jinja2 index 7ef6756..c6bdee9 100644 --- a/cao_blogr/templates/home.jinja2 +++ b/cao_blogr/templates/home.jinja2 @@ -1,6 +1,6 @@ {% extends "layout.jinja2" %} -{% block carousel %} +{% block content %}

-{% endblock %} -{% block content %}
-

LA MEDITATION SUNYATA

-

Le centre de Méditation Sunyata Paris est une branche du Sunyata Méditation Center dont le siège est à Perris, CA, Etats-Unis.
- Notre but est de promouvoir la pratique de la méditation et du QiGong Sunyata à Paris. +

LA MEDITATION SUNYATA
+

Le centre de Méditation SUNYATA Paris est une branche du SUNYATA Méditation Center dont le siège est à Perris, CA, Etats-Unis.
+ Notre but est de promouvoir la pratique de la méditation et du QiGong SUNYATA à Paris.


@@ -78,11 +76,11 @@ Médiation Sunyata

La Méditation SUNYATA

-

développée par le maître zen Thích Thông Triệt, combine les enseignements essentiels du processus de réalisation et d'illumination du Bouddha, les pratiques des 3 traditions du bouddhisme (Theravāda, Mahayana et Zen), et les découvertes de la neuro-sciences.

+

développée par le maître zen Thích Thông Triệt, combine les enseignements essentiels du processus de réalisation et d'illumination du Bouddha, les pratiques des 3 traditions du bouddhisme (Theravāda, Mahayana et Zen) et les récentes découvertes de la neuro-sciences.

- Maître Thông Triêt + Maître Thông Triêt

Notre Maître Fondateur

Le Vénérable Maître Thích Thông Triệt a été ordonné par le Vénérable Maître Zen Thich Thanh Tu en 1974 et a eu sa réalisation spirituelle majeure en 1989 au Vietnam. @@ -103,7 +101,7 @@


-

NOS ACTIVITES

+
NOS ACTIVITES
@@ -149,7 +147,7 @@

-

DERNIERES PUBLICATIONS

+
DERNIERES PUBLICATIONS
    {% for entry in last_five %} @@ -168,7 +166,7 @@

    -

    CONTACT

    +
    CONTACT
    diff --git a/cao_blogr/templates/layout.jinja2 b/cao_blogr/templates/layout.jinja2 index 6b5bd90..f406d95 100644 --- a/cao_blogr/templates/layout.jinja2 +++ b/cao_blogr/templates/layout.jinja2 @@ -37,11 +37,12 @@ - - {% if request.path == '/' %} - {% block carousel %} - {% endblock carousel %} -{% endif %} -
    -
    {% if page_title %}

    {{ page_title }}

    {% endif %} -
    +
    {% for queue in ['', 'info', 'success', 'warning', 'danger'] %} {% for message in request.session.pop_flash(queue) %}
    - - {{ message }} + + {{ message }}
    {% endfor %} {% endfor %} @@ -97,11 +91,7 @@

    © 2022 - Méditation SUNYATA Paris  | Mentions légales - - {% if request.authenticated_userid == 'admin' %} -  | Admin - {% endif %} - +

    diff --git a/cao_blogr/templates/login.jinja2 b/cao_blogr/templates/login.jinja2 index 38286f2..316c523 100644 --- a/cao_blogr/templates/login.jinja2 +++ b/cao_blogr/templates/login.jinja2 @@ -2,7 +2,6 @@ {% block content %} -
    @@ -21,10 +20,5 @@
    -
    -
    -
    -
    -
    {% endblock %} diff --git a/cao_blogr/templates/settings.jinja2 b/cao_blogr/templates/settings.jinja2 new file mode 100644 index 0000000..27c7706 --- /dev/null +++ b/cao_blogr/templates/settings.jinja2 @@ -0,0 +1,38 @@ +{% extends "cao_blogr:templates/layout.jinja2" %} + +{% block content %} + +
    + {% if request.authenticated_userid %} +
    + +

    UTILISATEURS

    +
    + {% endif %} +
    + +

    TOPICS / TAGS

    +
    +
    + +
    + +

    Pages Paramètres

    + {% if request.authenticated_userid %} +

    + [Nouveau post] +

    + {% endif%} + +
      + {% for item in items %} +
    • + {{ item.edited.strftime("%d-%m-%Y") }}   + +   {{ item.title }} +
    • + {% endfor %} +
    +
    + +{% endblock %} diff --git a/cao_blogr/templates/users.jinja2 b/cao_blogr/templates/users.jinja2 index 6750b2f..e827116 100644 --- a/cao_blogr/templates/users.jinja2 +++ b/cao_blogr/templates/users.jinja2 @@ -1,7 +1,6 @@ {% extends "layout.jinja2" %} {% block content %} -

    Retour @@ -29,5 +28,5 @@ {% endfor %} -

    -{% endblock %} + + {% endblock %} diff --git a/cao_blogr/views/blog.py b/cao_blogr/views/blog.py index 862f395..8634a76 100644 --- a/cao_blogr/views/blog.py +++ b/cao_blogr/views/blog.py @@ -1,5 +1,7 @@ from pyramid.view import view_config from pyramid.httpexceptions import HTTPNotFound, HTTPFound +from markdown2 import Markdown + from ..models.blog_record import BlogRecord from ..services.blog_record import BlogRecordService from ..forms import BlogCreateForm, BlogUpdateForm, BlogSearchForm @@ -15,13 +17,16 @@ def blog(request): request.session.flash(u"Page non trouvée : %s" % blog_id, 'warning') return HTTPFound(location=request.route_url('home')) - # just created ? convert body to html - if entry.body_html == '': - BlogRecordService.proc_after_create(request, blog_id) + # insèrer le path de static/img + body = entry.body.replace('static/img/', "%s/static/img/" % request.application_url) + # convertir mardown en HTML + markdowner = Markdown() + body_html = markdowner.convert(body) return { 'page_title': entry.title, - 'entry': entry + 'entry': entry, + 'body_html': body_html, } @@ -119,7 +124,7 @@ def topic(request): if items: liste += '
      ' for item in items: - liste += '
    • {0} {2}
    • '.format( + liste += '
    • {0} {2}
    • '.format( item.edited.strftime("%d-%m-%Y"), request.route_url('blog', id=item.id, slug=item.slug), item.title) liste += '
    ' else: diff --git a/cao_blogr/views/default.py b/cao_blogr/views/default.py index ba72209..3919437 100644 --- a/cao_blogr/views/default.py +++ b/cao_blogr/views/default.py @@ -40,7 +40,7 @@ def home(request): Bonjour, L' expéditeur : {0} ( {1} ) -a envoyé le message suivant du site "meditation-sunyata.paris" +a envoyé le message suivant via le formulaire de Contact du site : ----- Début du message ----- {2} ----- Fin du message ----- @@ -55,7 +55,7 @@ Le site "meditation-sunyata.paris" message.add_recipient('phuoc@caotek.fr') mailer = request.registry['mailer'] mailer.send_immediately(message) - message = "Votre message a bien été envoyé au webmestre. Merci de votre intérêt pour notre site" + request.session.flash("Votre message a bien été envoyé au webmestre. Merci de votre intérêt pour notre site", "success") return { 'page_title': "", @@ -67,12 +67,17 @@ Le site "meditation-sunyata.paris" } -@view_config(route_name='admin', - renderer='cao_blogr:templates/admin.jinja2') -def admin(request): +@view_config(route_name='settings', renderer='cao_blogr:templates/settings.jinja2') +def settings(request): + + # lire toutes les docs du topic + topic = 'ADM' + items = BlogRecordService.by_topic(request, topic, '') return { - 'page_title': "Admin", + 'page_title': "Paramètres", + 'topic': topic, + 'items': items, } @@ -94,7 +99,7 @@ def login(request): user = UserService.by_name(request, username) if user and user.verify_password(request.POST.get('password')): headers = remember(request, user.name) - request.session.flash("Bienvenue %s !" % username, 'success') + request.session.flash("Bonjour %s, Bienvenue sur le site !" % username, 'success') return HTTPFound(location=request.route_url('home'), headers=headers) else: headers = forget(request)