From 3ee6956eb32f8cfa15ddfa6cd66d396bf2ebe6c0 Mon Sep 17 00:00:00 2001
From: Inso <insomniak.fr@gmail.com>
Date: Sun, 9 Feb 2014 14:41:04 +0100
Subject: [PATCH] =?UTF-8?q?Check=20membership=20lors=20d'ajout=20de=20comm?=
 =?UTF-8?q?unaut=C3=A9s=20:=20Ok.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 res/ui/addAccountDialog.ui                          |  3 ++-
 src/cutecoin/gui/addAccountDialog.py                | 13 ++++++++++---
 src/cutecoin/gui/mainWindow.py                      |  3 +++
 src/cutecoin/models/account/__init__.py             |  8 +++++---
 src/cutecoin/models/account/communities/__init__.py |  3 ++-
 src/cutecoin/models/community/__init__.py           |  3 ++-
 src/cutecoin/models/transaction/__init__.py         | 11 ++++++-----
 7 files changed, 30 insertions(+), 14 deletions(-)

diff --git a/res/ui/addAccountDialog.ui b/res/ui/addAccountDialog.ui
index 87f25ce7..94999db1 100644
--- a/res/ui/addAccountDialog.ui
+++ b/res/ui/addAccountDialog.ui
@@ -47,7 +47,7 @@
          </widget>
         </item>
         <item>
-         <widget class="QComboBox" name="pgpkeyList"/>
+         <widget class="QComboBox" name="gpgKeysList"/>
         </item>
        </layout>
       </item>
@@ -149,5 +149,6 @@
  </connections>
  <slots>
   <slot>openAddCommunityDialog()</slot>
+  <slot>keyChanged(int)</slot>
  </slots>
 </ui>
diff --git a/src/cutecoin/gui/addAccountDialog.py b/src/cutecoin/gui/addAccountDialog.py
index 027b244f..00c2caec 100644
--- a/src/cutecoin/gui/addAccountDialog.py
+++ b/src/cutecoin/gui/addAccountDialog.py
@@ -29,7 +29,6 @@ class AddAccountDialog(QDialog, Ui_AddAccountDialog):
         self.dialog = AddCommunityDialog(self)
         self.mainWindow = mainWindow
 
-
         self.buttonBox.accepted.connect(self.mainWindow.actionAddAccount)
 
         self.setData()
@@ -38,15 +37,23 @@ class AddAccountDialog(QDialog, Ui_AddAccountDialog):
         gpg = gnupg.GPG()
         availableKeys = gpg.list_keys(True)
         for key in availableKeys:
-            self.pgpkeyList.addItem(key['uids'][0])
+            self.gpgKeysList.addItem(key['uids'][0])
 
-        self.account = Account(self.pgpkeyList.currentText(), "", Communities())
+        self.account = Account(availableKeys[0]['keyid'], "", Communities())
+        self.gpgKeysList.setEnabled()
+        self.gpgKeysList.currentIndexChanged[int].connect(self.keyChanged)
 
     def openAddCommunityDialog(self):
         self.dialog.setAccount(self.account)
         self.dialog.exec_()
 
     def actionAddCommunity(self):
+        self.gpgKeysList.setDisabled()
+        self.gpgKeysList.disconnect()
         self.communitiesList.setModel(CommunitiesListModel(self.account))
 
+    def keyChanged(self, keyIndex):
+        gpg = gnupg.GPG()
+        availableKeys = gpg.list_keys(True)
+        self.account.gpgKey = availableKeys[keyIndex]['keyid']
 
diff --git a/src/cutecoin/gui/mainWindow.py b/src/cutecoin/gui/mainWindow.py
index 9c32dabb..1c3bb62a 100644
--- a/src/cutecoin/gui/mainWindow.py
+++ b/src/cutecoin/gui/mainWindow.py
@@ -50,4 +50,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
             self.walletContent.setModel(WalletListModel(self.core.currentAccount.wallets.walletsList[0]))
             for community in self.core.currentAccount.communities.communitiesList:
                 self.communitiesTab.addPage(CommunityTabWidget(community), community.name())
+            #TODO: self.transactionsReceived.setModel()
+            #TODO: self.transactionsSent.setModel()
+
 
diff --git a/src/cutecoin/models/account/__init__.py b/src/cutecoin/models/account/__init__.py
index cee00161..5234def8 100644
--- a/src/cutecoin/models/account/__init__.py
+++ b/src/cutecoin/models/account/__init__.py
@@ -13,11 +13,11 @@ class Account(object):
     classdocs
     '''
 
-    def __init__(self, pgpKey, name, communities):
+    def __init__(self, gpgKey, name, communities):
         '''
         Constructor
         '''
-        self.pgpKey = pgpKey
+        self.gpgKey = gpgKey
         self.name = name
         self.communities = communities
         self.wallets = Wallets()
@@ -34,8 +34,10 @@ class Account(object):
     def keyFingerprint(self):
         gpg = gnupg.GPG()
         availableKeys = gpg.list_keys()
+        print(self.gpgKey)
         for k in availableKeys:
-            if k['keyid'] == self.pgpKey:
+            print(k)
+            if k['keyid'] == self.gpgKey:
                 return k['fingerprint']
         return ""
 
diff --git a/src/cutecoin/models/account/communities/__init__.py b/src/cutecoin/models/account/communities/__init__.py
index b632aa4f..56097ebe 100644
--- a/src/cutecoin/models/account/communities/__init__.py
+++ b/src/cutecoin/models/account/communities/__init__.py
@@ -26,8 +26,9 @@ class Communities(object):
         community = Community(mainNode)
         self.members = community.ucoinRequest(lambda:ucoin.hdc.amendments.view.Members(community.currentAmendmentId()).get)
 
-        #TODO: Check membership
+        print(accountFingerprint)
         for member in self.members:
+            print(member)
             if member['value'] == accountFingerprint:
                 self.communitiesList.append(community)
                 return community
diff --git a/src/cutecoin/models/community/__init__.py b/src/cutecoin/models/community/__init__.py
index cdfcd331..69db60d1 100644
--- a/src/cutecoin/models/community/__init__.py
+++ b/src/cutecoin/models/community/__init__.py
@@ -43,8 +43,9 @@ class Community(object):
 
     def currentAmendmentId(self):
         currentAmendment = self.ucoinRequest(lambda:ucoin.hdc.amendments.Current().get)
-        currentAmendmentHash = hashlib.sha1(json.dumps(currentAmendment).encode('utf-8')).hexdigest()
+        currentAmendmentHash = hashlib.sha1(currentAmendment['raw'].encode('utf-8')).hexdigest().upper()
         amendmentId = str(currentAmendment["number"]) + "-" + currentAmendmentHash
+        #TODO: Distinct debug logging and info logging for a -d parameter
         print("Amendment : " + amendmentId)
         return amendmentId
 
diff --git a/src/cutecoin/models/transaction/__init__.py b/src/cutecoin/models/transaction/__init__.py
index 7b9496a1..49d71cbb 100644
--- a/src/cutecoin/models/transaction/__init__.py
+++ b/src/cutecoin/models/transaction/__init__.py
@@ -10,11 +10,12 @@ class Transaction(object):
     '''
 
 
-    def __init__(self, value, sender, receiver, currency):
+    def __init__(self, senderFingerprint, increment):
         '''
         Constructor
         '''
-        self.value = value
-        self.sender = sender
-        self.receiver = receiver
-        self.currency = currency
+        self.senderFingerprint = senderFingerprint
+        self.increment = increment
+
+    def transactionID(self):
+        return self.senderFingerprint + "-" + self.increment
-- 
GitLab