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 @@
-
-
+
+ Tags
+
+
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))