diff --git a/caotek_mesavoirs/models/default.py b/caotek_mesavoirs/models/default.py index 5ba2108..729bc39 100644 --- a/caotek_mesavoirs/models/default.py +++ b/caotek_mesavoirs/models/default.py @@ -51,14 +51,22 @@ def get_docs_bycritere(request, critere): results = request.dbsession.execute(query, {'critere': '%' + critere + '%'}).fetchall() return results -def update_doc(request, doc_id, intitule, texte, theme): +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 (intitule, texte, theme) VALUES(:intitule, :texte, :theme);" - execute_query(request, query, {'intitule': intitule, 'texte': texte, 'theme': theme}) + query = "INSERT INTO docs SET %s;" % s 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}) + 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""" diff --git a/caotek_mesavoirs/templates/doc_edit.pt b/caotek_mesavoirs/templates/doc_edit.pt index 0b673f2..e910f78 100644 --- a/caotek_mesavoirs/templates/doc_edit.pt +++ b/caotek_mesavoirs/templates/doc_edit.pt @@ -21,13 +21,13 @@
- +
-
@@ -37,7 +37,7 @@
-
@@ -47,7 +47,7 @@
- +
diff --git a/caotek_mesavoirs/views/default.py b/caotek_mesavoirs/views/default.py index 1160045..2b98b97 100644 --- a/caotek_mesavoirs/views/default.py +++ b/caotek_mesavoirs/views/default.py @@ -123,13 +123,14 @@ def doc_edit(request): for param, db_value in doc.items(): if param in request.params and request.params[param] != db_value: new_values[param] = request.params[param] - - if new_values: - update_doc(request, doc_id, intitule, texte, theme) + + if new_values: + import pdb;pdb.set_trace() + update_doc(request, doc_id, new_values) if doc_id != '0': return HTTPFound(location=request.route_url('doc_view', doc_id=doc_id)) else: - return HTTPFound(location=request.route_url('archives',theme=theme)) + return HTTPFound(location=request.route_url('archives',theme=request.params['theme'])) if 'form.deleted' in request.params: if doc_id != '0':