Skip to content
Snippets Groups Projects
Commit d920eb00 authored by inso's avatar inso
Browse files

Fix bug #584

parent 61fb2c46
No related branches found
No related tags found
No related merge requests found
......@@ -66,11 +66,14 @@ class BaseGraph(QObject):
"""
# new node
node_status = NodeStatus.NEUTRAL
try:
if node_identity.pubkey == account_identity.pubkey:
node_status += NodeStatus.HIGHLIGHTED
if node_identity.member is False:
node_status += NodeStatus.OUT
return node_status
except AttributeError:
pass
def confirmation_text(self, block_number):
"""
......@@ -203,6 +206,7 @@ class BaseGraph(QObject):
certifier = self.identities_service.get_identity(certification.certifier)
if not certifier:
certifier = await self.identities_service.find_from_pubkey(certification.certifier)
self.identities_service.insert_or_update_identity(certifier)
node_status = await self.node_status(certifier, account_identity)
self.add_certifier_node(certifier, identity, certification, node_status)
except NoPeerAvailable as e:
......@@ -222,6 +226,7 @@ class BaseGraph(QObject):
certified = self.identities_service.get_identity(certification.certified)
if not certified:
certified = await self.identities_service.find_from_pubkey(certification.certified)
self.identities_service.insert_or_update_identity(certified)
node_status = await self.node_status(certified, account_identity)
self.add_certified_node(identity, certified, certification, node_status)
......
......@@ -153,7 +153,7 @@ class IdentitiesProcessor:
req_args={'search': identity.pubkey})
identity_data = next((data for data in requirements_data["identities"]
if data["pubkey"] == identity.pubkey))
identity.member = identity_data['membershipExpiresIn'] > 0 and not identity_data['outdistanced']
identity.member = identity_data['membershipExpiresIn'] > 0
identity.outdistanced = identity_data['outdistanced']
self.insert_or_update_identity(identity)
except errors.DuniterError as e:
......
......@@ -377,12 +377,12 @@ class IdentitiesService(QObject):
identity.blockstamp = block_uid(identity_data["meta"]["timestamp"])
identity.timestamp = await self._blockchain_processor.timestamp(self.currency, identity.blockstamp.number)
identity.outdistanced = identity_data["outdistanced"]
identity.member = identity_data["membershipExpiresIn"] > 0 and not identity_data["outdistanced"]
identity.member = identity_data["membershipExpiresIn"] > 0
median_time = self._blockchain_processor.time(self.currency)
expiration_time = self._blockchain_processor.parameters(self.currency).ms_validity
identity.membership_timestamp = median_time - (expiration_time - identity_data["membershipExpiresIn"])
# We save connections pubkeys
if identity.pubkey in self._connections_processor.pubkeys():
if self._identities_processor.get_identity(self.currency, identity.pubkey, identity.uid):
self._identities_processor.insert_or_update_identity(identity)
except errors.DuniterError as e:
if e.ucode == errors.NO_MEMBER_MATCHING_PUB_OR_UID:
......@@ -431,6 +431,9 @@ class IdentitiesService(QObject):
"""
return await self._identities_processor.lookup(self.currency, text)
def insert_or_update_identity(self, identity):
return self._identities_processor.insert_or_update_identity(identity)
def get_identity(self, pubkey, uid=""):
return self._identities_processor.get_identity(self.currency, pubkey, uid)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment