diff --git a/caotek_mesavoirs/models/default.py b/caotek_mesavoirs/models/default.py index 0b4df3f..c88fb6d 100644 --- a/caotek_mesavoirs/models/default.py +++ b/caotek_mesavoirs/models/default.py @@ -36,11 +36,16 @@ def get_docs_bytheme(request, theme): results = request.dbsession.execute(query, {'theme': theme}).fetchall() return results -def get_blog_themes(request): - query = "SELECT * FROM blog_themes;" +def get_docs_themes(request): + query = "SELECT * FROM docs_themes;" results = request.dbsession.execute(query).fetchall() return results +def get_docs_bycritere(request, critere): + query = "SELECT * FROM docs WHERE texte like :critere;" + results = request.dbsession.execute(query, {'critere': '%' + critere + '%'}).fetchall() + return results + def update_doc(request, doc_id, intitule, texte, theme): """créér ou modifier le doc""" if doc_id == '0': @@ -53,5 +58,5 @@ def update_doc(request, doc_id, intitule, texte, theme): def delete_doc(request, doc_id): """supprimer la doc""" query = "delete from docs where doc_id = :doc_id;" - results = request.dbsession.execute(query, {'doc_id': doc_id}) + execute_query(request, query, {'doc_id': doc_id}) diff --git a/caotek_mesavoirs/routes.py b/caotek_mesavoirs/routes.py index 562c45a..84746d6 100644 --- a/caotek_mesavoirs/routes.py +++ b/caotek_mesavoirs/routes.py @@ -1,10 +1,11 @@ def includeme(config): config.add_static_view('static', 'static', cache_max_age=3600) config.add_route('home', '/') + config.add_route('apropos', 'apropos') config.add_route('archives', '/archives/{theme}') config.add_route('doc_edit', '/doc_edit/{doc_id}') config.add_route('doc_view', '/doc_view/{doc_id}') - config.add_route('memo_view', '/memo_view/{doc_id}') + config.add_route('doc_search', '/doc_search') # actifs config.add_route('actif_edit', '/actif_edit/{no_id}') config.add_route('actif2_edit', '/actif2_edit/{no_id}') diff --git a/caotek_mesavoirs/static/css/style.less b/caotek_mesavoirs/static/css/style.less index cc5bff7..7ae8391 100644 --- a/caotek_mesavoirs/static/css/style.less +++ b/caotek_mesavoirs/static/css/style.less @@ -55,6 +55,10 @@ } } +.container h2{ + color: crimson !important; +} + .container-fluid { padding-top: 2em; padding-bottom: 1em; diff --git a/caotek_mesavoirs/static/img/logo-caotek.png b/caotek_mesavoirs/static/img/logo-caotek.png index 306d63e..c549094 100644 Binary files a/caotek_mesavoirs/static/img/logo-caotek.png and b/caotek_mesavoirs/static/img/logo-caotek.png differ diff --git a/caotek_mesavoirs/templates/apropos.pt b/caotek_mesavoirs/templates/apropos.pt new file mode 100644 index 0000000..d994025 --- /dev/null +++ b/caotek_mesavoirs/templates/apropos.pt @@ -0,0 +1,34 @@ + +
+ +
+
+
+
+
+
+ L'argent qu'on possède est l'instrument de la liberté; celui qu'on pourchasse est celui de la servitude. +
+
+ +
+
+
+
+
+
+ L'intelligence ce n'est pas ce que l'on sait mais ce que l'on fait quand on ne sait pas. +
+
+
+ +
+
+
+ +
+
diff --git a/caotek_mesavoirs/templates/archives.pt b/caotek_mesavoirs/templates/archives.pt index d97894d..8ab61c6 100644 --- a/caotek_mesavoirs/templates/archives.pt +++ b/caotek_mesavoirs/templates/archives.pt @@ -2,6 +2,9 @@
+

+ Créer un nouveau post +

diff --git a/caotek_mesavoirs/templates/doc_edit.pt b/caotek_mesavoirs/templates/doc_edit.pt index bab9850..7004d7d 100644 --- a/caotek_mesavoirs/templates/doc_edit.pt +++ b/caotek_mesavoirs/templates/doc_edit.pt @@ -37,16 +37,12 @@
-
- + -
-
-
- +
diff --git a/caotek_mesavoirs/templates/doc_search.pt b/caotek_mesavoirs/templates/doc_search.pt new file mode 100644 index 0000000..83019ed --- /dev/null +++ b/caotek_mesavoirs/templates/doc_search.pt @@ -0,0 +1,77 @@ + +
+ +
+
+ +
+
+
+ + + + +
+
+
+ +
+ +
+
+
${ligne.intitule}
+ + + + + + +
${ligne.intitule}${ligne.tag1}${ligne.cree_le.strftime("%d-%m-%Y")}${ligne.modif_le.strftime("%d-%m-%Y")}
+
+
+

Aucun document ne correspond à la recherche

+
+
+
+
+ + + + + diff --git a/caotek_mesavoirs/templates/doc_view.pt b/caotek_mesavoirs/templates/doc_view.pt index a645d5b..b105550 100644 --- a/caotek_mesavoirs/templates/doc_view.pt +++ b/caotek_mesavoirs/templates/doc_view.pt @@ -1,14 +1,16 @@
- [ Fermer ] - [ Modifier ] -
+

+ [ Fermer ]  + [ Modifier ] +


Page text goes here.

+ Dernière modification le ${modif_le}

diff --git a/caotek_mesavoirs/templates/layouts/global_layout.pt b/caotek_mesavoirs/templates/layouts/global_layout.pt index b3b972c..08a32b5 100644 --- a/caotek_mesavoirs/templates/layouts/global_layout.pt +++ b/caotek_mesavoirs/templates/layouts/global_layout.pt @@ -55,7 +55,6 @@ @@ -89,21 +88,16 @@ diff --git a/caotek_mesavoirs/views/default.py b/caotek_mesavoirs/views/default.py index 2175bdb..662275e 100644 --- a/caotek_mesavoirs/views/default.py +++ b/caotek_mesavoirs/views/default.py @@ -102,7 +102,7 @@ def doc_edit(request): url = request.route_url('doc_edit',doc_id=doc_id) message = "" - themes = get_blog_themes(request) + themes = get_docs_themes(request) if doc_id == '0': titre = "Nouveau doc" @@ -126,15 +126,15 @@ def doc_edit(request): if doc_id != '0': return HTTPFound(location=request.route_url('doc_view', doc_id=doc_id)) else: - return HTTPFound(location=request.route_url('doc_list')) + return HTTPFound(location=request.route_url('archives',theme=doc.theme)) else: message = "Veuillez saisir un intitule et un texte." if 'form.deleted' in request.params: if doc_id != '0': delete_doc(request, doc_id) - request.session.flash(u"<%s> est supprimée avec succès." % intitule, 'success') - return HTTPFound(location=request.route_url('doc_list')) + request.session.flash(u"<%s> est supprimée avec succès." % doc.intitule, 'success') + return HTTPFound(location=request.route_url('archives',theme=doc.theme)) return { 'page_title': titre, @@ -147,24 +147,61 @@ def doc_edit(request): 'themes': themes, } +@view_config(route_name='doc_search', renderer='../templates/doc_search.pt') +def doc_search(request): + + critere = '' + docs = [] + + if 'form.submitted' in request.params: + critere = request.params['critere'] + # si afficher tous les fiches ? + docs = get_docs_bycritere(request, critere) + + return { + 'page_title': "Rechercher", + 'docs': docs, + 'critere': critere, + } + +@view_config(route_name='apropos', renderer='../templates/apropos.pt') +def apropos(request): + + + return { + 'page_title': "A propos", + } + + @view_config(route_name='doc_view', renderer='../templates/doc_view.pt') -@view_config(route_name='memo_view', renderer='../templates/doc_view.pt', permission='view') def doc_view(request): + + logged_in = request.authenticated_userid doc_id = request.matchdict['doc_id'] doc = get_docs(request, doc_id) + if logged_in == None and doc.theme == 'memo': + # si anonyme, interdire de voir les memo + return HTTPFound(location=request.route_url('home')) + intitule = doc.intitule url_retour = request.route_url('archives',theme=doc.theme) # insèrer le path de static/img - img_path = 'image:: %s/static/img/' % request.application_url - - texte = doc.texte.replace('image:: static/img/', img_path) + texte = doc.texte.replace('static/img/', "%s/static/img/" % request.application_url) + # convertir reST en HTML - texte = publish_parts(texte, writer_name='html')['html_body'] + # texte = publish_parts(texte, writer_name='html')['html_body'] + + # convertir mardown en HTML + from markdown2 import Markdown + markdowner = Markdown() + texte = markdowner.convert(texte) + return { 'page_title': intitule, 'texte': texte, + 'modif_le': doc.modif_le.strftime('%d/%m/%Y'), 'doc_id': doc_id, 'url_retour':url_retour }