From 56605c5166ff7fbd56d232713e61809f7c535035 Mon Sep 17 00:00:00 2001 From: Phuoc CAO Date: Sun, 23 Jul 2017 11:07:51 +0200 Subject: [PATCH] added docs CUD --- caotek_mesavoirs/models/default.py | 47 +++++++++++ caotek_mesavoirs/models/members.py | 8 +- caotek_mesavoirs/routes.py | 3 + caotek_mesavoirs/templates/doc_edit.pt | 75 ++++++++++++++++++ caotek_mesavoirs/templates/doc_list.pt | 31 ++++++++ caotek_mesavoirs/templates/doc_view.pt | 21 +++++ .../templates/layouts/global_layout.pt | 12 ++- .../templates/panels/dropdown_menu_panel.pt | 2 +- caotek_mesavoirs/views/default.py | 78 +++++++++++++++++++ 9 files changed, 264 insertions(+), 13 deletions(-) create mode 100644 caotek_mesavoirs/models/default.py create mode 100644 caotek_mesavoirs/templates/doc_edit.pt create mode 100644 caotek_mesavoirs/templates/doc_list.pt create mode 100644 caotek_mesavoirs/templates/doc_view.pt diff --git a/caotek_mesavoirs/models/default.py b/caotek_mesavoirs/models/default.py new file mode 100644 index 0000000..f66a630 --- /dev/null +++ b/caotek_mesavoirs/models/default.py @@ -0,0 +1,47 @@ +# -*- 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 + +def execute_query(request, query, params): + """Execute query and mark session as changed""" + request.dbsession.execute(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() + elif doc_id == -1: + query = "SELECT * FROM docs where theme <> 'INTERNE' 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 update_doc(request, doc_id, intitule, texte, theme): + """créér ou modifier le doc""" + if doc_id == '0': + query = "INSERT INTO docs (intitule, texte, theme) VALUES(:intitule, :texte, :theme);" + execute_query(request, query, {'intitule': intitule, 'texte': texte, 'theme': theme}) + else: + query = "update docs set intitule=:intitule, texte=:texte, theme=:theme where doc_id = :doc_id;" + execute_query(request, query, {'doc_id': doc_id, 'intitule': intitule, 'texte': texte, 'theme': 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}) + + diff --git a/caotek_mesavoirs/models/members.py b/caotek_mesavoirs/models/members.py index 08668ac..8c43d2d 100644 --- a/caotek_mesavoirs/models/members.py +++ b/caotek_mesavoirs/models/members.py @@ -13,11 +13,9 @@ from zope.sqlalchemy import ( from datetime import * import transaction -def execute_query(request, query, params): - """Execute query and mark session as changed""" - request.dbsession.execute(query, params) - mark_changed(request.dbsession) - transaction.commit() +from .default import ( + execute_query, +) def get_member_by_mdp_oublie(request, lien): query = "SELECT * FROM members WHERE mdp_oublie=:lien;" diff --git a/caotek_mesavoirs/routes.py b/caotek_mesavoirs/routes.py index 0a0abc3..3a6171b 100644 --- a/caotek_mesavoirs/routes.py +++ b/caotek_mesavoirs/routes.py @@ -1,6 +1,9 @@ def includeme(config): config.add_static_view('static', 'static', cache_max_age=3600) config.add_route('home', '/') + config.add_route('doc_edit', '/doc_edit/{doc_id}') + config.add_route('doc_list', '/doc_list') + config.add_route('doc_view', '/doc_view/{doc_id}') # members config.add_route('changer_mdp', '/changer_mdp') config.add_route('envoyer_mdp', '/envoyer_mdp') diff --git a/caotek_mesavoirs/templates/doc_edit.pt b/caotek_mesavoirs/templates/doc_edit.pt new file mode 100644 index 0000000..2d2b7f8 --- /dev/null +++ b/caotek_mesavoirs/templates/doc_edit.pt @@ -0,0 +1,75 @@ + +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+ + +  Annuler +
+
+
+
+ +
+
+
+
+
+
+ + + +
+ diff --git a/caotek_mesavoirs/templates/doc_list.pt b/caotek_mesavoirs/templates/doc_list.pt new file mode 100644 index 0000000..bc39902 --- /dev/null +++ b/caotek_mesavoirs/templates/doc_list.pt @@ -0,0 +1,31 @@ + +
+ +
+

+ +   + Créér une nouvelle doc +

+ + + + + + + + + + + + + +
IntituleThèmeDernière mise à jour
${ligne.intitule}${ligne.theme}
+
+ +
+
+
+ +
+ diff --git a/caotek_mesavoirs/templates/doc_view.pt b/caotek_mesavoirs/templates/doc_view.pt new file mode 100644 index 0000000..136157d --- /dev/null +++ b/caotek_mesavoirs/templates/doc_view.pt @@ -0,0 +1,21 @@ + +
+ +
+ +  Fermer + +  Modifier +
+
+
+ Page text goes here. +
+
+
+
+
+
+ +
+
diff --git a/caotek_mesavoirs/templates/layouts/global_layout.pt b/caotek_mesavoirs/templates/layouts/global_layout.pt index 19e1140..d00d5df 100644 --- a/caotek_mesavoirs/templates/layouts/global_layout.pt +++ b/caotek_mesavoirs/templates/layouts/global_layout.pt @@ -6,11 +6,10 @@ ${page_title} - + - @@ -21,11 +20,9 @@ - + - - @@ -57,8 +54,9 @@
diff --git a/caotek_mesavoirs/templates/panels/dropdown_menu_panel.pt b/caotek_mesavoirs/templates/panels/dropdown_menu_panel.pt index 3c94464..03ebbd6 100644 --- a/caotek_mesavoirs/templates/panels/dropdown_menu_panel.pt +++ b/caotek_mesavoirs/templates/panels/dropdown_menu_panel.pt @@ -4,7 +4,7 @@