diff --git a/caotek_mesavoirs/models/actifs.py b/caotek_mesavoirs/models/actifs.py index 3b0d18e..f98c249 100644 --- a/caotek_mesavoirs/models/actifs.py +++ b/caotek_mesavoirs/models/actifs.py @@ -17,7 +17,7 @@ from .default import ( def get_actifs(request, no_id): if no_id == '0': - query = "SELECT * FROM actifs ORDER BY categorie, symbole" + query = "SELECT actifs.*, classes.* FROM actifs INNER JOIN classes ON actifs.categorie = classes.classe ORDER BY ordre, libelle" results = request.dbsession.execute(query).fetchall() else: # lire le actif par son identifiant @@ -58,4 +58,54 @@ def update_portefeuille(request): def delete_actif(request, no_id): query = "DELETE FROM actifs WHERE no_id = :no_id ;" - execute_query(request, query, {'no_id': no_id}) \ No newline at end of file + execute_query(request, query, {'no_id': no_id}) + +def get_categories(request, no_cat): + if no_cat == '0': + query = """ +SELECT categories.*, classes.* FROM categories INNER JOIN classes ON categories.categorie = classes.classe +ORDER BY ordre""" + results = request.dbsession.execute(query).fetchall() + else: + # lire le actif par son identifiant + query = """SELECT * FROM categories WHERE no_cat=:no_cat;""" + results = request.dbsession.execute(query, {'no_cat': no_cat}).first() + return results + +def get_categories_bytype(request, type): + # lire le actif par son identifiant + query = """SELECT categories.*, classes.* FROM categories INNER JOIN classes ON categories.categorie = classes.classe +WHERE type=:type ORDER by ordre;""" + results = request.dbsession.execute(query, {'type': type}).fetchall() + 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}) + +def get_classes(request, classe): + if classe == '0': + query = """SELECT * FROM classes ORDER BY ordre""" + results = request.dbsession.execute(query).fetchall() + else: + # lire la classe par son identifiant + query = """SELECT * FROM classes WHERE classe=:classe;""" + results = request.dbsession.execute(query, {'classe': classe}).first() + return results + diff --git a/caotek_mesavoirs/models/default.py b/caotek_mesavoirs/models/default.py index 9ef648b..b84552c 100644 --- a/caotek_mesavoirs/models/default.py +++ b/caotek_mesavoirs/models/default.py @@ -44,38 +44,3 @@ 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, 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 no_cat=:no_cat;""" - results = request.dbsession.execute(query, {'no_cat': no_cat}).first() - return results - -def get_categories_bytype(request, type): - # lire le actif par son identifiant - query = """SELECT * FROM categories WHERE type=:type;""" - results = request.dbsession.execute(query, {'type': type}).fetchall() - 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 8c4be40..65269ce 100644 --- a/caotek_mesavoirs/routes.py +++ b/caotek_mesavoirs/routes.py @@ -4,11 +4,12 @@ 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}') config.add_route('actif2_edit', '/actif2_edit/{no_id}') + config.add_route('allocation_list', '/allocation_list') + config.add_route('allocation_edit', '/allocation_edit/{no_cat}') # members config.add_route('changer_mdp', '/changer_mdp') config.add_route('envoyer_mdp', '/envoyer_mdp') diff --git a/caotek_mesavoirs/templates/actifs/actif_edit.pt b/caotek_mesavoirs/templates/actifs/actif_edit.pt index 44f8300..a1a643e 100644 --- a/caotek_mesavoirs/templates/actifs/actif_edit.pt +++ b/caotek_mesavoirs/templates/actifs/actif_edit.pt @@ -21,7 +21,7 @@
| Classe | +% cible | +Type | +
|---|---|---|
| ${item.categorie} | +${item.pc_cible} % | +${item.type} | +
| Total | +${total} % | ++ |
"Diversification is not determined by the number of securities held." - Larry Swedroe
+ Larry Swedroe| ${ligne.categorie} | +${ligne.categorie} | ${ligne.libelle} | ${layout.to_euro(ligne.valeur)} | ${layout.to_euro(ligne.plus_value)} | diff --git a/caotek_mesavoirs/templates/layouts/global_layout.pt b/caotek_mesavoirs/templates/layouts/global_layout.pt index 47acc39..1b62c79 100644 --- a/caotek_mesavoirs/templates/layouts/global_layout.pt +++ b/caotek_mesavoirs/templates/layouts/global_layout.pt @@ -54,8 +54,8 @@