From 143f77d3c6d9284139435d0495846c76ebaa9560 Mon Sep 17 00:00:00 2001 From: Inso <insomniak.fr@gmail.com> Date: Thu, 13 Feb 2014 23:14:27 +0100 Subject: [PATCH] Lien wallets <-> community dans les models --- src/cutecoin/gui/addCommunityDialog.py | 2 +- src/cutecoin/models/account/__init__.py | 3 +-- src/cutecoin/models/account/communities/__init__.py | 4 ++-- src/cutecoin/models/account/factory.py | 7 +++---- src/cutecoin/models/account/wallets/__init__.py | 5 +++-- src/cutecoin/models/community/__init__.py | 5 +++-- src/cutecoin/models/community/factory.py | 5 ++++- src/cutecoin/models/wallet/__init__.py | 13 +++++++------ src/cutecoin/models/wallet/factory.py | 8 ++++---- 9 files changed, 28 insertions(+), 24 deletions(-) diff --git a/src/cutecoin/gui/addCommunityDialog.py b/src/cutecoin/gui/addCommunityDialog.py index 49570e4d..c9dc14df 100644 --- a/src/cutecoin/gui/addCommunityDialog.py +++ b/src/cutecoin/gui/addCommunityDialog.py @@ -35,7 +35,7 @@ class AddCommunityDialog(QDialog, Ui_AddCommunityDialog): port = self.portBox.value() try: community = self.account.communities.addCommunity(MainNode(server, port), self.account.keyFingerprint()) - self.account.wallets.addWallet(community.currency) + self.account.wallets.addWallet(community) self.communityView.setModel( CommunityTreeModel(community) ) except NotMemberOfCommunityError as e: QErrorMessage(self).showMessage(e.message) diff --git a/src/cutecoin/models/account/__init__.py b/src/cutecoin/models/account/__init__.py index 5a47522e..22bf3c8c 100644 --- a/src/cutecoin/models/account/__init__.py +++ b/src/cutecoin/models/account/__init__.py @@ -69,8 +69,7 @@ class Account(object): def jsonify(self): data = {'name' : self.name, 'pgpKeyId' : self.pgpKeyId, - 'communities' : self.communities.jsonify(), - 'wallets' : self.wallets.jsonify()} + 'communities' : self.communities.jsonify(self.wallets)} return data diff --git a/src/cutecoin/models/account/communities/__init__.py b/src/cutecoin/models/account/communities/__init__.py index 52c22af7..574a84d2 100644 --- a/src/cutecoin/models/account/communities/__init__.py +++ b/src/cutecoin/models/account/communities/__init__.py @@ -37,13 +37,13 @@ class Communities(object): raise NotMemberOfCommunityError(keyFingerprint, community.currency + "-" + community.amendmentId()) - def jsonify(self): + def jsonify(self, wallets): ''' Return the list of communities in a key:value form. ''' data = [] for community in self.communitiesList: - data.append(community.jsonify()) + data.append(community.jsonify(wallets)) return data diff --git a/src/cutecoin/models/account/factory.py b/src/cutecoin/models/account/factory.py index f37a46ed..ba2c91fd 100644 --- a/src/cutecoin/models/account/factory.py +++ b/src/cutecoin/models/account/factory.py @@ -28,9 +28,8 @@ def loadAccount(jsonData): account.pgpKeyId = jsonData['pgpKeyId'] account.name = jsonData['name'] account.communities = Communities() - for communityData in jsonData['communities']: - account.communities.communitiesList.append(communityFactory.loadCommunity(communityData)) account.wallets = Wallets() - for walletData in jsonData['wallets']: - account.wallets.walletsList.append(walletFactory.loadWallet(walletData)) + + for communityData in jsonData['communities']: + account.communities.communitiesList.append(communityFactory.loadCommunity(communityData, account)) return account \ No newline at end of file diff --git a/src/cutecoin/models/account/wallets/__init__.py b/src/cutecoin/models/account/wallets/__init__.py index f3b15fe1..eb13798c 100644 --- a/src/cutecoin/models/account/wallets/__init__.py +++ b/src/cutecoin/models/account/wallets/__init__.py @@ -37,12 +37,13 @@ class Wallets(object): return w return None - def jsonify(self): + def jsonify(self, community): ''' Return the list of wallets in a key:value form. ''' + communityWallets = [w for w in self.walletsList if w.community == community] data = [] - for wallet in self.walletsList: + for wallet in communityWallets: data.append(wallet.jsonify()) return data diff --git a/src/cutecoin/models/community/__init__.py b/src/cutecoin/models/community/__init__.py index 996efcfc..2825d08f 100644 --- a/src/cutecoin/models/community/__init__.py +++ b/src/cutecoin/models/community/__init__.py @@ -67,8 +67,9 @@ class Community(object): data.append(node.jsonify()) return data - def jsonify(self): + def jsonify(self, wallets): data = {'nodes' : self.jsonifyNodesList(), - 'currency' : self.currency} + 'currency' : self.currency, + 'wallets' : wallets.jsonify(self)} return data diff --git a/src/cutecoin/models/community/factory.py b/src/cutecoin/models/community/factory.py index 46118c08..3576db72 100644 --- a/src/cutecoin/models/community/factory.py +++ b/src/cutecoin/models/community/factory.py @@ -5,6 +5,7 @@ Created on 11 févr. 2014 ''' from cutecoin.models.community import Community from cutecoin.models.node import MainNode +from cutecoin.models.wallet import factory import ucoinpy as ucoin def createCommunity(mainNode): @@ -15,10 +16,12 @@ def createCommunity(mainNode): return community -def loadCommunity(jsonData): +def loadCommunity(jsonData, account): community = Community() for nodeData in jsonData['nodes']: community.knownNodes.append(MainNode(nodeData['server'], nodeData['port'])) community.currency = jsonData['currency'] + for walletsData in jsonData['wallets']: + account.wallets.walletsList.append(factory.loadWallet(walletsData, community)) return community diff --git a/src/cutecoin/models/wallet/__init__.py b/src/cutecoin/models/wallet/__init__.py index cd54073b..ad1e17fa 100644 --- a/src/cutecoin/models/wallet/__init__.py +++ b/src/cutecoin/models/wallet/__init__.py @@ -20,11 +20,12 @@ class Wallet(object): Constructor ''' self.coins = [] - self.currency = "" + self.community = None + self.name = "Main Wallet" def __eq__(self, other): - return ( self.currency == other.currency ) + return ( self.community == other.community ) def value(self): value = 0 @@ -32,8 +33,8 @@ class Wallet(object): value += coin.value() return value - def refreshCoins(self, community, pgpFingerprint): - dataList = community.ucoinRequest(lambda : ucoin.hdc.coins.List, ctor_args={'pgp_fingerprint':pgpFingerprint}) + def refreshCoins(self, pgpFingerprint): + dataList = self.community.ucoinRequest(lambda : ucoin.hdc.coins.List, ctor_args={'pgp_fingerprint':pgpFingerprint}) for issaunces in dataList['coins']: issuer = issaunces['issuer'] for coinsIds in issaunces['ids']: @@ -42,7 +43,7 @@ class Wallet(object): self.coins.append(coin) def getText(self): - return str(self.value()) + " " + self.currency + return self.name + " : " + str(self.value()) + " " + self.community.currency def jsonifyCoinsList(self): data = [] @@ -52,6 +53,6 @@ class Wallet(object): def jsonify(self): return {'coins': self.jsonifyCoinsList(), - 'currency': self.currency} + 'name': self.name} diff --git a/src/cutecoin/models/wallet/factory.py b/src/cutecoin/models/wallet/factory.py index bb64558f..eb0316a1 100644 --- a/src/cutecoin/models/wallet/factory.py +++ b/src/cutecoin/models/wallet/factory.py @@ -6,16 +6,16 @@ Created on 11 févr. 2014 from cutecoin.models.wallet import Wallet from cutecoin.models.coin import Coin -def createWallet(currency): +def createWallet(community): wallet = Wallet() - wallet.currency = currency + wallet.community = community return wallet -def loadWallet(jsonData): +def loadWallet(jsonData, community): wallet = Wallet() for coinData in jsonData['coins']: wallet.coins.append(Coin(coinData['coin'])) - wallet.currency = jsonData['currency'] + wallet.community = community return wallet -- GitLab