diff --git a/caotek_mesavoirs/templates/actifs/allocation_list.pt b/caotek_mesavoirs/templates/actifs/allocation_list.pt
index 1708ce5..3ebbca9 100644
--- a/caotek_mesavoirs/templates/actifs/allocation_list.pt
+++ b/caotek_mesavoirs/templates/actifs/allocation_list.pt
@@ -3,12 +3,14 @@
+
+
+ Retour
+
+ Nouvelle classe
+
-
-
- Nouvelle classe
-
diff --git a/caotek_mesavoirs/templates/actifs/histo_edit.pt b/caotek_mesavoirs/templates/actifs/histo_edit.pt
new file mode 100644
index 0000000..9f1be2d
--- /dev/null
+++ b/caotek_mesavoirs/templates/actifs/histo_edit.pt
@@ -0,0 +1,67 @@
+
+
+
diff --git a/caotek_mesavoirs/templates/actifs/histo_list.pt b/caotek_mesavoirs/templates/actifs/histo_list.pt
index f1ec282..de9a0bd 100644
--- a/caotek_mesavoirs/templates/actifs/histo_list.pt
+++ b/caotek_mesavoirs/templates/actifs/histo_list.pt
@@ -4,6 +4,8 @@
Retour
+
+ Ajout/retrait de cash
@@ -14,8 +16,9 @@
| Valeur Pf |
Nb Part |
Valeur Part |
- Nb Part ref |
+ Cours ref |
Valeur Part ref |
+ No Id |
@@ -33,7 +36,14 @@
pageLength: 50,
bLengthChange: false,
columnDefs: [
- {className:"text-right", "targets": [1,2,3,4,5,6]}
+ {className:"text-right", "targets": [1,2,3,4,5,6]},
+ {className:"text-center", "targets": [7]},
+ { "targets": 7,
+ "render": function (data, type, full, meta) {
+ // ajouter un link vers le formulaire
+ return '' + data + '';
+ },
+ },
]
});
diff --git a/caotek_mesavoirs/templates/home.pt b/caotek_mesavoirs/templates/home.pt
index 11ac9a5..0ecec31 100644
--- a/caotek_mesavoirs/templates/home.pt
+++ b/caotek_mesavoirs/templates/home.pt
@@ -28,6 +28,34 @@
+
+
+
+
+ | Porteffeuille |
+ Montant |
+ % |
+
+
+
+
+ | Valorisation |
+ ${layout.to_euro(member.pf_valeur)} |
+ |
+
+
+ | Plus value |
+ ${layout.to_euro(member.pf_plusvalue)} |
+ ${layout.to_percent(member.pf_plusvalue_pc, 1)} |
+
+
+ | Rendemant brut |
+ ${layout.to_euro(member.pf_rendement)} |
+ ${layout.to_percent(member.pf_rdt_pc, 1)} |
+
+
+
+
@@ -55,8 +83,8 @@
% de +/- |
% PF |
TER |
- % Rdt |
Rdt brut |
+ % Rdt |
@@ -70,8 +98,8 @@
${layout.to_percent(ligne.pc_plusvalue,1)} |
${ligne.pc_allocation} % |
${layout.to_percent(ligne.ter,2)} |
- ${layout.to_percent(ligne.rdt,1)} |
- ${u'%.0f €' % (ligne.valeur * ligne.rdt / 100)} |
+ ${u'%.0f €' % (ligne.rendement)} |
+ ${layout.to_percent(ligne.pc_rdt,1)} |
| Total |
diff --git a/caotek_mesavoirs/views/actifs.py b/caotek_mesavoirs/views/actifs.py
index 92d6aa2..88d422a 100644
--- a/caotek_mesavoirs/views/actifs.py
+++ b/caotek_mesavoirs/views/actifs.py
@@ -97,7 +97,7 @@ def actif_edit(request):
actif['nombre'] = '0'
actif['pru'] = '0'
actif['ter'] = '0'
- actif['rdt'] = '0'
+ actif['pc_rdt'] = '0'
page_title= 'Nouvel actif ACTION'
else:
# lire la fiche du actif
@@ -163,7 +163,7 @@ def actif2_edit(request):
actif['pru'] = '0'
actif['cours'] = '0'
actif['ter'] = '0'
- actif['rdt'] = '0'
+ actif['pc_rdt'] = '0'
page_title= 'Nouvel actif'
else:
# lire la fiche du actif
@@ -254,7 +254,7 @@ def allocation_edit(request):
if 'form.submitted' in request.params:
new_values = {}
- for param, db_value in categorie.items():
+ for param, db_value in allocation.items():
if param in request.params and request.params[param] != db_value:
new_values[param] = request.params[param]
@@ -280,15 +280,69 @@ def allocation_edit(request):
@view_config(route_name='histo_list', renderer='../templates/actifs/histo_list.pt', permission='manage')
def histo_list(request):
# lire l historique
- items = get_histo_by_date(request, '0')
+ items = get_histo(request, '0')
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))
+ 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.cours_ref), to_euro(item.val_part_ref), str(item.no_id).zfill(4))
liste.append(d)
return {
'page_title': u'Historique',
'dt_data': json.dumps(liste),
}
+
+@view_config(route_name='histo_edit', renderer='../templates/actifs/histo_edit.pt', permission='view')
+def histo_edit(request):
+ no_id = request.matchdict['no_id']
+ url = request.route_url('histo_edit', no_id=no_id)
+ message = ''
+ today = datetime.today()
+
+ if no_id == '0':
+ # nouveau
+ item = {}
+ item['no_id'] = 0
+ item['date'] = today
+ item['mvt_cash'] = 0.0
+ item['nb_part'] = 0.0
+ page_title= u'Nouveau mouvement'
+ else:
+ # lire la fiche de la categorie
+ item = get_histo(request, no_id)
+ if not item:
+ request.session.flash(u"Histo non trouvé : %s" % no_id, 'warning')
+ return HTTPFound(location=request.route_url('histo_list'))
+ page_title= u"Mouvement %s du %s" % (item.no_id, item.date.strftime('%d/%m/%Y'))
+
+ if 'form.submitted' in request.params:
+ new_values = {}
+ for param, db_value in item.items():
+ if param in request.params and request.params[param] != db_value:
+ new_values[param] = request.params[param]
+
+ if new_values:
+ # lire le cours de l'indice de réfence : Carmignac Investissement A EUR Acc
+ sym = Share('FR0010148981.PA')
+ new_values['cours_ref'] = sym.get_price()
+
+ update_histo(request, no_id, new_values)
+ request.session.flash(u"La fiche a été mise à jour avec succès.", 'success')
+ return HTTPFound(location=request.route_url('histo_list'))
+
+
+ if 'form.deleted' in request.params:
+ delete_histo(request, no_id)
+ request.session.flash(u"La fiche a été supprimée avec succès.", 'success')
+ return HTTPFound(location=request.route_url('histo_list'))
+
+ return {
+ 'page_title': page_title,
+ 'url': url,
+ 'item': item,
+ 'today': today,
+ 'message': message,
+ }
+
diff --git a/caotek_mesavoirs/views/default.py b/caotek_mesavoirs/views/default.py
index e647343..032538d 100644
--- a/caotek_mesavoirs/views/default.py
+++ b/caotek_mesavoirs/views/default.py
@@ -29,7 +29,7 @@ from ..models.default import *
from ..models.actifs import (
get_actifs,
get_allocation,
- get_histo_by_date,
+ get_histo,
)
from ..models.members import (
get_member_by_email,
@@ -80,6 +80,9 @@ def to_percent(x, d):
@view_config(route_name='home', renderer='../templates/home.pt', permission='view')
def home(request):
+ logged_in = authenticated_userid(request)
+ member = get_member_by_email(request, logged_in)
+
message = ''
# lire les categories
@@ -108,10 +111,10 @@ def home(request):
total_valeur += item.valeur
total_pv += item.plus_value
total_pc_value = total_pv / total_valeur * 100
- total_rdt += item.valeur * item.rdt / 100
+ total_rdt += item.rendement
# lire l'historique
- histos = get_histo_by_date(request,'0')
+ histos = get_histo(request,'0')
courbe_evoln=[]
courbe_evoln.append(('Date', 'Valeur part PF', 'Valeur part Indice'))
@@ -124,6 +127,7 @@ def home(request):
'page_title': u"Allocation d'actifs",
'message': message,
'items': items,
+ 'member': member,
'donut_cible': json.dumps(donut_cible),
'donut_actuel': json.dumps(donut_actuel),
'courbe_evoln': json.dumps(courbe_evoln),
@@ -131,7 +135,7 @@ def home(request):
'total_valeur': total_valeur,
'total_pv': total_pv,
'total_pc_value': total_pc_value,
- 'total_rdt': int(total_rdt)
+ 'total_rdt': total_rdt
}
@view_config(route_name='doc_list', renderer='../templates/doc_list.pt', permission='view')
diff --git a/production.ini b/production.ini
index e1d605f..6331b54 100644
--- a/production.ini
+++ b/production.ini
@@ -15,9 +15,9 @@ pyramid.includes =
pyramid_chameleon
pyramid_layout
pyramid_mailer
- pyramid_tm
+ pyramid_tmq
-sqlalchemy.url = mysql://root:phuoc/@srvbd/bd_mesavoirs?charset=utf8
+sqlalchemy.url = mysql://root:phuoc@srvbd/bd_mesavoirs?charset=utf8
caotek_mesavoirs.admin_email = phuoc@caotek.fr
@@ -28,8 +28,8 @@ mail.port = 25
[server:main]
use = egg:waitress#main
host = 0.0.0.0
-port = 6543
-#url_scheme = https
+port = 9280
+url_scheme = https
###
# logging configuration