diff --git a/caotek_mesavoirs/templates/actifs/actifs_list.pt b/caotek_mesavoirs/templates/actifs/actifs_list.pt index 5c4eca7..b683675 100644 --- a/caotek_mesavoirs/templates/actifs/actifs_list.pt +++ b/caotek_mesavoirs/templates/actifs/actifs_list.pt @@ -41,15 +41,15 @@ ${layout.to_euro(ligne.valeur)} ${layout.to_euro(ligne.plus_value)} ${layout.to_euro(ligne.plus_value)} - ${layout.to_percent(ligne.pc_plusvalue)} - ${layout.to_percent(ligne.pc_plusvalue)} + ${layout.to_percent(ligne.pc_plusvalue, 1)} + ${layout.to_percent(ligne.pc_plusvalue, 1)} ${ligne.pc_allocation} % Total ${layout.to_euro(total_valeur)} ${layout.to_euro(total_pv)} - ${layout.to_percent(total_pc_value)} + ${layout.to_percent(total_pc_value, 1)} 100.0 % diff --git a/caotek_mesavoirs/templates/actifs/allocation_list.pt b/caotek_mesavoirs/templates/actifs/allocation_list.pt index d83d2de..1708ce5 100644 --- a/caotek_mesavoirs/templates/actifs/allocation_list.pt +++ b/caotek_mesavoirs/templates/actifs/allocation_list.pt @@ -4,7 +4,7 @@
-
+

Nouvelle classe @@ -31,8 +31,37 @@

+ +
+ +
+
+ + +
diff --git a/caotek_mesavoirs/templates/home.pt b/caotek_mesavoirs/templates/home.pt index 1cdbcf9..11ac9a5 100644 --- a/caotek_mesavoirs/templates/home.pt +++ b/caotek_mesavoirs/templates/home.pt @@ -5,7 +5,7 @@

"Investment success depends on asset allocation, diversification, and risk management, not on complexity." Tweddell and Pierce

-
+
@@ -29,12 +29,22 @@
+ +
+
+ +
+
+
+ +
+
+

+ Diversification à coût minimal

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

-
@@ -45,7 +55,8 @@ - + + @@ -60,23 +71,75 @@ + - - - - - - - - + + + + + + + + + +
% de +/- % PF TERRdt% RdtRdt brut
${ligne.pc_allocation} % ${layout.to_percent(ligne.ter,2)} ${layout.to_percent(ligne.rdt,1)}${u'%.0f €' % (ligne.valeur * ligne.rdt / 100)}
${layout.to_euro(total_valeur)}${layout.to_euro(total_pv)}${layout.to_percent(total_pc_value,1)}100 %
Total${layout.to_euro(total_valeur)}${layout.to_euro(total_pv)}${layout.to_percent(total_pc_value, 1)}100.0 %${total_rdt} €
+
+
+
+ +
+
+
-
-
-
+ +
diff --git a/caotek_mesavoirs/views/actifs.py b/caotek_mesavoirs/views/actifs.py index 48f36da..92d6aa2 100644 --- a/caotek_mesavoirs/views/actifs.py +++ b/caotek_mesavoirs/views/actifs.py @@ -207,16 +207,25 @@ def allocation_list(request): items = get_allocation(request, '0') # calculer % total total = 0 + donut_data=[] + donut_data.append(('Allocation', 'Pourcent')) + for item in items: + # totaliser les pourcentages total += item.pc_cible + # construire la liste pour donut + d = (item.classe, item.pc_cible) + donut_data.append(d) + if total <> 100: message = u'Attention, le total de votre répartition cible ne fait pas 100%.' return { - 'page_title': u"Allocation d'actifs", + 'page_title': u"Allocation cible", 'message': message, 'items': items, 'total': total, + 'donut_data': json.dumps(donut_data), } @view_config(route_name='allocation_edit', renderer='../templates/actifs/allocation_edit.pt', permission='view') @@ -273,12 +282,12 @@ def histo_list(request): # lire l historique items = get_histo_by_date(request, '0') - # construire la liste liste=[] for item in items: + # construire la liste pour datatable d = (item.date.strftime('%d/%m/%Y'), to_euro(item.mvt_cash), to_euro(item.valeur_pf), to_euro(item.nb_part), to_euro(item.val_part), to_euro(item.nb_part_ref), to_euro(item.val_part_ref)) liste.append(d) - + return { 'page_title': u'Historique', 'dt_data': json.dumps(liste), diff --git a/caotek_mesavoirs/views/default.py b/caotek_mesavoirs/views/default.py index d645aa8..e647343 100644 --- a/caotek_mesavoirs/views/default.py +++ b/caotek_mesavoirs/views/default.py @@ -29,6 +29,7 @@ from ..models.default import * from ..models.actifs import ( get_actifs, get_allocation, + get_histo_by_date, ) from ..models.members import ( get_member_by_email, @@ -83,24 +84,54 @@ def home(request): # lire les categories items = get_allocation(request, '0') + # construire la liste pour donut + donut_cible=[] + donut_cible.append(('Allocation cible', 'Pourcent')) + donut_actuel=[] + donut_actuel.append(('Allocation actuelle', 'Pourcent')) + + for item in items: + # construire la liste pour donut cible + d = (item.classe, item.pc_cible) + donut_cible.append(d) + # construire la liste pour donut actuel + d = (item.classe, int(item.pc_atteint * 10)) + donut_actuel.append(d) + # lire les actifs actifs = get_actifs(request, '0') total_valeur = 0 total_pv = 0 + total_rdt = 0 for item in actifs: total_valeur += item.valeur total_pv += item.plus_value total_pc_value = total_pv / total_valeur * 100 + total_rdt += item.valeur * item.rdt / 100 + # lire l'historique + histos = get_histo_by_date(request,'0') + courbe_evoln=[] + courbe_evoln.append(('Date', 'Valeur part PF', 'Valeur part Indice')) + + for item in histos: + # construire la liste pour donut cible + d = (item.date.strftime('%d/%m/%Y'), int(item.val_part * 1000), int(item.val_part_ref * 1000)) + courbe_evoln.append(d) + return { 'page_title': u"Allocation d'actifs", 'message': message, 'items': items, + 'donut_cible': json.dumps(donut_cible), + 'donut_actuel': json.dumps(donut_actuel), + 'courbe_evoln': json.dumps(courbe_evoln), 'actifs': actifs, 'total_valeur': total_valeur, 'total_pv': total_pv, 'total_pc_value': total_pc_value, + 'total_rdt': int(total_rdt) } @view_config(route_name='doc_list', renderer='../templates/doc_list.pt', permission='view')