ajout calcul du rendement
This commit is contained in:
@@ -10,7 +10,7 @@ from .views.default import (
|
|||||||
|
|
||||||
@layout_config(template='templates/layouts/global_layout.pt')
|
@layout_config(template='templates/layouts/global_layout.pt')
|
||||||
class GlobalLayout(object):
|
class GlobalLayout(object):
|
||||||
# page_title = u"Pagode Tinh-Do"
|
# page_title = "Pagode Tinh-Do"
|
||||||
|
|
||||||
def __init__(self, context, request):
|
def __init__(self, context, request):
|
||||||
self.context = context
|
self.context = context
|
||||||
|
|||||||
@@ -49,9 +49,9 @@ def update_actif_devise(request, devise, taux):
|
|||||||
query = "UPDATE actifs SET parite = :taux WHERE devise = :devise;"
|
query = "UPDATE actifs SET parite = :taux WHERE devise = :devise;"
|
||||||
execute_query(request, query, {'taux': taux, 'devise': devise})
|
execute_query(request, query, {'taux': taux, 'devise': devise})
|
||||||
|
|
||||||
def update_actif_valeur(request, symbole, cours):
|
def update_actif_valeur(request, symbole, cours, dividends):
|
||||||
query = "UPDATE actifs SET cours = :cours WHERE symbole = :symbole;"
|
query = "UPDATE actifs SET cours = :cours, rendement = :dividends * nombre WHERE symbole = :symbole;"
|
||||||
execute_query(request, query, {'symbole': symbole, 'cours': cours})
|
execute_query(request, query, {'symbole': symbole, 'cours': cours, 'dividends': dividends})
|
||||||
|
|
||||||
def update_portefeuille(request, logged_in):
|
def update_portefeuille(request, logged_in):
|
||||||
query = "CALL spUPD_PORTEFEUILLE(:logged_in);"
|
query = "CALL spUPD_PORTEFEUILLE(:logged_in);"
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ def actif_edit(request):
|
|||||||
if not actif:
|
if not actif:
|
||||||
request.session.flash(u"Actif non trouvé : %s" % no_id, 'warning')
|
request.session.flash(u"Actif non trouvé : %s" % no_id, 'warning')
|
||||||
return HTTPFound(location=request.route_url('home'))
|
return HTTPFound(location=request.route_url('home'))
|
||||||
page_title= u"Actif ACTION : %s" % (actif.libelle)
|
page_title= "Actif ACTION : %s" % (actif.libelle)
|
||||||
|
|
||||||
if 'form.submitted' in request.params:
|
if 'form.submitted' in request.params:
|
||||||
new_values = {}
|
new_values = {}
|
||||||
@@ -123,7 +123,7 @@ def actif2_edit(request):
|
|||||||
if not actif:
|
if not actif:
|
||||||
request.session.flash(u"Actif non trouvé : %s" % no_id, 'warning')
|
request.session.flash(u"Actif non trouvé : %s" % no_id, 'warning')
|
||||||
return HTTPFound(location=request.route_url('home'))
|
return HTTPFound(location=request.route_url('home'))
|
||||||
page_title= u"Actif : %s" % (actif.symbole)
|
page_title= "Actif : %s" % (actif.symbole)
|
||||||
|
|
||||||
if 'form.submitted' in request.params:
|
if 'form.submitted' in request.params:
|
||||||
new_values = {}
|
new_values = {}
|
||||||
@@ -166,14 +166,14 @@ def allocation_edit(request):
|
|||||||
allocation['classe'] = ''
|
allocation['classe'] = ''
|
||||||
allocation['type'] = 'ACTION'
|
allocation['type'] = 'ACTION'
|
||||||
allocation['pc_cible'] = '0'
|
allocation['pc_cible'] = '0'
|
||||||
page_title= u'Nouvelle classe'
|
page_title= 'Nouvelle classe'
|
||||||
else:
|
else:
|
||||||
# lire la fiche de la categorie
|
# lire la fiche de la categorie
|
||||||
allocation = get_allocation(request, no_cat)
|
allocation = get_allocation(request, no_cat)
|
||||||
if not allocation:
|
if not allocation:
|
||||||
request.session.flash(u"Classe non trouvé : %s" % no_cat, 'warning')
|
request.session.flash(u"Classe non trouvé : %s" % no_cat, 'warning')
|
||||||
return HTTPFound(location=request.route_url('home'))
|
return HTTPFound(location=request.route_url('home'))
|
||||||
page_title= u"Classe : %s" % (allocation.classe)
|
page_title= "Classe : %s" % (allocation.classe)
|
||||||
|
|
||||||
if 'form.submitted' in request.params:
|
if 'form.submitted' in request.params:
|
||||||
new_values = {}
|
new_values = {}
|
||||||
@@ -212,7 +212,7 @@ def histo_list(request):
|
|||||||
liste.append(d)
|
liste.append(d)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'page_title': u'Historique',
|
'page_title': 'Historique',
|
||||||
'dt_data': json.dumps(liste),
|
'dt_data': json.dumps(liste),
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -230,14 +230,14 @@ def histo_edit(request):
|
|||||||
item['date'] = today
|
item['date'] = today
|
||||||
item['mvt_cash'] = 0.0
|
item['mvt_cash'] = 0.0
|
||||||
item['nb_part'] = 0.0
|
item['nb_part'] = 0.0
|
||||||
page_title= u'Nouvelle valeur part'
|
page_title= 'Nouvelle valeur part'
|
||||||
else:
|
else:
|
||||||
# lire la fiche de la categorie
|
# lire la fiche de la categorie
|
||||||
item = get_histo(request, no_id)
|
item = get_histo(request, no_id)
|
||||||
if not item:
|
if not item:
|
||||||
request.session.flash(u"Histo non trouvé : %s" % no_id, 'warning')
|
request.session.flash(u"Histo non trouvé : %s" % no_id, 'warning')
|
||||||
return HTTPFound(location=request.route_url('histo_list'))
|
return HTTPFound(location=request.route_url('histo_list'))
|
||||||
page_title= u"Valeur part au %s" % (item.date.strftime('%d/%m/%Y'))
|
page_title= "Valeur part au %s" % (item.date.strftime('%d/%m/%Y'))
|
||||||
|
|
||||||
if 'form.submitted' in request.params:
|
if 'form.submitted' in request.params:
|
||||||
new_values = {}
|
new_values = {}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ def to_euro(x):
|
|||||||
#if x == 0:
|
#if x == 0:
|
||||||
# return ""
|
# return ""
|
||||||
#else:
|
#else:
|
||||||
return (u"{:,.2f}".format(x).replace(',', ' ').replace('.', ',') + u" €")
|
return (u"{:,.2f}".format(x).replace(',', ' ').replace('.', ',') + " €")
|
||||||
|
|
||||||
def to_usd(x):
|
def to_usd(x):
|
||||||
"""Takes a float and returns a string"""
|
"""Takes a float and returns a string"""
|
||||||
@@ -60,11 +60,11 @@ def to_percent(x, d):
|
|||||||
if x == 0:
|
if x == 0:
|
||||||
pc = ''
|
pc = ''
|
||||||
elif d == 2:
|
elif d == 2:
|
||||||
pc = u"%.2f " % x
|
pc = "%.2f " % x
|
||||||
elif d == 3:
|
elif d == 3:
|
||||||
pc = u"%.3f " % x
|
pc = "%.3f " % x
|
||||||
else:
|
else:
|
||||||
pc = u"%.1f " % x
|
pc = "%.1f " % x
|
||||||
if len(pc) > 0:
|
if len(pc) > 0:
|
||||||
pc += "%"
|
pc += "%"
|
||||||
return pc.replace('.', ',')
|
return pc.replace('.', ',')
|
||||||
@@ -115,7 +115,9 @@ def home(request):
|
|||||||
if item.type == 'ACTION':
|
if item.type == 'ACTION':
|
||||||
# lire le cours de l'action
|
# lire le cours de l'action
|
||||||
ticker = yf.Ticker(item.symbole)
|
ticker = yf.Ticker(item.symbole)
|
||||||
update_actif_valeur(request, item.symbole, ticker.info.get('regularMarketPrice'))
|
# caluler son rendement
|
||||||
|
dividends = get_dividends(ticker)
|
||||||
|
update_actif_valeur(request, item.symbole, ticker.info.get('regularMarketPrice'), dividends)
|
||||||
time.sleep(1) # attendre 2 secondes
|
time.sleep(1) # attendre 2 secondes
|
||||||
|
|
||||||
# update du portefeuille
|
# update du portefeuille
|
||||||
@@ -144,7 +146,7 @@ def home(request):
|
|||||||
courbe_evoln.append(d)
|
courbe_evoln.append(d)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'page_title': u"Allocation d'actifs",
|
'page_title': "Allocation d'actifs",
|
||||||
'message': message,
|
'message': message,
|
||||||
'url': url,
|
'url': url,
|
||||||
'items': items,
|
'items': items,
|
||||||
@@ -168,7 +170,7 @@ def doc_list(request):
|
|||||||
docs_voiture = get_docs_bytheme(request, 'VOITURE')
|
docs_voiture = get_docs_bytheme(request, 'VOITURE')
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'page_title': u"Documents",
|
'page_title': "Documents",
|
||||||
'docs_finance': docs_finance,
|
'docs_finance': docs_finance,
|
||||||
'docs_maison': docs_maison,
|
'docs_maison': docs_maison,
|
||||||
'docs_voiture': docs_voiture,
|
'docs_voiture': docs_voiture,
|
||||||
@@ -179,12 +181,12 @@ def doc_edit(request):
|
|||||||
doc_id = request.matchdict['doc_id']
|
doc_id = request.matchdict['doc_id']
|
||||||
url = request.route_url('doc_edit',doc_id=doc_id)
|
url = request.route_url('doc_edit',doc_id=doc_id)
|
||||||
|
|
||||||
message = u""
|
message = ""
|
||||||
if doc_id == '0':
|
if doc_id == '0':
|
||||||
titre = "Nouveau doc"
|
titre = "Nouveau doc"
|
||||||
intitule = u""
|
intitule = ""
|
||||||
texte = u""
|
texte = ""
|
||||||
theme = u""
|
theme = ""
|
||||||
else:
|
else:
|
||||||
titre = "Modifier : %s" % str(doc_id)
|
titre = "Modifier : %s" % str(doc_id)
|
||||||
doc = get_docs(request, doc_id)
|
doc = get_docs(request, doc_id)
|
||||||
@@ -243,7 +245,7 @@ def doc_view(request):
|
|||||||
}
|
}
|
||||||
|
|
||||||
def envoyerMail(request, destinataire, objet, corps):
|
def envoyerMail(request, destinataire, objet, corps):
|
||||||
body = u"""
|
body = """
|
||||||
|
|
||||||
%s
|
%s
|
||||||
|
|
||||||
@@ -261,3 +263,14 @@ monaa.caotek.fr
|
|||||||
mailer.send_immediately(message)
|
mailer.send_immediately(message)
|
||||||
|
|
||||||
|
|
||||||
|
def get_dividends(ticker):
|
||||||
|
d = 0
|
||||||
|
# le ticker a des dividendes ?
|
||||||
|
if len(ticker.dividends) > 0:
|
||||||
|
# oui, cumuler les dividendes sur un an
|
||||||
|
h = ticker.history(period="1y")
|
||||||
|
nb = len(ticker.dividends)
|
||||||
|
for i in range(nb):
|
||||||
|
d += ticker.dividends[nb - 1 - i]
|
||||||
|
return d
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ def to_sha1(message):
|
|||||||
@view_config(route_name='envoyer_mdp', renderer='../templates/members/envoyer_mdp.pt')
|
@view_config(route_name='envoyer_mdp', renderer='../templates/members/envoyer_mdp.pt')
|
||||||
def envoyer_mdp(request):
|
def envoyer_mdp(request):
|
||||||
url = request.route_url('envoyer_mdp')
|
url = request.route_url('envoyer_mdp')
|
||||||
message = u''
|
message = ''
|
||||||
|
|
||||||
if 'form.submitted' in request.params:
|
if 'form.submitted' in request.params:
|
||||||
login = request.params['login']
|
login = request.params['login']
|
||||||
@@ -43,7 +43,7 @@ def envoyer_mdp(request):
|
|||||||
if member:
|
if member:
|
||||||
# Fabrication du corps du email_passwordMessage
|
# Fabrication du corps du email_passwordMessage
|
||||||
lien = update_membre_mdp_oublie(request, login)
|
lien = update_membre_mdp_oublie(request, login)
|
||||||
body = u"""
|
body = """
|
||||||
|
|
||||||
Le lien suivant vous dirigera vers une page où vous pourrez ré-initialiser votre mot de passe d'accès à « monaa.caotek.fr » :
|
Le lien suivant vous dirigera vers une page où vous pourrez ré-initialiser votre mot de passe d'accès à « monaa.caotek.fr » :
|
||||||
|
|
||||||
@@ -54,13 +54,13 @@ Le lien suivant vous dirigera vers une page où vous pourrez ré-initialiser vot
|
|||||||
|
|
||||||
|
|
||||||
""" % (request.route_url('redefinir_mdp', lien=lien))
|
""" % (request.route_url('redefinir_mdp', lien=lien))
|
||||||
envoyerMail(request, member.email, u"Demande de ré-initialisation du mot de passe", body)
|
envoyerMail(request, member.email, "Demande de ré-initialisation du mot de passe", body)
|
||||||
request.session.flash(u"Votre demande de ré-initialisation de mot de passe vous a été envoyée à %s." % member.email)
|
request.session.flash(u"Votre demande de ré-initialisation de mot de passe vous a été envoyée à %s." % member.email)
|
||||||
return HTTPFound(location=request.route_url('login'))
|
return HTTPFound(location=request.route_url('login'))
|
||||||
else:
|
else:
|
||||||
message = u"Le mot de passe fourni est incorrect."
|
message = "Le mot de passe fourni est incorrect."
|
||||||
return {
|
return {
|
||||||
'page_title': u"Changer mon mot de passe",
|
'page_title': "Changer mon mot de passe",
|
||||||
'url': url,
|
'url': url,
|
||||||
'message': message,
|
'message': message,
|
||||||
}
|
}
|
||||||
@@ -82,10 +82,10 @@ def changer_mdp(request):
|
|||||||
request.session.flash(u"Votre mot de passe a été mis à jour avec succès.")
|
request.session.flash(u"Votre mot de passe a été mis à jour avec succès.")
|
||||||
return HTTPFound(location=request.route_url('home'))
|
return HTTPFound(location=request.route_url('home'))
|
||||||
else:
|
else:
|
||||||
message = u"Le mot de passe actuel n'est pas correct."
|
message = "Le mot de passe actuel n'est pas correct."
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'page_title': u"Changer mon mot de passe",
|
'page_title': "Changer mon mot de passe",
|
||||||
'url': url,
|
'url': url,
|
||||||
'member': member,
|
'member': member,
|
||||||
'message': message,
|
'message': message,
|
||||||
@@ -113,7 +113,7 @@ def redefinir_mdp(request):
|
|||||||
request.session.flash(u"Le lien n'est plus valable.", 'warning')
|
request.session.flash(u"Le lien n'est plus valable.", 'warning')
|
||||||
return HTTPFound(location=request.route_url('login'))
|
return HTTPFound(location=request.route_url('login'))
|
||||||
return {
|
return {
|
||||||
'page_title': u"Définissez votre mot de passe",
|
'page_title': "Définissez votre mot de passe",
|
||||||
'url': url,
|
'url': url,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -131,8 +131,8 @@ def login(request):
|
|||||||
referrer = '/' # never use the login form itself as came_from
|
referrer = '/' # never use the login form itself as came_from
|
||||||
|
|
||||||
came_from = request.params.get('came_from', referrer)
|
came_from = request.params.get('came_from', referrer)
|
||||||
password = u''
|
password = ''
|
||||||
message = u''
|
message = ''
|
||||||
if 'form.submitted' in request.params:
|
if 'form.submitted' in request.params:
|
||||||
login = request.params['login']
|
login = request.params['login']
|
||||||
password = request.params['password']
|
password = request.params['password']
|
||||||
@@ -147,10 +147,10 @@ def login(request):
|
|||||||
headers = remember(request, login)
|
headers = remember(request, login)
|
||||||
return HTTPFound(location=came_from, headers=headers)
|
return HTTPFound(location=came_from, headers=headers)
|
||||||
|
|
||||||
message = u"Email et mot de passe invalides. La connexion a échoué."
|
message = "Email et mot de passe invalides. La connexion a échoué."
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'page_title': u"",
|
'page_title': "",
|
||||||
'url': login_url,
|
'url': login_url,
|
||||||
'came_from': came_from,
|
'came_from': came_from,
|
||||||
'login': login,
|
'login': login,
|
||||||
@@ -180,7 +180,7 @@ def users_list(request):
|
|||||||
liste.append(d)
|
liste.append(d)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'page_title': u'Liste des utilisateurs',
|
'page_title': 'Liste des utilisateurs',
|
||||||
'dt_data': json.dumps(liste),
|
'dt_data': json.dumps(liste),
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -219,7 +219,7 @@ def user_edit(request):
|
|||||||
if not membre:
|
if not membre:
|
||||||
request.session.flash(u"Utilisateur non trouvé : %s" % email, 'warning')
|
request.session.flash(u"Utilisateur non trouvé : %s" % email, 'warning')
|
||||||
return HTTPFound(location=request.route_url('users_list'))
|
return HTTPFound(location=request.route_url('users_list'))
|
||||||
page_title= u"Membre : %s" %(membre.nom)
|
page_title= "Membre : %s" %(membre.nom)
|
||||||
|
|
||||||
if 'form.submitted' in request.params:
|
if 'form.submitted' in request.params:
|
||||||
new_values = {}
|
new_values = {}
|
||||||
|
|||||||
Reference in New Issue
Block a user