diff --git a/caotek_mesavoirs/layout.py b/caotek_mesavoirs/layout.py index 3157355..761365b 100644 --- a/caotek_mesavoirs/layout.py +++ b/caotek_mesavoirs/layout.py @@ -7,10 +7,13 @@ from .views.default import ( to_percent, to_decimal, ) +from .models.contents import ( + get_docs_themes, +) @layout_config(template='templates/global_layout.pt') class GlobalLayout(object): - # page_title = "Pagode Tinh-Do" + # page_title = "Cao's blog" def __init__(self, context, request): self.context = context @@ -30,8 +33,8 @@ class GlobalLayout(object): return to_percent(x, d) def isAnonymous(self): - user = self.request.authenticated_userid - return user is None + logged_in = self.request.authenticated_userid + return logged_in is None def isAdmin(self): logged_in = self.request.authenticated_userid @@ -42,3 +45,13 @@ class GlobalLayout(object): is_admin = True return is_admin + + def get_themes(self): + # lire toutes les themes + logged_in = self.request.authenticated_userid + themes = get_docs_themes(self.request, logged_in) + dossiers = [] + for theme in themes: + dossiers.append(theme.theme) + return dossiers + diff --git a/caotek_mesavoirs/models/contents.py b/caotek_mesavoirs/models/contents.py new file mode 100644 index 0000000..58271b4 --- /dev/null +++ b/caotek_mesavoirs/models/contents.py @@ -0,0 +1,84 @@ +# -*- coding: utf8 -*- +from sqlalchemy import text +from sqlalchemy.ext.declarative import declarative_base +from sqlalchemy.orm import ( + scoped_session, + sessionmaker, +) + +from zope.sqlalchemy import ZopeTransactionExtension, mark_changed + +from datetime import * +import transaction +from urllib.request import urlopen + +from .default import ( + execute_query, +) + +def get_docs(request, doc_id): + """Lire les doc""" + if doc_id == 0: + query = "SELECT * FROM docs ORDER BY theme, intitule;" + results = request.dbsession.execute(query).fetchall() + else: + query = "SELECT * FROM docs where doc_id = :doc_id;" + results = request.dbsession.execute(query, {'doc_id': doc_id}).first() + return results + +def get_docs_bytheme(request, theme, logged_in): + """Lire les doc""" + if logged_in == None: + anon = "AND statut = 'public' " + else: + anon = "" + if theme == 'BLOG': + query = "SELECT * FROM docs WHERE theme=:theme %s ORDER BY cree_le DESC LIMIT 10;" % anon + else: + query = "SELECT * FROM docs WHERE theme=:theme ORDER BY intitule;" + results = request.dbsession.execute(query, {'theme': theme}).fetchall() + return results + +def get_docs_tags(request): + query = "SELECT * FROM docs_tags;" + results = request.dbsession.execute(query).fetchall() + return results + +def get_docs_themes(request, logged_in): + if logged_in == None: + query = "SELECT * FROM docs_themes WHERE statut = 'public';" + else: + query = "SELECT * FROM docs_themes;" + results = request.dbsession.execute(query).fetchall() + return results + +def get_docs_bycritere(request, critere, logged_in): + if logged_in == None: + query = "SELECT * FROM docs WHERE (texte like :critere) OR (intitule like :critere) AND statut = 'public';" + else: + query = "SELECT * FROM docs WHERE (texte like :critere) OR (intitule like :critere);" + results = request.dbsession.execute(query, {'critere': '%' + critere + '%'}).fetchall() + return results + +def update_doc(request, doc_id, new_values): + """créér ou modifier le doc""" + # formater les champs + s = '' + for param in new_values.keys(): + if s: + s += ",%s=:%s" % (param, param) + else: + s = "%s=:%s" % (param, param) + + if doc_id == '0': + query = "INSERT INTO docs SET %s;" % s + else: + new_values['doc_id'] = doc_id + query = "update docs SET %s WHERE doc_id = :doc_id;" % s + execute_query(request, query, new_values) + +def delete_doc(request, doc_id): + """supprimer la doc""" + query = "delete from docs where doc_id = :doc_id;" + execute_query(request, query, {'doc_id': doc_id}) + diff --git a/caotek_mesavoirs/models/default.py b/caotek_mesavoirs/models/default.py index 1a27860..d9e9e08 100644 --- a/caotek_mesavoirs/models/default.py +++ b/caotek_mesavoirs/models/default.py @@ -17,62 +17,3 @@ def execute_query(request, query, params): mark_changed(request.dbsession) transaction.commit() -def get_docs(request, doc_id): - """Lire les doc""" - if doc_id == 0: - query = "SELECT * FROM docs ORDER BY theme, intitule;" - results = request.dbsession.execute(query).fetchall() - else: - query = "SELECT * FROM docs where doc_id = :doc_id;" - results = request.dbsession.execute(query, {'doc_id': doc_id}).first() - return results - -def get_docs_bytheme(request, theme): - """Lire les doc""" - if theme == 'BLOG': - query = "SELECT * FROM docs WHERE theme=:theme ORDER BY cree_le DESC LIMIT 10;" - else: - query = "SELECT * FROM docs WHERE theme=:theme ORDER BY intitule;" - results = request.dbsession.execute(query, {'theme': theme}).fetchall() - return results - -def get_docs_tags(request): - query = "SELECT * FROM docs_tags;" - results = request.dbsession.execute(query).fetchall() - return results - -def get_docs_themes(request): - query = "SELECT * FROM docs_themes;" - results = request.dbsession.execute(query).fetchall() - return results - -def get_docs_bycritere(request, critere, logged_in): - if logged_in == None: - query = "SELECT * FROM docs JOIN docs_themes ON docs.theme = docs_themes.theme WHERE (docs.texte like :critere) OR (docs.intitule like :critere) AND docs_themes.visible = 'oui';" - else: - query = "SELECT * FROM docs JOIN docs_themes ON docs.theme = docs_themes.theme WHERE (docs.texte like :critere) OR (docs.intitule like :critere);" - results = request.dbsession.execute(query, {'critere': '%' + critere + '%'}).fetchall() - return results - -def update_doc(request, doc_id, new_values): - """créér ou modifier le doc""" - # formater les champs - s = '' - for param in new_values.keys(): - if s: - s += ",%s=:%s" % (param, param) - else: - s = "%s=:%s" % (param, param) - - if doc_id == '0': - query = "INSERT INTO docs SET %s;" % s - else: - new_values['doc_id'] = doc_id - query = "update docs SET %s WHERE doc_id = :doc_id;" % s - execute_query(request, query, new_values) - -def delete_doc(request, doc_id): - """supprimer la doc""" - query = "delete from docs where 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 763e647..e65768a 100644 --- a/caotek_mesavoirs/routes.py +++ b/caotek_mesavoirs/routes.py @@ -2,7 +2,8 @@ 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') + # contents + config.add_route('folder', '/folder/{theme}') config.add_route('doc_edit', '/doc_edit/{doc_id}') config.add_route('doc_view', '/doc_view/{doc_id}') config.add_route('doc_search', '/doc_search') diff --git a/caotek_mesavoirs/static/css/style.less b/caotek_mesavoirs/static/css/style.less index 54fc08f..69307f8 100644 --- a/caotek_mesavoirs/static/css/style.less +++ b/caotek_mesavoirs/static/css/style.less @@ -8,6 +8,7 @@ border-radius: 0; min-height: 70px; font-size: 20px !important; + letter-spacing: 5px; } .navbar li a, .navbar { @@ -49,6 +50,12 @@ color: #000000 !important; } +.menu-item { + font-size: 20px !important; + letter-spacing: 5px; +} + + @media (min-width: 1200px) { .container{ max-width: 900px; diff --git a/caotek_mesavoirs/templates/archives.pt b/caotek_mesavoirs/templates/archives.pt deleted file mode 100644 index 0214798..0000000 --- a/caotek_mesavoirs/templates/archives.pt +++ /dev/null @@ -1,37 +0,0 @@ -
| ${ligne.intitule} | -${ligne.tag1} | -${ligne.cree_le.strftime("%d-%m-%Y")} | -${ligne.modif_le.strftime("%d-%m-%Y")} | -
@@ -10,8 +10,12 @@ Page text goes here.
+
© 2017 - Phuoc Cao | à propos | recherche diff --git a/caotek_mesavoirs/templates/home.pt b/caotek_mesavoirs/templates/home.pt index 79c957a..0609de7 100644 --- a/caotek_mesavoirs/templates/home.pt +++ b/caotek_mesavoirs/templates/home.pt @@ -10,7 +10,7 @@
- | Voir les archives | + | Voir tous les posts | Créer un nouveau post |
diff --git a/caotek_mesavoirs/templates/panels/dropdown_menu_panel.pt b/caotek_mesavoirs/templates/panels/dropdown_menu_panel.pt index 2db1cc4..b2f8b33 100644 --- a/caotek_mesavoirs/templates/panels/dropdown_menu_panel.pt +++ b/caotek_mesavoirs/templates/panels/dropdown_menu_panel.pt @@ -11,7 +11,7 @@
- Allocation globale : 60% actions + 5% REITS + 35% obligations
- Allocation actions D (1/2) : 60% US (18%) + 30% Europe (12%)
- Allocation actions C (1/2) : 100% World (30%)
- [Cette allocation est inspirée de celle du Fond souverain Norvégien]
+ Allocation globale : 70% actions + 30% obligations
+ [Inspirée du
+ Fond souverain Norvégien]
+ Allocation actions : 80% Monde (56%) + 20% Croissance (14%)