From d237c601bdd05b7a58a82d8f4dcdd9140b868d83 Mon Sep 17 00:00:00 2001 From: vtexier <vit@free.fr> Date: Fri, 21 Feb 2020 17:57:18 +0100 Subject: [PATCH] [fix] fix certify identity duplicates in combobox and database --- src/sakia/data/repositories/identities.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/sakia/data/repositories/identities.py b/src/sakia/data/repositories/identities.py index c49f6ccf..aa192f4b 100644 --- a/src/sakia/data/repositories/identities.py +++ b/src/sakia/data/repositories/identities.py @@ -23,6 +23,18 @@ class IdentitiesRepo: Commit an identity to the database :param sakia.data.entities.Identity identity: the identity to commit """ + if identity.blockstamp != BlockUID.empty(): + # Search same identity with empty blockstamp (incomplete) + same_with_empty_blockstamp = self.get_one( + currency=identity.currency, + uid=identity.uid, + pubkey=identity.pubkey, + blockstamp=BlockUID.empty() + ) + # if same identity with empty blockstamp... + if same_with_empty_blockstamp: + # remove it to avoid duplicates + self.drop(same_with_empty_blockstamp) identity_tuple = attr.astuple(identity) values = ",".join(["?"] * len(identity_tuple)) self._conn.execute( @@ -64,7 +76,7 @@ class IdentitiesRepo: def get_one(self, **search): """ Get an existing identity in the database - :param dict search: the criterions of the lookup + :param **kwargs search: the criterions of the lookup :rtype: sakia.data.entities.Identity """ filters = [] -- GitLab