fusionner actifs_list avec home.pt et le supprimer

This commit is contained in:
2018-07-19 18:31:14 +02:00
parent ac6a987f9c
commit 96975673ce
9 changed files with 118 additions and 196 deletions

View File

@@ -31,86 +31,6 @@ from ..views.default import (
import json
import time
import urllib2
from bs4 import BeautifulSoup
def getYahooQuote(ticker):
# specify the url
quote_page = 'https://finance.yahoo.com/quote/%s/history/' % ticker
# query & parse the html using beautiful soap and store in variable `soup`
soup = BeautifulSoup(urllib2.urlopen(quote_page), 'html.parser')
data = []
# get the quote price
rows = soup.findAll('table')[0].tbody.findAll('tr')
for each_row in rows:
divs = each_row.findAll('td')
if divs[1].span.text != 'Dividend': #Ignore this row in the table
#I'm only interested in 'Close' price;
data.append({'Date': divs[0].span.text, 'Close': float(divs[5].span.text.replace(',',''))})
break
# retourne la prière ligne
return data[0]
def getCurrencyRate(currency):
# specify the url
quote_page = 'http://www.finances.net/devises/courseuro'
# query & parse the html using beautiful soap and store in variable `soup`
soup = BeautifulSoup(urllib2.urlopen(quote_page), 'html.parser')
# get the history table
rows = soup.find('table', attrs={'class': 'news_table'}).tbody.findAll('tr')
divs = rows[1].findAll('td')
rate = divs[1].span.text
return float(rate.replace(',','.'))
@view_config(route_name='actifs_list', renderer='../templates/actifs/actifs_list.pt', permission='view')
def actifs_list(request):
url = request.route_url('actifs_list')
logged_in = request.authenticated_userid
message = ''
# lire les actifs
items = get_actifs(request, '0')
# MAJ du prtefeuille
if 'form.submitted' in request.params:
# maj des parités des devises d'après Yahoo finance
update_actif_devise(request, 'USD', getCurrencyRate('USD'))
for item in items:
if item.type == 'ACTION':
# get yahoo price
quote_price = getYahooQuote(item.symbole)
if quote_price:
update_actif_valeur(request, item.symbole, quote_price['Close'])
time.sleep(2) # attendre 2 secondes
# update du portefeuille
update_portefeuille(request, logged_in)
# relire les actifs
items = get_actifs(request, '0')
message = u'Le portefeuille est mis à jour avec succès.'
total_valeur = 0
total_pv = 0
for item in items:
total_valeur += item.valeur
total_pv += item.plus_value
total_pc_value = total_pv / total_valeur * 100
return {
'page_title': u"Mes actifs",
'url': url,
'items': items,
'message': message,
'total_valeur': total_valeur,
'total_pv': total_pv,
'total_pc_value': total_pc_value,
}
@view_config(route_name='actif_edit', renderer='../templates/actifs/actif_edit.pt', permission='view')
@@ -125,18 +45,21 @@ def actif_edit(request):
actif = {}
actif['no_id'] = '0'
actif['symbole'] = ''
actif['libelle'] = ''
actif['classe'] = ''
actif['devise'] = 'EUR'
actif['nombre'] = '0'
actif['pru'] = '0'
actif['ter'] = '0'
actif['pc_rdt'] = '0'
actif['website'] = ''
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('actifs_list'))
return HTTPFound(location=request.route_url('home'))
page_title= u"Actif ACTION : %s" % (actif.libelle)
if 'form.submitted' in request.params:
@@ -158,14 +81,14 @@ def actif_edit(request):
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('actifs_list'))
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('actifs_list'))
return HTTPFound(location=request.route_url('home'))
return {
'page_title': page_title,
@@ -199,7 +122,7 @@ def actif2_edit(request):
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('actifs_list'))
return HTTPFound(location=request.route_url('home'))
page_title= u"Actif : %s" % (actif.symbole)
if 'form.submitted' in request.params:
@@ -212,12 +135,12 @@ def actif2_edit(request):
new_values['devise'] = 'EUR'
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('actifs_list'))
return HTTPFound(location=request.route_url('home'))
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('actifs_list'))
return HTTPFound(location=request.route_url('home'))
return {
'page_title': page_title,
@@ -291,7 +214,6 @@ def allocation_edit(request):
request.session.flash(u"La fiche a été mise à jour avec succès.", 'success')
return HTTPFound(location=request.route_url('allocation_list'))
if 'form.deleted' in request.params:
delete_allocation(request, no_cat)
request.session.flash(u"La fiche a été supprimée avec succès.", 'success')