diff --git a/src/sakia/models/identities.py b/src/sakia/models/identities.py index c49e44f8f0a545c90dfec0f890e9d6948ea761ba..ef7211559d1493f1f902ba68319f4140236b57ad 100644 --- a/src/sakia/models/identities.py +++ b/src/sakia/models/identities.py @@ -149,9 +149,13 @@ class IdentitiesTableModel(QAbstractTableModel): self.endResetModel() self.beginResetModel() identities_data = [] + requests_coro = [] for identity in identities: - data = await self.identity_data(identity) - identities_data.append(data) + coro = asyncio.ensure_future(self.identity_data(identity)) + requests_coro.append(coro) + + identities_data = await asyncio.gather(*requests_coro) + if len(identities) > 0: try: parameters = await self.community.parameters() diff --git a/src/sakia/models/txhistory.py b/src/sakia/models/txhistory.py index a463b6af36634251ba82e88ad58df11cb988328e..79b6d74ee81b1ae16418103e6bf334a953afcd0c 100644 --- a/src/sakia/models/txhistory.py +++ b/src/sakia/models/txhistory.py @@ -300,17 +300,22 @@ class HistoryTableModel(QAbstractTableModel): self.beginResetModel() transfers_data = [] if self.community: + requests_coro = [] for transfer in self.transfers(): - data = None + coro = None if type(transfer) is Transfer: if transfer.metadata['issuer'] == self.account.pubkey: - data = await self.data_sent(transfer) + coro = asyncio.ensure_future(self.data_sent(transfer)) else: - data = await self.data_received(transfer) + coro = asyncio.ensure_future(self.data_received(transfer)) elif type(transfer) is dict: - data = await self.data_dividend(transfer) - if data: - transfers_data.append(data) + coro = asyncio.ensure_future(self.data_dividend(transfer)) + if coro: + requests_coro.append(coro) + + data_list = await asyncio.gather(*requests_coro) + for data in data_list: + transfers_data.append(data) self.transfers_data = transfers_data self.endResetModel()