diff --git a/caotek_mesavoirs.egg-info/SOURCES.txt b/caotek_mesavoirs.egg-info/SOURCES.txt index c723683..b054987 100644 --- a/caotek_mesavoirs.egg-info/SOURCES.txt +++ b/caotek_mesavoirs.egg-info/SOURCES.txt @@ -17,10 +17,12 @@ caotek_mesavoirs.egg-info/not-zip-safe caotek_mesavoirs.egg-info/requires.txt caotek_mesavoirs.egg-info/top_level.txt caotek_mesavoirs/models/__init__.py +caotek_mesavoirs/models/actifs.py caotek_mesavoirs/models/default.py caotek_mesavoirs/models/members.py caotek_mesavoirs/scripts/__init__.py caotek_mesavoirs/views/__init__.py +caotek_mesavoirs/views/actifs.py caotek_mesavoirs/views/default.py caotek_mesavoirs/views/members.py caotek_mesavoirs/views/notfound.py \ No newline at end of file diff --git a/caotek_mesavoirs/models/default.py b/caotek_mesavoirs/models/default.py index c3c0beb..c5b7fc5 100644 --- a/caotek_mesavoirs/models/default.py +++ b/caotek_mesavoirs/models/default.py @@ -44,13 +44,32 @@ def delete_doc(request, doc_id): query = "delete from docs where doc_id = :doc_id;" results = request.dbsession.execute(query, {'doc_id': doc_id}) -def get_categories(request, cat_id): - if cat_id == '0': +def get_categories(request, no_cat): + if no_cat == '0': query = "SELECT * FROM categories ORDER BY categorie" results = request.dbsession.execute(query).fetchall() else: # lire le actif par son identifiant - query = """SELECT * FROM categories WHERE cat_id=:cat_id;""" - results = request.dbsession.execute(query, {'cat_id': cat_id}).first() + query = """SELECT * FROM categories WHERE no_cat=:no_cat;""" + results = request.dbsession.execute(query, {'no_cat': no_cat}).first() return results +def update_categorie(request, no_cat, new_values): + # formater les champs + s = '' + for param in new_values.keys(): + if s: + s += ",%s=:%s" % (param, param) + else: + s = "%s=:%s" % (param, param) + + if no_cat == '0': + query = "INSERT INTO categories SET %s" % s + else: + new_values['no_cat'] = no_cat + query = "UPDATE categories SET %s WHERE no_cat = :no_cat;" % s + execute_query(request, query, new_values) + +def delete_categorie(request, no_cat): + query = "DELETE FROM categories WHERE no_cat = :no_cat ;" + execute_query(request, query, {'no_cat': no_cat}) \ No newline at end of file diff --git a/caotek_mesavoirs/routes.py b/caotek_mesavoirs/routes.py index ded84d6..8c4be40 100644 --- a/caotek_mesavoirs/routes.py +++ b/caotek_mesavoirs/routes.py @@ -4,6 +4,7 @@ def includeme(config): 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}') + config.add_route('categorie_edit', '/categorie_edit/{no_cat}') # actifs config.add_route('actifs_list', '/actifs_list') config.add_route('actif_edit', '/actif_edit/{no_id}') diff --git a/caotek_mesavoirs/templates/categorie_edit.pt b/caotek_mesavoirs/templates/categorie_edit.pt new file mode 100644 index 0000000..b69ae4f --- /dev/null +++ b/caotek_mesavoirs/templates/categorie_edit.pt @@ -0,0 +1,64 @@ + +
+ +
+
+
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + Retour + + +
+
+
+
+ +
+
+
+ + + +
+ diff --git a/caotek_mesavoirs/templates/home.pt b/caotek_mesavoirs/templates/home.pt index aff4bdd..ccda642 100644 --- a/caotek_mesavoirs/templates/home.pt +++ b/caotek_mesavoirs/templates/home.pt @@ -2,6 +2,34 @@
+ +

+ + Nouvelle categorie +

+
+ + + + + + + + + + + + + + + + + +
Categorie% cible% atteintValeur
${item.categorie}${layout.to_percent(item.pc_cible)}${layout.to_percent(item.pc_atteint)}${layout.to_euro(item.valeur)}
+
+ +
+
diff --git a/caotek_mesavoirs/views/default.py b/caotek_mesavoirs/views/default.py index a2d5c33..fdfdbbe 100644 --- a/caotek_mesavoirs/views/default.py +++ b/caotek_mesavoirs/views/default.py @@ -73,9 +73,13 @@ def home(request): request.session.flash(u"Utilisateur non trouvé : %s" % logged_in, 'warning') return HTTPFound(location=request.route_url('/')) + # lire les categories + items = get_categories(request, '0') + return { 'page_title': u"%s %s" % (membre.prenom, membre.nom), 'message': message, + 'items': items, } @view_config(route_name='doc_list', renderer='../templates/doc_list.pt', permission='view') @@ -171,3 +175,50 @@ gestion.entreprise-dumas.com mailer = get_mailer(request) mailer.send_immediately(message) + + +@view_config(route_name='categorie_edit', renderer='../templates/categorie_edit.pt', permission='view') +def categorie_edit(request): + no_cat = request.matchdict['no_cat'] + url = request.route_url('categorie_edit', no_cat=no_cat) + message = '' + categories_list = get_categories(request,'0') + + if no_cat == '0': + # nouveau + categorie = {} + categorie['no_cat'] = '0' + categorie['categorie'] = '' + categorie['pc_cible'] = '0' + page_title= u'Nouvelle catégorie' + else: + # lire la fiche de la categorie + categorie = get_categories(request, no_cat) + if not categorie: + request.session.flash(u"Catégorie non trouvé : %s" % no_cat, 'warning') + return HTTPFound(location=request.route_url('home')) + page_title= u"Catégorie : %s" % (categorie.categorie) + + if 'form.submitted' in request.params: + new_values = {} + for param, db_value in categorie.items(): + if param in request.params and request.params[param] != db_value: + new_values[param] = request.params[param] + + if new_values: + update_categorie(request, no_cat, new_values) + request.session.flash(u"La fiche a été mise à jour avec succès.", 'success') + return HTTPFound(location=request.route_url('home')) + + + if 'form.deleted' in request.params: + delete_categorie(request, no_cat) + request.session.flash(u"La fiche a été supprimée avec succès.", 'success') + return HTTPFound(location=request.route_url('home')) + + return { + 'page_title': page_title, + 'url': url, + 'categorie': categorie, + 'message': message, + } \ No newline at end of file