Skip to content
Snippets Groups Projects
Commit c615fc1e authored by Vincent Texier's avatar Vincent Texier
Browse files

Fix label in wot menu

Fx bug in wot if multiple certifications
Don't refuse certification in wot if one already exists
parent c9e3d312
No related branches found
No related tags found
No related merge requests found
......@@ -124,15 +124,15 @@ class Scene(QGraphicsScene):
y = 0
x = 200
# capture nodes for sorting by text
nodes = dict()
nodes = list()
for arc in selected_node['arcs']:
nodes[arc['id']] = {'node': graph[arc['id']], 'arc': arc}
nodes.append({'node': graph[arc['id']], 'arc': arc})
# sort by text
nodes = ((k, v) for (k, v) in sorted(nodes.items(), key=lambda kv: kv[1]['node']['text'].lower()))
nodes = sorted(nodes, key=lambda _node: _node['node']['text'].lower())
# add nodes and arcs
for _id, items in nodes:
node = self.add_node(items['node'], (x, y))
self.add_arc(root_node, node, items['arc'])
for _node in nodes:
node = self.add_node(_node['node'], (x, y))
self.add_arc(root_node, node, _node['arc'])
y += 50
# add certifiers of selected node
......@@ -142,9 +142,9 @@ class Scene(QGraphicsScene):
nodes = ((k, v) for (k, v) in sorted(graph.items(), key=lambda kv: kv[1]['text'].lower()) if selected_id in (arc['id'] for arc in v['arcs']))
# add nodes and arcs
for _id, certifier_node in nodes:
node = self.add_node(certifier_node, (x, y))
for arc in certifier_node['arcs']:
if arc['id'] == selected_id:
node = self.add_node(certifier_node, (x, y))
self.add_arc(node, root_node, arc)
y += 50
......@@ -239,15 +239,15 @@ class Node(QGraphicsEllipseItem):
# create node context menus
self.menu = QMenu()
# action sign identity
self.action_sign = QAction('Sign identity', self.scene())
self.action_sign = QAction('Certify identity', self.scene())
self.menu.addAction(self.action_sign)
self.action_sign.triggered.connect(self.sign_action)
# action transaction toward identity
self.action_transaction = QAction('Send money to identity', self.scene())
self.action_transaction = QAction('Send money', self.scene())
self.menu.addAction(self.action_transaction)
self.action_transaction.triggered.connect(self.transaction_action)
# action add identity as contact
self.action_contact = QAction('Add identity as contact', self.scene())
self.action_contact = QAction('Add as contact', self.scene())
self.menu.addAction(self.action_contact)
self.action_contact.triggered.connect(self.contact_action)
# run menu
......
......@@ -71,6 +71,15 @@ class WotTabWidget(QWidget, Ui_WotTabWidget):
# add certifiers of uid
for certifier in certifiers['certifications']:
if certifier['pubkey'] not in graph.keys():
node_status = (NODE_STATUS_HIGHLIGHTED and (certifier['pubkey'] == self.account.pubkey)) or 0
graph[certifier['pubkey']] = {
'id': certifier['pubkey'],
'arcs': list(),
'text': certifier['uid'],
'tooltip': certifier['pubkey'],
'status': node_status
}
if (time.time() - certifier['cert_time']['medianTime']) > self.ARC_STATUS_STRONG_time:
arc_status = ARC_STATUS_WEAK
else:
......@@ -82,15 +91,7 @@ class WotTabWidget(QWidget, Ui_WotTabWidget):
certifier['cert_time']['medianTime'] + self.signature_validity
).strftime("%Y/%m/%d")
}
if certifier['pubkey'] not in graph.keys():
node_status = (NODE_STATUS_HIGHLIGHTED and (certifier['pubkey'] == self.account.pubkey)) or 0
graph[certifier['pubkey']] = {
'id': certifier['pubkey'],
'arcs': [arc],
'text': certifier['uid'],
'tooltip': certifier['pubkey'],
'status': node_status
}
graph[certifier['pubkey']]['arcs'].append(arc)
# add certified by uid
for certified in self.community.request(bma.wot.CertifiedBy, {'search': public_key})['certifications']:
......@@ -167,10 +168,6 @@ class WotTabWidget(QWidget, Ui_WotTabWidget):
)
def sign_node(self, metadata):
# check if identity already certified...
for certified in self.community.request(bma.wot.CertifiedBy, {'search': self.account.pubkey})['certifications']:
if metadata['id'] == certified['pubkey']:
return False
# open certify dialog
dialog = CertificationDialog(self.account)
dialog.edit_pubkey.setText(metadata['id'])
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment