fisk/core/views/profit.py

41 lines
1.3 KiB
Python
Raw Normal View History

from django.contrib.auth.mixins import LoginRequiredMixin
from two_factor.views.mixins import OTPRequiredMixin
from core.exchanges import GenericAPIError
2022-11-29 07:20:39 +00:00
from core.models import Account
from core.util import logs
from core.views import ObjectList
log = logs.get_logger(__name__)
2022-11-29 07:20:39 +00:00
class Profit(LoginRequiredMixin, OTPRequiredMixin, ObjectList):
list_template = "partials/profit-list.html"
page_title = "Profit by account"
page_subtitle = None
context_object_name_singular = "profit"
context_object_name = "profit"
list_url_name = "profit"
list_url_args = ["type"]
def get_queryset(self, **kwargs):
items = []
2023-01-01 15:46:40 +00:00
# Only get enabled accounts
accounts = Account.objects.filter(user=self.request.user, enabled=True)
for account in accounts:
try:
details = account.client.get_account()
item = {
"account": account,
2022-12-08 07:20:46 +00:00
"pl": float(details["pl"]),
"unrealizedPL": float(details["unrealizedPL"]),
"balance": details["balance"],
"currency": details["currency"],
}
items.append(item)
except GenericAPIError:
continue
return items