From 4c76a07a5892e11bdef44bda9d99f7b8dc315c4a Mon Sep 17 00:00:00 2001 From: Phuoc CAO Date: Mon, 24 Jul 2017 12:54:24 +0200 Subject: [PATCH] added actif2_edit.pt --- caotek_mesavoirs/models/actifs.py | 2 +- caotek_mesavoirs/routes.py | 1 + caotek_mesavoirs/static/css/style.less | 3 + .../templates/actifs/actif2_edit.pt | 84 +++++++++++++++++++ .../templates/actifs/actifs_list.pt | 43 ++++------ caotek_mesavoirs/views/actifs.py | 77 ++++++++++++++--- 6 files changed, 171 insertions(+), 39 deletions(-) create mode 100644 caotek_mesavoirs/templates/actifs/actif2_edit.pt diff --git a/caotek_mesavoirs/models/actifs.py b/caotek_mesavoirs/models/actifs.py index 65c64d0..1385973 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 symbole" + query = "SELECT * FROM actifs ORDER BY categorie, symbole" results = request.dbsession.execute(query).fetchall() else: # lire le actif par son identifiant diff --git a/caotek_mesavoirs/routes.py b/caotek_mesavoirs/routes.py index d7af096..ded84d6 100644 --- a/caotek_mesavoirs/routes.py +++ b/caotek_mesavoirs/routes.py @@ -7,6 +7,7 @@ def includeme(config): # 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}') # members config.add_route('changer_mdp', '/changer_mdp') config.add_route('envoyer_mdp', '/envoyer_mdp') diff --git a/caotek_mesavoirs/static/css/style.less b/caotek_mesavoirs/static/css/style.less index 126143c..5baa756 100644 --- a/caotek_mesavoirs/static/css/style.less +++ b/caotek_mesavoirs/static/css/style.less @@ -76,6 +76,9 @@ background-color: #2f2f2f; color: #ffffff; } +.bg-grey { + background-color: #f6f6f6; +} .logo { height: 60px; } diff --git a/caotek_mesavoirs/templates/actifs/actif2_edit.pt b/caotek_mesavoirs/templates/actifs/actif2_edit.pt new file mode 100644 index 0000000..dccd359 --- /dev/null +++ b/caotek_mesavoirs/templates/actifs/actif2_edit.pt @@ -0,0 +1,84 @@ + +
+ +
+
+
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+
+ +
+
+
+
+
+
+
+ + Retour + + +
+
+
+
+ +
+
+
+ + + +
+ diff --git a/caotek_mesavoirs/templates/actifs/actifs_list.pt b/caotek_mesavoirs/templates/actifs/actifs_list.pt index 9910153..8f4c00b 100644 --- a/caotek_mesavoirs/templates/actifs/actifs_list.pt +++ b/caotek_mesavoirs/templates/actifs/actifs_list.pt @@ -2,7 +2,7 @@
-
+
- +
@@ -24,9 +24,22 @@ - + + + + + + + + + + + + + +
CatégoriePRU Valeur Plus-ValueNo
${ligne.categorie}${ligne.symbole}${ligne.libelle}${ligne.libelle}${ligne.nombre}${ligne.cours}${layout.to_euro(ligne.pru)}${layout.to_euro(ligne.valeur)}${layout.to_euro(ligne.plus_value)}${layout.to_euro(ligne.plus_value)}

@@ -55,30 +68,6 @@
- -
diff --git a/caotek_mesavoirs/views/actifs.py b/caotek_mesavoirs/views/actifs.py index 2207e9a..beea895 100644 --- a/caotek_mesavoirs/views/actifs.py +++ b/caotek_mesavoirs/views/actifs.py @@ -38,6 +38,7 @@ import json @view_config(route_name='actifs_list', renderer='../templates/actifs/actifs_list.pt', permission='view') def actifs_list(request): + url = request.route_url('actifs_list') message = '' # lire les actifs @@ -56,19 +57,10 @@ def actifs_list(request): items = get_actifs(request, '0') message = u'Le portefeuille est mis à jour avec succès.' - # construire la liste - liste=[] - for item in items: - if item.devise == 'EUR': - cours = to_euro(item.cours) - else: - cours = to_usd(item.cours) - d = (item.categorie, item.symbole, item.libelle, str(item.nombre), cours, to_euro(item.pru), to_euro(item.valeur), to_euro(item.plus_value),str(item.no_id)) - liste.append(d) - return { 'page_title': u"Mes actifs", - 'dt_data': json.dumps(liste), + 'url': url, + 'items': items, 'message': message, } @@ -80,6 +72,69 @@ def actif_edit(request): message = '' categories_list = get_categories(request,'0') + if no_id == '0': + # nouveau + actif = {} + actif['no_id'] = '0' + actif['symbole'] = '' + actif['categorie'] = 'Actions Europe' + actif['nombre'] = '0' + actif['pru'] = '0' + page_title= 'Nouvel actif ACTION' + else: + # lire la fiche du actif + actif = get_actifs(request, no_id) + if not actif: + request.session.flash(u"Actif non trouvé : %s" % no_id, 'warning') + return HTTPFound(location=request.route_url('home')) + page_title= u"Actif : %s" % (actif.libelle) + + if 'form.submitted' in request.params: + new_values = {} + for param, db_value in actif.items(): + if param in request.params and request.params[param] != db_value: + new_values[param] = request.params[param] + + if new_values: + # récupérer les infos du symbole de Yahoo finance + if 'symbole' in request.params: + symbole = request.params['symbole'] + else: + symbole = actif.symbole + sym = Share(symbole) + + if sym.get_name() <> None: + # import pdb;pdb.set_trace() + new_values['libelle'] = sym.get_name() + new_values['cours'] = sym.get_price() + new_values['devise'] = sym.get_currency() + + update_actif(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('home')) + else: + message = 'Symbole inconnu. Veuillez ressaisir.' + + if 'form.deleted' in request.params: + delete_actif(request, no_id) + 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, + 'actif': actif, + 'categories_list': categories_list, + 'message': message, + } + +@view_config(route_name='actif2_edit', renderer='../templates/actifs/actif2_edit.pt', permission='view') +def actif2_edit(request): + no_id = request.matchdict['no_id'] + url = request.route_url('actif2_edit', no_id=no_id) + message = '' + categories_list = get_categories(request,'0') + if no_id == '0': # nouveau actif = {}