diff --git a/src/sakia/data/processors/identities.py b/src/sakia/data/processors/identities.py index 5967c4c8e18484d6d92e0b31e5ca5fe8ba7de3d9..381f32e64e7d9e07fb1cabd74717a21c3c7f1c4b 100644 --- a/src/sakia/data/processors/identities.py +++ b/src/sakia/data/processors/identities.py @@ -165,6 +165,7 @@ class IdentitiesProcessor: log_stream("Requesting membership data") progress(1 / 3) try: + # Return a 1002 - MEMBER_NOT_FOUND if identity has no memberships or not written in blockchain memberships_data = await self._bma_connector.get( identity.currency, bma.blockchain.memberships, @@ -215,7 +216,7 @@ class IdentitiesProcessor: identity.outdistanced = identity_data["outdistanced"] self.insert_or_update_identity(identity) except errors.DuniterError as e: - if e.ucode == errors.NO_MEMBER_MATCHING_PUB_OR_UID: + if e.ucode == errors.NO_MEMBER_MATCHING_PUB_OR_UID or e.message == 'MEMBER_NOT_FOUND': identity.written = False self.insert_or_update_identity(identity) else: diff --git a/src/sakia/gui/dialogs/connection_cfg/controller.py b/src/sakia/gui/dialogs/connection_cfg/controller.py index d91ed16564dc4f8d2ac3e3939b73c686aa47a952..f3e0bb3b61e79784cb8a640ff84106bd9b7f4702 100644 --- a/src/sakia/gui/dialogs/connection_cfg/controller.py +++ b/src/sakia/gui/dialogs/connection_cfg/controller.py @@ -274,7 +274,7 @@ class ConnectionConfigController(QObject): self.view.edit_uid.show() asyncio.ensure_future(self.process()) return - self.accept() + await self.accept() def check_key(self): if self.mode == ConnectionConfigController.PUBKEY: @@ -389,8 +389,10 @@ Yours : {0}, the network : {1}""".format( except DuniterError as e: self.view.display_info(e.message) + self.step_key.set_result(None) except NoPeerAvailable as e: self.view.display_info(str(e)) + self.step_key.set_result(None) else: self.view.display_info( self.tr("A connection already exists using this key.")