From 51eab58d1ed96714747ec9de78ad82d452307386 Mon Sep 17 00:00:00 2001
From: Vincent Texier <vit@free.fr>
Date: Wed, 27 Dec 2017 13:09:18 +0100
Subject: [PATCH] Fix UID missing in certifiers table #771

Fix refresh button not refreshing identities from network
---
 src/sakia/gui/navigation/identity/model.py |  8 +++--
 src/sakia/services/identities.py           | 34 +++++++++++++---------
 2 files changed, 26 insertions(+), 16 deletions(-)

diff --git a/src/sakia/gui/navigation/identity/model.py b/src/sakia/gui/navigation/identity/model.py
index 589e9576..952173b8 100644
--- a/src/sakia/gui/navigation/identity/model.py
+++ b/src/sakia/gui/navigation/identity/model.py
@@ -53,9 +53,11 @@ class IdentityModel(QObject):
     async def refresh_identity_data(self):
         identity = self.identities_service.get_identity(self.connection.pubkey, self.connection.uid)
         identity = await self.identities_service.load_requirements(identity)
-        certifiers = await self.identities_service.load_certifiers_of(identity)
-        certified = await self.identities_service.load_certified_by(identity)
-        await self.identities_service.load_certs_in_lookup(identity, certifiers, certified)
+
+        # update identities in database from the network
+        await self.identities_service.initialize_certifications(identity, None, None)
+
+        # update identities from database
         self.table_model.init_certifiers()
 
     def table_data(self, index):
diff --git a/src/sakia/services/identities.py b/src/sakia/services/identities.py
index 57903a5a..197f6757 100644
--- a/src/sakia/services/identities.py
+++ b/src/sakia/services/identities.py
@@ -237,30 +237,36 @@ class IdentitiesService(QObject):
             logging.debug(str(e))
         return certifications
 
-    async def initialize_certifications(self, identity, log_stream, progress):
+    async def initialize_certifications(self, identity, log_stream=None, progress=None):
         """
         Initialize certifications to and from a given identity
         :param sakia.data.entities.Identity identity:
-        :param function log_stream:
-        :param function progress:
+        :param function log_stream: Logger function
+        :param function progress: Progress function for progress bar
         """
-        log_stream("Requesting certifiers of data")
+        if log_stream:
+            log_stream("Requesting certifiers of data")
         certifiers = await self.load_certifiers_of(identity)
 
-        log_stream("Requesting certified by data")
+        if log_stream:
+            log_stream("Requesting certified by data")
         certified = await self.load_certified_by(identity)
 
-        log_stream("Requesting lookup data")
+        if log_stream:
+            log_stream("Requesting lookup data")
         certifiers, certified = await self.load_certs_in_lookup(identity, certifiers, certified)
 
-        log_stream("Requesting identities of certifications")
+        if log_stream:
+            log_stream("Requesting identities of certifications")
         identities = []
         i = 0
         nb_certs = len(certified + certifiers)
         for cert in certifiers:
-            log_stream("Requesting identity... {0}/{1}".format(i, nb_certs))
+            if log_stream:
+                log_stream("Requesting identity... {0}/{1}".format(i, nb_certs))
             i += 1
-            progress(1/nb_certs)
+            if progress:
+                progress(1/nb_certs)
             certifier = self.get_identity(cert.certifier)
             if not certifier:
                 certifier = await self.find_from_pubkey(cert.certifier)
@@ -268,16 +274,18 @@ class IdentitiesService(QObject):
                 identities.append(certifier)
 
         for cert in certified:
-            log_stream("Requesting identity... {0}/{1}".format(i, nb_certs))
+            if log_stream:
+                log_stream("Requesting identity... {0}/{1}".format(i, nb_certs))
             i += 1
-            progress(1/nb_certs)
+            if progress:
+                progress(1/nb_certs)
             certified = self.get_identity(cert.certified)
             if not certified:
                 certified = await self.find_from_pubkey(cert.certified)
                 certified = await self.load_requirements(certified)
                 identities.append(certified)
-
-        log_stream("Commiting identities...")
+        if log_stream:
+            log_stream("Commiting identities...")
         for idty in identities:
             self._identities_processor.insert_or_update_identity(idty)
 
-- 
GitLab