From d5b15a88078b9efdf7d5180f457672d1015ef65f Mon Sep 17 00:00:00 2001 From: Phuoc CAO Date: Sat, 11 Sep 2021 20:44:45 +0200 Subject: [PATCH] added change in doc's tags --- caotek_mesavoirs/models/contents.py | 21 ++++++++-- caotek_mesavoirs/routes.py | 1 + .../templates/contents/doc_edit.pt | 38 +++++++++++-------- caotek_mesavoirs/views/contents.py | 22 ++++++++++- 4 files changed, 61 insertions(+), 21 deletions(-) diff --git a/caotek_mesavoirs/models/contents.py b/caotek_mesavoirs/models/contents.py index 35b1dcb..1d7c7c7 100644 --- a/caotek_mesavoirs/models/contents.py +++ b/caotek_mesavoirs/models/contents.py @@ -39,9 +39,14 @@ def get_docs_bytopic(request, topic, logged_in): results = request.dbsession.execute(query, {'topic': topic}).fetchall() return results -def get_d_tags(request): - query = "SELECT * FROM d_tags;" - results = request.dbsession.execute(query).fetchall() +def get_docs_tags(request, doc_id): + query = "SELECT * FROM docs_tags WHERE doc_id=:doc_id;" + results = request.dbsession.execute(query, {'doc_id': doc_id}).fetchall() + return results + +def get_d_tags(request, topic): + query = "SELECT * FROM d_tags WHERE topic=:topic;" + results = request.dbsession.execute(query, {'topic': topic}).fetchall() return results def get_d_topics(request, logged_in): @@ -82,3 +87,13 @@ def delete_doc(request, doc_id): query = "delete from docs where doc_id = :doc_id;" execute_query(request, query, {'doc_id': doc_id}) +def change_doc_tag(request, action, doc_id, tag): + """ajouter une tag dans le doc""" + if action == 'ADD': + query = "INSERT INTO docs_tags (`doc_id`,`tag`) VALUES (:doc_id, :tag);" + execute_query(request, query, {'doc_id': doc_id, 'tag': tag}) + else: + query = "DELETE FROM docs_tags WHERE doc_id=:doc_id AND tag=:tag;" + execute_query(request, query, {'doc_id': doc_id, 'tag': tag}) + + diff --git a/caotek_mesavoirs/routes.py b/caotek_mesavoirs/routes.py index db90740..e7b45fc 100644 --- a/caotek_mesavoirs/routes.py +++ b/caotek_mesavoirs/routes.py @@ -7,6 +7,7 @@ def includeme(config): config.add_route('doc_edit', '/doc_edit/{topic}/{doc_id}') config.add_route('doc_view', '/doc_view/{doc_id}') config.add_route('doc_search', '/doc_search') + config.add_route('tag_change', '/tag_change/{action}/{topic}/{doc_id}/{tag}') # portfolio config.add_route('actif_edit', '/actif_edit/{no_id}') config.add_route('actif2_edit', '/actif2_edit/{no_id}') diff --git a/caotek_mesavoirs/templates/contents/doc_edit.pt b/caotek_mesavoirs/templates/contents/doc_edit.pt index 055e334..c932a3c 100644 --- a/caotek_mesavoirs/templates/contents/doc_edit.pt +++ b/caotek_mesavoirs/templates/contents/doc_edit.pt @@ -24,22 +24,6 @@ -
- -
- -
-
-
- -
- -
-
@@ -68,6 +52,28 @@  Supprimer
+
+

Tags

+
+ + + + + + + +
${ligne.tag}[ supprimer ]
+
+
+ + + + + + + +
${ligne.tag}[ ajouter ]
+


diff --git a/caotek_mesavoirs/views/contents.py b/caotek_mesavoirs/views/contents.py index ea368a3..2d18829 100644 --- a/caotek_mesavoirs/views/contents.py +++ b/caotek_mesavoirs/views/contents.py @@ -43,7 +43,7 @@ def doc_edit(request): return HTTPFound(location=request.route_url('home')) message = "" - tags = get_d_tags(request) + statuts = ['private', 'public'] if doc_id == '0': @@ -56,10 +56,14 @@ def doc_edit(request): doc['tag1'] = '' doc['tag2'] = '' doc['statut'] = 'private' + tags = {} else: titre = "Modifier : %s" % str(doc_id) doc = get_docs(request, doc_id) - + tags = get_docs_tags(request, doc.doc_id) + + d_tags = get_d_tags(request, topic) + if 'form.submitted' in request.params: new_values = {} for param, db_value in doc.items(): @@ -88,6 +92,7 @@ def doc_edit(request): 'doc': doc, 'topic': topic, 'tags': tags, + 'd_tags': d_tags, 'statuts': statuts, } @@ -147,3 +152,16 @@ def doc_view(request): 'tags': tags, 'url_retour':url_retour, } + +@view_config(route_name='tag_change') +def tag_change(request): + + logged_in = request.authenticated_userid + action = request.matchdict['action'] + topic = request.matchdict['topic'] + doc_id = request.matchdict['doc_id'] + tag = request.matchdict['tag'] + + change_doc_tag(request, action, doc_id, tag) + + return HTTPFound(location=request.route_url('doc_edit', topic=topic, doc_id=doc_id))