From f23d0015d7002552f3532203ee41f8ef79d991db Mon Sep 17 00:00:00 2001
From: inso <insomniak.fr@gmaiL.com>
Date: Sat, 14 Jan 2017 16:10:25 +0100
Subject: [PATCH] Fix Informations + search linked identities

---
 .../gui/navigation/identities/controller.py     | 17 ++---------------
 src/sakia/gui/navigation/identities/model.py    | 16 ++++++++++++++++
 .../gui/sub/user_information/controller.py      |  2 ++
 3 files changed, 20 insertions(+), 15 deletions(-)

diff --git a/src/sakia/gui/navigation/identities/controller.py b/src/sakia/gui/navigation/identities/controller.py
index 8a97f101..48a7d107 100644
--- a/src/sakia/gui/navigation/identities/controller.py
+++ b/src/sakia/gui/navigation/identities/controller.py
@@ -70,23 +70,10 @@ class IdentitiesController(QObject):
         except NoPeerAvailable as e:
             logging.debug(str(e))
 
-    @once_at_a_time
-    @asyncify
-    async def search_direct_connections(self):
+    def search_direct_connections(self):
         """
         Search identities directly connected to account
         :return:
         """
-        self_identity = await self.account.identity(self.community)
-        account_connections = []
-        certs_of = await self_identity.unique_valid_certifiers_of(self.app.identities_registry, self.community)
-        for p in certs_of:
-            account_connections.append(p['identity'])
-        certifiers_of = [p for p in account_connections]
-        certs_by = await self_identity.unique_valid_certified_by(self.app.identities_registry, self.community)
-        for p in certs_by:
-            account_connections.append(p['identity'])
-        certified_by = [p for p in account_connections
-                        if p.pubkey not in [i.pubkey for i in certifiers_of]]
-        identities = certifiers_of + certified_by
+        identities = self.model.linked_identities()
         self.model.refresh_identities(identities)
diff --git a/src/sakia/gui/navigation/identities/model.py b/src/sakia/gui/navigation/identities/model.py
index ca65f3a7..e91df361 100644
--- a/src/sakia/gui/navigation/identities/model.py
+++ b/src/sakia/gui/navigation/identities/model.py
@@ -1,3 +1,4 @@
+import asyncio
 from PyQt5.QtCore import Qt, QObject
 from .table_model import IdentitiesFilterProxyModel, IdentitiesTableModel
 
@@ -62,3 +63,18 @@ class IdentitiesModel(QObject):
         If no identities is passed, use the account connections.
         """
         self.table_model.sourceModel().refresh_identities(identities)
+
+    def linked_identities(self):
+
+        # create Identity from node metadata
+        connection_identity = self.identities_service.get_identity(self.connection.pubkey)
+        linked = []
+        certifier_list = self.identities_service.certifications_received(connection_identity.pubkey)
+        for certification in tuple(certifier_list):
+            linked.append(self.identities_service.get_identity(certification.certifier))
+
+        certified_list = self.identities_service.certifications_sent(connection_identity.pubkey)
+        for certification in tuple(certified_list):
+            linked.append(self.identities_service.get_identity(certification.certified))
+
+        return linked
diff --git a/src/sakia/gui/sub/user_information/controller.py b/src/sakia/gui/sub/user_information/controller.py
index 09c075c9..5ffb47cc 100644
--- a/src/sakia/gui/sub/user_information/controller.py
+++ b/src/sakia/gui/sub/user_information/controller.py
@@ -34,6 +34,7 @@ class UserInformationController(QObject):
     @classmethod
     def show_identity(cls, parent, app, currency, identity):
         dialog = QDialog()
+        dialog.setWindowTitle("Informations")
         user_info = cls.create(parent, app, currency, identity)
         user_info.view.setParent(dialog)
         user_info.refresh()
@@ -43,6 +44,7 @@ class UserInformationController(QObject):
     @asyncify
     async def search_and_show_pubkey(cls, parent, app, currency, pubkey):
         dialog = QDialog(parent)
+        dialog.setWindowTitle("Informations")
         layout = QVBoxLayout(dialog)
         tabwidget = QTabWidget(dialog)
         layout.addWidget(tabwidget)
-- 
GitLab