From ae819f49fa42ce4a26a26458d50bb04a4c03bbde Mon Sep 17 00:00:00 2001 From: Phuoc CAO Date: Wed, 26 Jul 2017 10:08:09 +0200 Subject: [PATCH] added allocation_list.pt and edit.pt --- caotek_mesavoirs/models/actifs.py | 54 ++++++++++++- caotek_mesavoirs/models/default.py | 35 --------- caotek_mesavoirs/routes.py | 3 +- .../templates/actifs/actif_edit.pt | 12 +-- .../templates/actifs/actifs_list.pt | 4 +- .../templates/actifs/allocation_edit.pt | 62 +++++++++++++++ .../templates/actifs/allocation_list.pt | 38 ++++++++++ caotek_mesavoirs/templates/home.pt | 15 ++-- .../templates/layouts/global_layout.pt | 2 +- caotek_mesavoirs/views/actifs.py | 76 +++++++++++++++++-- caotek_mesavoirs/views/default.py | 61 +-------------- 11 files changed, 239 insertions(+), 123 deletions(-) create mode 100644 caotek_mesavoirs/templates/actifs/allocation_edit.pt create mode 100644 caotek_mesavoirs/templates/actifs/allocation_list.pt 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 @@
- +
-
- -
- -
-
diff --git a/caotek_mesavoirs/templates/actifs/actifs_list.pt b/caotek_mesavoirs/templates/actifs/actifs_list.pt index fb1cab9..9244265 100644 --- a/caotek_mesavoirs/templates/actifs/actifs_list.pt +++ b/caotek_mesavoirs/templates/actifs/actifs_list.pt @@ -7,7 +7,7 @@
+ MAJ du portefeuille Nouvel actif
@@ -31,7 +31,7 @@ - ${ligne.categorie} + ${ligne.categorie} ${ligne.symbole} ${ligne.libelle} ${ligne.libelle} diff --git a/caotek_mesavoirs/templates/actifs/allocation_edit.pt b/caotek_mesavoirs/templates/actifs/allocation_edit.pt new file mode 100644 index 0000000..499158e --- /dev/null +++ b/caotek_mesavoirs/templates/actifs/allocation_edit.pt @@ -0,0 +1,62 @@ + +
+ +
+
+
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+ + Retour + + +
+
+
+
+ +
+
+
+ + + +
+ diff --git a/caotek_mesavoirs/templates/actifs/allocation_list.pt b/caotek_mesavoirs/templates/actifs/allocation_list.pt new file mode 100644 index 0000000..af178b6 --- /dev/null +++ b/caotek_mesavoirs/templates/actifs/allocation_list.pt @@ -0,0 +1,38 @@ + +
+ +
+ +
+
+

+ + Nouvelle catégorie +

+ + + + + + + + + + + + + + + + + + + + +
Classe% cibleType
${item.categorie}${item.pc_cible} %${item.type}
Total${total} %
+
+
+ +
+ + diff --git a/caotek_mesavoirs/templates/home.pt b/caotek_mesavoirs/templates/home.pt index d860ddd..315ede7 100644 --- a/caotek_mesavoirs/templates/home.pt +++ b/caotek_mesavoirs/templates/home.pt @@ -18,25 +18,22 @@ - ${item.categorie} + ${item.categorie} ${item.pc_cible} % ${layout.to_percent(item.pc_atteint)} - ${layout.to_percent(item.pc_atteint - item.pc_cible)} + ${layout.to_percent(item.pc_atteint - item.pc_cible)} + ${layout.to_percent(item.pc_atteint - item.pc_cible)} ${layout.to_euro(item.valeur)}
-

- - Nouvelle catégorie -

-

+ diversification + bas coût

+

+ Diversification à coût minimal

"Diversification is not determined by the number of securities held." - Larry Swedroe

+ Larry Swedroe

@@ -51,7 +48,7 @@ - + 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 @@
${ligne.categorie}${ligne.categorie} ${ligne.libelle} ${layout.to_euro(ligne.valeur)} ${layout.to_euro(ligne.plus_value)}