Dashboard bug
This commit is contained in:
@@ -193,16 +193,29 @@ class Dashboard(ModelSQL, ModelView):
|
||||
self.chatbot = 'chatbot:' + json.dumps(dial, ensure_ascii=False)
|
||||
logger.info("EXITONCHANGE",self.chatbot)
|
||||
|
||||
@staticmethod
|
||||
def _empty_fx_rates():
|
||||
return (None, None, None, None, None, None, None, None, None, None)
|
||||
|
||||
@classmethod
|
||||
def _find_currency_by_code(cls, code):
|
||||
Currency = Pool().get('currency.currency')
|
||||
currencies = Currency.search([('name', '=', code)], limit=1)
|
||||
if not currencies:
|
||||
currencies = Currency.search([('code', '=', code)], limit=1)
|
||||
return currencies[0] if currencies else None
|
||||
|
||||
def get_last_five_fx_rates(self, from_code='USD', to_code='EUR'):
|
||||
"""
|
||||
Retourne (dernier_taux, avant_dernier_taux) pour le couple de devises.
|
||||
"""
|
||||
Currency = Pool().get('currency.currency')
|
||||
CurrencyRate = Pool().get('currency.currency.rate')
|
||||
|
||||
# Récupérer les devises EUR et USD
|
||||
from_currency = Currency.search([('name', '=', from_code)])[0]
|
||||
to_currency = Currency.search([('name', '=', to_code)])[0]
|
||||
from_currency = self._find_currency_by_code(from_code)
|
||||
to_currency = self._find_currency_by_code(to_code)
|
||||
if not from_currency or not to_currency:
|
||||
return self._empty_fx_rates()
|
||||
|
||||
# Recherche des taux de la devise de base (ex: USD)
|
||||
rates = CurrencyRate.search(
|
||||
@@ -212,7 +225,7 @@ class Dashboard(ModelSQL, ModelView):
|
||||
)
|
||||
|
||||
if not rates:
|
||||
return None, None, None, None, None
|
||||
return self._empty_fx_rates()
|
||||
|
||||
# Calcul du taux EUR/USD
|
||||
# Si la devise principale de la société est EUR, et que le taux stocké est
|
||||
@@ -232,7 +245,13 @@ class Dashboard(ModelSQL, ModelView):
|
||||
# last_rate = 1 / last_rate if last_rate else None
|
||||
# prev_rate = 1 / prev_rate if prev_rate else None
|
||||
|
||||
return round(1/f1,6), round(1/f2,6) if f2 else None, round(1/f3,6) if f3 else None, round(1/f4,6) if f4 else None, round(1/f5,6) if f5 else None, d1, d2, d3, d4, d5
|
||||
return (
|
||||
round(1/f1,6) if f1 else None,
|
||||
round(1/f2,6) if f2 else None,
|
||||
round(1/f3,6) if f3 else None,
|
||||
round(1/f4,6) if f4 else None,
|
||||
round(1/f5,6) if f5 else None,
|
||||
d1, d2, d3, d4, d5)
|
||||
|
||||
def get_tremor(self,name):
|
||||
Date = Pool().get('ir.date')
|
||||
@@ -430,7 +449,7 @@ class Dashboard(ModelSQL, ModelView):
|
||||
News = Pool().get('news.news')
|
||||
Date = Pool().get('ir.date')
|
||||
news_list = News.search([('active', '=', True)], limit=5, order=[('publish_date', 'DESC')])
|
||||
last_rate,prev_rate, = self.get_last_five_fx_rates()
|
||||
last_rate, prev_rate = self.get_last_five_fx_rates()[:2]
|
||||
if last_rate and prev_rate:
|
||||
variation = ((last_rate - prev_rate) / prev_rate) * 100 if prev_rate else 0
|
||||
direction = "📈" if variation > 0 else "📉"
|
||||
|
||||
Reference in New Issue
Block a user