diff --git a/core/clients/aggregators/nordigen.py b/core/clients/aggregators/nordigen.py index 4013300..b494faa 100644 --- a/core/clients/aggregators/nordigen.py +++ b/core/clients/aggregators/nordigen.py @@ -247,7 +247,7 @@ class NordigenClient(BaseClient, AggregatorClient): totals[currency] = amount return totals - def normalise_transactions(self, transactions): + def normalise_transactions(self, transactions, state=None): for transaction in transactions: # Rename ID if "transactionId" in transaction: @@ -275,6 +275,8 @@ class NordigenClient(BaseClient, AggregatorClient): transaction["amount"] = float(transaction["transactionAmount"]["amount"]) transaction["currency"] = transaction["transactionAmount"]["currency"] + if state: + transaction["state"] = state del transaction["transactionAmount"] if transaction["remittanceInformationUnstructuredArray"]: @@ -289,7 +291,7 @@ class NordigenClient(BaseClient, AggregatorClient): else: raise Exception(f"No way to get reference: {transaction}") - async def get_transactions(self, account_id, process=False): + async def get_transactions(self, account_id, process=False, pending=False): """ Get all transactions for an account. :param account_id: account to fetch transactions for @@ -298,9 +300,15 @@ class NordigenClient(BaseClient, AggregatorClient): """ path = f"accounts/{account_id}/transactions" response = await self.call(path, schema="Transactions") - + print("RESP", response["pending"]) parsed = response["booked"] - self.normalise_transactions(parsed) + self.normalise_transactions(parsed, state="booked") + if process: await self.process_transactions(parsed) + if pending: + parsed_pending = response["pending"] + self.normalise_transactions(parsed_pending, state="pending") + parsed_pending.extend(parsed) + parsed = parsed_pending return parsed diff --git a/core/templates/partials/banks-transactions-list.html b/core/templates/partials/banks-transactions-list.html index 26419bf..5305518 100644 --- a/core/templates/partials/banks-transactions-list.html +++ b/core/templates/partials/banks-transactions-list.html @@ -3,6 +3,7 @@ {% get_last_invalidation 'core.Aggregator' as last %} {% include 'mixins/partials/notify.html' %} {# cache 600 objects_banks_transactions request.user.id object_list type last #} +
currency | reference | +state | {% for item in object_list %}|
---|---|---|---|
{{ item.amount }} | {{ item.currency }} | {{ item.reference }} | ++ {% if item.state == 'pending' %} + + + + {% elif item.state == 'booked' %} + + + + {% endif %} + |