diff --git a/caotek_mesavoirs.egg-info/PKG-INFO b/caotek_mesavoirs.egg-info/PKG-INFO index 1e71d43..f580e92 100644 --- a/caotek_mesavoirs.egg-info/PKG-INFO +++ b/caotek_mesavoirs.egg-info/PKG-INFO @@ -8,19 +8,36 @@ Author-email: License: UNKNOWN Description: # README # + Cette application permet de : - Cette application permet le suivi des avoirs financiers : actions, ETF, obligations (assurances-vie), livrets, etc... + 1. faire le suivi des actifs financiers : actions, ETF, obligations (assurances-vie), livrets + 2. compararer les écarts avec une allocation cible + + Elle est développée avec les composants open source suivants : + + ## Backend + + - [Python](https://www.python.org/downloads/) 3.7 + - [Pyramid web framework](https://trypyramid.com/) 1.10 + - [MySQL server](https://mysql.com/) 5.7 sur Debian GNU/Linux 9 (stretch) + - [Apache web server](https://apache.org/) 2.4 sur Debian GNU/Linux 9 (stretch) + + ## Frontend + + - [Bootstrap framework](https://getbootstrap.com/) for CSS 3.3.7 + - [Jquery](https://jquery.com/download/) for JavaScript 3.2.1 + - Chameleon templates + - [FormValidation](https://formvalidation.io/) form validator 0.7.0 + + ## Jquery Plugins + + - [DataTables](https://datatables.net/) 1.10.20 + - [less.js](http://lesscss.org/) 3.11.1 + - [moment.js](https://momentjs.com/) with-locales.min.js + - [Google Charts](https://developers.google.com/chart) - - Développé avec : - - Pyramid Framework - - MySQL - - Chameleon - - * [Exemple d'une comptabilité simple] (http://perso.numericable.fr/assoc1901/droit/comptabilite1.htm) - - * [Learn Markdown](https://bitbucket.org/tutorials/markdowndemo) + [Learn Markdown](https://bitbucket.org/tutorials/markdowndemo) @@ -29,6 +46,25 @@ Description: # README # - Initial version + + + >>> quote.info + {'language': 'en-US', 'region': 'US', 'quoteType': 'ETF', 'quoteSourceName': 'Delayed Quote', 'currency': 'USD', 'regularMarketChange': -0.5200043, + 'regularMarketOpen': 93.81, 'regularMarketDayHigh': 93.91, 'regularMarketDayLow': 92.44, 'regularMarketVolume': 4040066, 'askSize': 14, + 'messageBoardId': 'finmb_22939711', 'fullExchangeName': 'NYSEArca', 'longName': 'Vanguard Real Estate Index Fund ETF Shares', + 'financialCurrency': 'USD', 'averageDailyVolume3Month': 4826021, 'averageDailyVolume10Day': 4604087, 'fiftyTwoWeekLowChange': 22.009995, + 'fiftyTwoWeekLowChangePercent': 0.30965102, 'fiftyTwoWeekRange': '71.08 - 94.07', 'fiftyTwoWeekHighChange': -0.98000336, + 'fiftyTwoWeekHighChangePercent': -0.01041781, 'fiftyTwoWeekLow': 71.08, 'fiftyTwoWeekHigh': 94.07, 'esgPopulated': False, 'tradeable': True, + 'trailingAnnualDividendRate': 3.533, 'trailingPE': 8.381201, 'trailingAnnualDividendYield': 0.037741695, 'ytdReturn': 25.76, + 'trailingThreeMonthReturns': 7.14, 'trailingThreeMonthNavReturns': 7.21, 'epsTrailingTwelveMonths': 11.107, 'marketState': 'CLOSED', + 'postMarketChangePercent': 0.042970154, 'postMarketTime': 1569618175, 'postMarketPrice': 93.13, 'postMarketChange': 0.040000916, + 'regularMarketChangePercent': -0.55550075, 'regularMarketDayRange': '92.44 - 93.91', 'regularMarketPreviousClose': 93.61, 'bid': 93.03, + 'ask': 93.13, 'bidSize': 11, 'exchange': 'PCX', 'shortName': 'Vanguard Real Estate ETF', 'exchangeDataDelayedBy': 0, 'priceHint': 2, + 'sharesOutstanding': 370180992, 'bookValue': 63.751, 'fiftyDayAverage': 92.157425, 'fiftyDayAverageChange': 0.9325714, + 'fiftyDayAverageChangePercent': 0.01011933, 'twoHundredDayAverage': 88.83857, 'twoHundredDayAverageChange': 4.2514267, + 'twoHundredDayAverageChangePercent': 0.04785564, 'marketCap': 34460147712, 'priceToBook': 1.4602123, 'sourceInterval': 15, + 'exchangeTimezoneName': 'America/New_York', 'exchangeTimezoneShortName': 'EDT', 'gmtOffSetMilliseconds': -14400000, 'triggerable': False, + 'market': 'us_market', 'regularMarketPrice': 93.09, 'regularMarketTime': 1569614400, 'symbol': 'VNQ'} Keywords: web wsgi bfg pylons pyramid Platform: UNKNOWN Classifier: Programming Language :: Python diff --git a/caotek_mesavoirs.egg-info/requires.txt b/caotek_mesavoirs.egg-info/requires.txt index 52c2ca5..81afbd7 100644 --- a/caotek_mesavoirs.egg-info/requires.txt +++ b/caotek_mesavoirs.egg-info/requires.txt @@ -9,7 +9,7 @@ transaction zope.sqlalchemy waitress mysqlclient -beautifulsoup4 +yfinance docutils [testing] diff --git a/caotek_mesavoirs/models/default.py b/caotek_mesavoirs/models/default.py index 41b9110..0b4df3f 100644 --- a/caotek_mesavoirs/models/default.py +++ b/caotek_mesavoirs/models/default.py @@ -29,10 +29,18 @@ def get_docs(request, doc_id): def get_docs_bytheme(request, theme): """Lire les doc""" - query = "SELECT * FROM docs WHERE theme=:theme ORDER BY intitule;" + if theme == 'BLOG': + query = "SELECT * FROM docs WHERE theme=:theme ORDER BY cree_le DESC LIMIT 10;" + else: + query = "SELECT * FROM docs WHERE theme=:theme ORDER BY intitule;" results = request.dbsession.execute(query, {'theme': theme}).fetchall() return results +def get_blog_themes(request): + query = "SELECT * FROM blog_themes;" + results = request.dbsession.execute(query).fetchall() + return results + def update_doc(request, doc_id, intitule, texte, theme): """créér ou modifier le doc""" if doc_id == '0': diff --git a/caotek_mesavoirs/routes.py b/caotek_mesavoirs/routes.py index 1668ae8..a0b5811 100644 --- a/caotek_mesavoirs/routes.py +++ b/caotek_mesavoirs/routes.py @@ -10,6 +10,7 @@ def includeme(config): config.add_route('allocation_edit', '/allocation_edit/{no_cat}') config.add_route('histo_list', '/histo_list') config.add_route('histo_edit', '/histo_edit/{no_id}') + config.add_route('portfolio', '/portfolio') # 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 f4a12d3..1497aae 100644 --- a/caotek_mesavoirs/static/css/style.less +++ b/caotek_mesavoirs/static/css/style.less @@ -3,15 +3,15 @@ .navbar { margin-bottom: 0; - color: #404040 !important; + color: #000000 !important; + background-color: #ffffff !important; border: 0; border-radius: 0; font-size: 20px !important; - letter-spacing: 4px; } .navbar li a, .navbar .navbar-brand { - color: #404040 !important; + color: #000000 !important; font-size: 14px !important; } @@ -26,6 +26,12 @@ color: #fff !important; } +.navbar-brand { + transform: translateX(-50%); + left: 50%; + position: absolute; +} + /* Dropdown */ .open .dropdown-toggle { color: #000000 ; @@ -43,6 +49,12 @@ color: #000000 !important; } +@media (min-width: 1200px) { + .container{ + max-width: 900px; + } +} + .container-fluid { padding-top: 2em; padding-bottom: 1em; @@ -54,7 +66,7 @@ } } -#doc-text { +.monospace-font { font-family: Monaco, "Courier New", Courier, monospace; } @@ -79,9 +91,6 @@ .bg-grey { background-color: #f6f6f6; } -.logo { - height: 60px; -} .logo-primary { font-size: 50px; diff --git a/caotek_mesavoirs/static/img/blog/vpn_1.jpg b/caotek_mesavoirs/static/img/blog/vpn_1.jpg new file mode 100644 index 0000000..f5cbe7f Binary files /dev/null and b/caotek_mesavoirs/static/img/blog/vpn_1.jpg differ diff --git a/caotek_mesavoirs/static/img/blog/vpn_2.jpg b/caotek_mesavoirs/static/img/blog/vpn_2.jpg new file mode 100644 index 0000000..e711225 Binary files /dev/null and b/caotek_mesavoirs/static/img/blog/vpn_2.jpg differ diff --git a/caotek_mesavoirs/static/img/blog/vpn_3.jpg b/caotek_mesavoirs/static/img/blog/vpn_3.jpg new file mode 100644 index 0000000..1e05b08 Binary files /dev/null and b/caotek_mesavoirs/static/img/blog/vpn_3.jpg differ diff --git a/caotek_mesavoirs/static/img/blog/wonders_cao.png b/caotek_mesavoirs/static/img/blog/wonders_cao.png new file mode 100644 index 0000000..bdc777b Binary files /dev/null and b/caotek_mesavoirs/static/img/blog/wonders_cao.png differ diff --git a/caotek_mesavoirs/static/img/favicon.ico b/caotek_mesavoirs/static/img/favicon.ico new file mode 100644 index 0000000..1f2210f Binary files /dev/null and b/caotek_mesavoirs/static/img/favicon.ico differ diff --git a/caotek_mesavoirs/static/img/logo-caotek.png b/caotek_mesavoirs/static/img/logo-caotek.png new file mode 100644 index 0000000..306d63e Binary files /dev/null and b/caotek_mesavoirs/static/img/logo-caotek.png differ diff --git a/caotek_mesavoirs/static/img/logo.png b/caotek_mesavoirs/static/img/logo.png deleted file mode 100644 index 42d90e2..0000000 Binary files a/caotek_mesavoirs/static/img/logo.png and /dev/null differ diff --git a/caotek_mesavoirs/templates/actifs/actif2_edit.pt b/caotek_mesavoirs/templates/actifs/actif2_edit.pt index eaddaa2..140751d 100644 --- a/caotek_mesavoirs/templates/actifs/actif2_edit.pt +++ b/caotek_mesavoirs/templates/actifs/actif2_edit.pt @@ -12,7 +12,7 @@
-
+
-
+
-
+
K€
-
+
K€
-
+
%
-
+

${actif.modif_le.strftime('%d/%m/%Y - %H:%M')}

- + Retour diff --git a/caotek_mesavoirs/templates/actifs/actif_edit.pt b/caotek_mesavoirs/templates/actifs/actif_edit.pt index 1e20a40..6369518 100644 --- a/caotek_mesavoirs/templates/actifs/actif_edit.pt +++ b/caotek_mesavoirs/templates/actifs/actif_edit.pt @@ -12,7 +12,7 @@
-
+
-
+
@@ -45,7 +45,7 @@
-
+
-
+
%
-
+
%
-
+

${actif.devise}

@@ -94,7 +94,7 @@
-
+

${actif.modif_le.strftime('%d/%m/%Y - %H:%M')}

@@ -102,7 +102,7 @@
- + Retour diff --git a/caotek_mesavoirs/templates/actifs/histo_list.pt b/caotek_mesavoirs/templates/actifs/histo_list.pt index b12f7bb..12fd2f3 100644 --- a/caotek_mesavoirs/templates/actifs/histo_list.pt +++ b/caotek_mesavoirs/templates/actifs/histo_list.pt @@ -2,8 +2,6 @@

- - Retour Entrée / Sortie cash

diff --git a/caotek_mesavoirs/templates/actifs/portfolio.pt b/caotek_mesavoirs/templates/actifs/portfolio.pt new file mode 100644 index 0000000..5be5955 --- /dev/null +++ b/caotek_mesavoirs/templates/actifs/portfolio.pt @@ -0,0 +1,232 @@ + +
+ +
+ +

+ + Nouvelle classe +

+
+
+ + + + + + + + + + + + + + + + + + + + +
Classe% cible% actuelEcartValeur
${item.classe}${item.pc_cible} %${layout.to_percent(item.pc_atteint,1)}${layout.to_percent(item.pc_atteint - item.pc_cible,1)}${layout.to_percent(item.pc_atteint - item.pc_cible,1)}${layout.to_euro(item.valeur)}
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
PortefeuilleMontant%
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)}
+

+ Allocation globale : 60% actions + 5% REITS + 35% obligations
+ Allocation actions D (1/2) : 60% US (18%) + 30% Europe (12%)
+ Allocation actions C (1/2) : 100% World (30%)
+ [Cette allocation est inspirée de celle du Fond souverain Norvégien] +

+
+ +
+ +
+
+ +
+
+
+ +
+
+
+ +
+

Mes actifs

+

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

+ +
+
+ + Nouvel actif + + Historique + + Mouvements +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ClasseLibelléCoursNbValeur+/- Valeur% de +/-Rdt brut% Rdt% PF
${ligne.classe}${ligne.libelle}${ligne.libelle}${layout.to_euro(ligne.cours)}${layout.to_usd(ligne.cours)}${ligne.nombre}${layout.to_euro(ligne.valeur)}${layout.to_euro(ligne.plus_value)}${layout.to_euro(ligne.plus_value)}${layout.to_percent(ligne.pc_plusvalue,1)}${layout.to_percent(ligne.pc_plusvalue,1)}${u'%.0f €' % (ligne.rendement)}${layout.to_percent(ligne.pc_rdt,1)}${ligne.pc_allocation} %
Total${layout.to_euro(total_valeur)}${layout.to_euro(total_valeur)}${layout.to_euro(total_pv)}${layout.to_euro(total_pv)}${layout.to_percent(total_pc_value, 1)}${total_rdt} €100.0 %
+
+
+
+ +
+
+
+ + + + + + + + + +
+ + diff --git a/caotek_mesavoirs/templates/doc_edit.pt b/caotek_mesavoirs/templates/doc_edit.pt index d50ea63..bab9850 100644 --- a/caotek_mesavoirs/templates/doc_edit.pt +++ b/caotek_mesavoirs/templates/doc_edit.pt @@ -8,30 +8,29 @@
-
+
+ data-fv-stringlength-max="100" + data-fv-stringlength-message="100 caractères maximum" />
-
- +
+
-
+
@@ -66,16 +65,6 @@ $(document).ready(function() { invalid: 'glyphicon glyphicon-remove', validating: 'glyphicon glyphicon-refresh' }, - fields: { - texte: { - validators: { - stringLength: { - max: 30000, - message: '30000 caractères maximum' - }, - } - }, - }, }); $('form input').on('keypress', function(e) { return e.which !== 13; diff --git a/caotek_mesavoirs/templates/doc_list.pt b/caotek_mesavoirs/templates/doc_list.pt index bc56a98..7f0567f 100644 --- a/caotek_mesavoirs/templates/doc_list.pt +++ b/caotek_mesavoirs/templates/doc_list.pt @@ -7,35 +7,24 @@   Créér une nouvelle doc

-
+
- + - +
FINANCEMEMOS
${ligne.intitule}
-
+
- + - - - -
VOITUREDOCUMENTS
${ligne.intitule}
-
-
- - - - - - +
MAISON
${ligne.intitule}
diff --git a/caotek_mesavoirs/templates/home.pt b/caotek_mesavoirs/templates/home.pt index 21fa972..d2400b3 100644 --- a/caotek_mesavoirs/templates/home.pt +++ b/caotek_mesavoirs/templates/home.pt @@ -1,232 +1,31 @@
-
- -

- - Nouvelle classe -

-
-
- - - - - - - - - - - - - - - - - - - - -
Classe% cible% actuelEcartValeur
${item.classe}${item.pc_cible} %${layout.to_percent(item.pc_atteint,1)}${layout.to_percent(item.pc_atteint - item.pc_cible,1)}${layout.to_percent(item.pc_atteint - item.pc_cible,1)}${layout.to_euro(item.valeur)}
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
PortefeuilleMontant%
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)}
-

- Allocation globale : 60% actions + 5% REITS + 35% obligations
- Allocation actions D (1/2) : 60% US (18%) + 30% Europe (12%)
- Allocation actions C (1/2) : 100% World (30%)
- [Cette allocation est inspirée de celle du Fond souverain Norvégien] -

-
- -
- -
-
- -
-
-
- -
-
-
+

Blog

+

+ Créer un nouveau post +

-

Mes actifs

-

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

- -
-
-
- - Nouvel actif -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
ClasseLibelléCoursNbValeur+/- Valeur% de +/-Rdt brut% Rdt% PF
${ligne.classe}${ligne.libelle}${ligne.libelle}${layout.to_euro(ligne.cours)}${layout.to_usd(ligne.cours)}${ligne.nombre}${layout.to_euro(ligne.valeur)}${layout.to_euro(ligne.plus_value)}${layout.to_euro(ligne.plus_value)}${layout.to_percent(ligne.pc_plusvalue,1)}${layout.to_percent(ligne.pc_plusvalue,1)}${u'%.0f €' % (ligne.rendement)}${layout.to_percent(ligne.pc_rdt,1)}${ligne.pc_allocation} %
Total${layout.to_euro(total_valeur)}${layout.to_euro(total_valeur)}${layout.to_euro(total_pv)}${layout.to_euro(total_pv)}${layout.to_percent(total_pc_value, 1)}${total_rdt} €100.0 %
+ + + + -
${ligne.cree_le.strftime("%Y")}${ligne.cree_le.strftime("%d %b")}${ligne.intitule}
-
-
- -
+
+
+ +

EPARGNE

-
+
+ +

MEMOS

- - - - - - - -
diff --git a/caotek_mesavoirs/templates/layouts/global_layout.pt b/caotek_mesavoirs/templates/layouts/global_layout.pt index 0a8a394..ec960ba 100644 --- a/caotek_mesavoirs/templates/layouts/global_layout.pt +++ b/caotek_mesavoirs/templates/layouts/global_layout.pt @@ -7,6 +7,7 @@ ${page_title} + @@ -48,26 +49,24 @@ - - -  MON PORTEFEUILLE + +
-
-


+
-

${page_title}

-
+

${page_title}

@@ -86,8 +85,24 @@
-