Skip to content

Commit

Permalink
complete dashboard logic
Browse files Browse the repository at this point in the history
  • Loading branch information
GoldenThrust committed Jan 19, 2024
1 parent 8420371 commit bbea6e9
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 21 deletions.
2 changes: 1 addition & 1 deletion clients/debit_cards/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,4 @@ class DebitCardTransaction(models.Model):
transaction_partner_account = models.ForeignKey(Account, on_delete=models.CASCADE, related_name='transaction_partner_debit_card')

def __str__(self):
return f"Transfer ID: {self.pk} - Receiver: {self.transaction.account.user.first_name} {self.transaction.account.user.last_name} - Transaction_partner: {self.transaction_partner_account.user.first_name} {self.transaction_partner_account.user.last_name} - Amount: {self.transaction.amount}"
return f"Debit Card Transansaction ID: {self.pk} - Receiver: {self.transaction.account.user.first_name} {self.transaction.account.user.last_name} - Transaction_partner: {self.transaction_partner_account.user.first_name} {self.transaction_partner_account.user.last_name} - Amount: {self.transaction.amount}"
20 changes: 10 additions & 10 deletions clients/transactions/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,18 @@ class Transaction(models.Model):
identifier = models.UUIDField(default=uuid.uuid4, editable=False, unique=True)
date = models.DateTimeField(auto_now_add=True)

@classmethod
def get_top_10_partners(cls, account_id):
top_partners = cls.objects.filter(account=account_id).filter(
models.Q(debit_card__isnull=False) | models.Q(transfer__isnull=False)
)
# @classmethod
# def get_top_10_partners(cls, account_id):
# top_partners = cls.objects.filter(account=account_id).filter(
# models.Q(debit_card__isnull=False) | models.Q(transfer__isnull=False)
# )

partner_account_numbers = top_partners.values_list(
'debit_card__transaction_partner_account',
'transfer__transaction_partner_account',
).distinct().order_by('-amount')[:10]
# partner_account_numbers = top_partners.values_list(
# *('debit_card__transaction_partner_account',
# 'transfer__transaction_partner_account')
# ).distinct().order_by('-amount')[:10]

return partner_account_numbers
# return partner_account_numbers

def __str__(self):
return f"Transaction ID: {self.pk} - Type: {self.get_transaction_type_display()} - Amount: {self.amount}"
3 changes: 1 addition & 2 deletions clients/transactions/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import json


def transactions_chart(request):
def transactions_chart_data(request):
deposit_transactions = Transaction.objects.filter(transaction_type='DEPOSIT', account=request.session.get('account')['pk'])
transfer_transactions = Transaction.objects.filter(transaction_type='TRANSFER', account=request.session.get('account')['pk'])
debit_card_transactions = Transaction.objects.filter(transaction_type='DEBIT_CARD', account=request.session.get('account')['pk'])
Expand All @@ -23,7 +23,6 @@ def transactions_chart(request):
debit_card_json = json.dumps(debit_card_data)



data = {
'deposit_data': deposit_json,
'transfer_data': transfer_json,
Expand Down
9 changes: 6 additions & 3 deletions clients/users/templates/users/dashboard.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
<span class="fs-6">{{ request.session.account.account_type }}</span>
</div>
<div class="mx-5 fs-2 account-balance">{{ request.session.account.currency|currency_to_unicode|safe }}{{ request.session.account.balance }}</div>
<div class="mx-5 account-number">{{ request.session.account.number }}</div>
<div class="mx-5 account-number">{{ request.session.account.currency|currency_to_unicode|safe }}{{ request.session.account.number }}</div>
</div>
<div class="transaction-chart">
<canvas id="transactionLineChart" width="800" height="400"></canvas>
Expand All @@ -27,8 +27,11 @@
</div>
<div>
<div class="financial-overviews">
<div id="income"></div>
<div id="spending"></div>
<div id="income">
{% comment %} <div class="d-none">{{ request.session.account.currency|currency_to_unicode|safe }}{{ financial.incoming }}</div> {% endcomment %}
<div>{{ request.session.account.currency|currency_to_unicode|safe }}{{ financial.incoming_2 }}</div>
</div>
<div id="spending">{{ request.session.account.currency|currency_to_unicode|safe }}{{ financial.outgoing }}</div>
</div>
<div class="transaction-partners">
<div>
Expand Down
7 changes: 2 additions & 5 deletions clients/users/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from django.contrib.auth import views as auth_views
from notifications.utils import process_notifications
from transactions.models import Transaction
from transfers.models import Transfer
from django.db.models import Q, Sum, Count
import json

Expand Down Expand Up @@ -107,11 +108,7 @@ def get(self, request):
}

# transaction partner
top_partners = Transaction.get_top_10_partners(request.session.get("account")['pk'])
print(top_partners)

# for partner_account in top_partners:
# print(partner_account)
top_partners = Transfer.objects.filter(transaction__account=request.session.get("account")["pk"]).order_by("transaction_partner_account", "-transaction__amount").distinct("transaction_partner_account")[:10]

context = {
"title": "Dashboard",
Expand Down

0 comments on commit bbea6e9

Please sign in to comment.