From 154be7974ff752a52def6e48827df2ba568611ec Mon Sep 17 00:00:00 2001
From: Inso <insomniak.fr@gmail.com>
Date: Tue, 12 May 2015 10:46:46 +0200
Subject: [PATCH] Traductions + correction d'un bug

---
 res/i18n/ts/fr_FR.ts                 | 124 +++++++++++++++++----------
 src/cutecoin/gui/transactions_tab.py |   4 +-
 src/cutecoin/models/network.py       |  14 +--
 src/cutecoin/models/txhistory.py     |  32 +++----
 4 files changed, 102 insertions(+), 72 deletions(-)

diff --git a/res/i18n/ts/fr_FR.ts b/res/i18n/ts/fr_FR.ts
index b7204279..90afc155 100644
--- a/res/i18n/ts/fr_FR.ts
+++ b/res/i18n/ts/fr_FR.ts
@@ -239,52 +239,52 @@
         <translation>Quitter la communauté</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/community_tab.py" line="203"/>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="204"/>
         <source>Membership</source>
         <translation>Statut de membre</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/community_tab.py" line="172"/>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="173"/>
         <source>Success sending membership demand</source>
         <translation>Succès lors de l&apos;envoi d&apos;une demande de membre</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/community_tab.py" line="174"/>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="175"/>
         <source>Join demand error</source>
         <translation>Erreur lors de l&apos;envoi d&apos;une demande de membre</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/community_tab.py" line="177"/>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="178"/>
         <source>Key not sent to community</source>
         <translation>La clé n&apos;a pas pu être envoyée à la communauté</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/community_tab.py" line="235"/>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="236"/>
         <source>Network error</source>
         <translation>Erreur réseau</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/community_tab.py" line="235"/>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="236"/>
         <source>Couldn&apos;t connect to network : {0}</source>
         <translation>Impossible de se connecter au réseau : {0}</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/community_tab.py" line="217"/>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="218"/>
         <source>Warning</source>
         <translation>Attention</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/community_tab.py" line="203"/>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="204"/>
         <source>Success sending leaving demand</source>
         <translation>Succès lors de l&apos;envoi de la demande pour quitter la communauté</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/community_tab.py" line="232"/>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="233"/>
         <source>Leaving demand error</source>
         <translation>Erreur lors de l&apos;envoi de la demande pour quitter la communauté</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/community_tab.py" line="239"/>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="240"/>
         <source>Error</source>
         <translation>Erreur</translation>
     </message>
@@ -299,41 +299,41 @@
         <translation>Publier votre UID</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/community_tab.py" line="58"/>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="59"/>
         <source>Members</source>
         <translation>Membres</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/community_tab.py" line="61"/>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="62"/>
         <source>Direct connections</source>
         <translation>Connections directes</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/community_tab.py" line="217"/>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="218"/>
         <source>Are you sure ?
 Publishing your UID cannot be canceled.</source>
         <translation>Êtes vous certain ?
 Publier votre UID ne peut être annulé.</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/community_tab.py" line="229"/>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="230"/>
         <source>UID Publishing</source>
         <translation>Publication de l&apos;UID</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/community_tab.py" line="229"/>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="230"/>
         <source>Success publishing your UID</source>
         <translation>Succès lors de la publication de votre UID</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/community_tab.py" line="177"/>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="178"/>
         <source>&quot;Your key wasn&apos;t sent in the community.
 You can&apos;t request a membership.</source>
         <translation>Votre clé publique n&apos;a pas été envoyée à la communauté.
 Vous ne pouvez pas envoyer de requête de membre.</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/community_tab.py" line="190"/>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="191"/>
         <source>Are you sure ?
 Sending a leaving demand  cannot be canceled.
 The process to join back the community later will have to be done again.</source>
@@ -342,7 +342,7 @@ Envoyer une demande pour quitter la communauté ne peut être annulée.
 Le processus pour rejoindre la communauté devrait être refait à zéro.</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/community_tab.py" line="57"/>
+        <location filename="../../../src/cutecoin/gui/community_tab.py" line="58"/>
         <source>Web of Trust</source>
         <translation>Toile de Confiance</translation>
     </message>
@@ -401,32 +401,32 @@ Le processus pour rejoindre la communauté devrait être refait à zéro.</trans
         <translation></translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="90"/>
+        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="77"/>
         <source>Wallets</source>
         <translation>Portefeuilles</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="98"/>
+        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="85"/>
         <source>Transactions</source>
         <translation>Transferts</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="107"/>
+        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="94"/>
         <source>Community</source>
         <translation>Communauté</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="113"/>
+        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="100"/>
         <source>Informations</source>
         <translation>Informations</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="125"/>
+        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="112"/>
         <source>Network</source>
         <translation>Réseau</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="171"/>
+        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="183"/>
         <source> Block {0}</source>
         <translation>Block {0}</translation>
     </message>
@@ -436,25 +436,45 @@ Le processus pour rejoindre la communauté devrait être refait à zéro.</trans
         <translation type="obsolete">Expiration du statut de membre</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="190"/>
+        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="206"/>
         <source>Received {0} {1} from {2} transfers</source>
         <translation>Reception de {0} {1} dans {2} transfers</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="194"/>
+        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="210"/>
         <source>New transactions received</source>
         <translation>Nouveaux transferts reçus</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="75"/>
+        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="145"/>
         <source>Membership expiration</source>
         <translation>Expiration du statut de membre</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="75"/>
+        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="145"/>
         <source>&lt;b&gt;Warning : Membership expiration in {0} days&lt;/b&gt;</source>
         <translation>&lt;b&gt;Attention : Expiration du statut de membre dans {0} jours&lt;/b&gt;</translation>
     </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="43"/>
+        <source>Warning : Your membership is expiring soon.</source>
+        <translation>Attention : Votre statut de membre expire bientôt.</translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="45"/>
+        <source>Warning : Your could miss certifications soon.</source>
+        <translation>Attention : Vous pourriez manquer de certifications prochainement.</translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="150"/>
+        <source>Certifications number</source>
+        <translation>Nombre de certifications</translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/currency_tab.py" line="150"/>
+        <source>&lt;b&gt;Warning : You are certified by only {0} persons, need {1}&lt;/b&gt;</source>
+        <translation>&lt;b&gt;Attention : Vous êtes certifiés par seulement {0} personnes, besoin de {2}&lt;/b&gt;</translation>
+    </message>
 </context>
 <context>
     <name>DialogMember</name>
@@ -482,34 +502,34 @@ Le processus pour rejoindre la communauté devrait être refait à zéro.</trans
 <context>
     <name>HistoryTableModel</name>
     <message>
-        <location filename="../../../src/cutecoin/models/txhistory.py" line="166"/>
+        <location filename="../../../src/cutecoin/models/txhistory.py" line="173"/>
         <source>Date</source>
         <translation>Date</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/models/txhistory.py" line="166"/>
+        <location filename="../../../src/cutecoin/models/txhistory.py" line="173"/>
         <source>UID/Public key</source>
         <translation>UID/Clé publique</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/models/txhistory.py" line="166"/>
+        <location filename="../../../src/cutecoin/models/txhistory.py" line="173"/>
         <source>Payment</source>
         <translation>Paiement</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/models/txhistory.py" line="166"/>
+        <location filename="../../../src/cutecoin/models/txhistory.py" line="173"/>
         <source>Deposit</source>
         <translation>Dépôt</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/models/txhistory.py" line="166"/>
+        <location filename="../../../src/cutecoin/models/txhistory.py" line="173"/>
         <source>Comment</source>
         <translation>Commentaire</translation>
     </message>
     <message>
         <location filename="../../../src/cutecoin/models/txhistory.py" line="166"/>
         <source>State</source>
-        <translation>Statut</translation>
+        <translation type="obsolete">Statut</translation>
     </message>
 </context>
 <context>
@@ -1183,6 +1203,16 @@ Le processus pour rejoindre la communauté devrait être refait à zéro.</trans
         <source>Form</source>
         <translation></translation>
     </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/network_tab.py" line="51"/>
+        <source>Unset root node</source>
+        <translation>Supprimer des noeuds racines</translation>
+    </message>
+    <message>
+        <location filename="../../../src/cutecoin/gui/network_tab.py" line="57"/>
+        <source>Set as root node</source>
+        <translation>Définir comme noeud racine</translation>
+    </message>
 </context>
 <context>
     <name>PasswordAskerDialog</name>
@@ -1361,69 +1391,69 @@ Souhaitez-vous publier votre clé publique ?</translation>
 <context>
     <name>TransactionsTabWidget</name>
     <message>
-        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="118"/>
+        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="119"/>
         <source>Actions</source>
         <translation>Actions</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="131"/>
+        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="132"/>
         <source>Send again</source>
         <translation>Renvoyer</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="136"/>
+        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="137"/>
         <source>Cancel</source>
         <translation>Annuler</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="142"/>
+        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="143"/>
         <source>Informations</source>
         <translation>Informations</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="147"/>
+        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="148"/>
         <source>Add as contact</source>
         <translation>Ajouter comme contact</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="152"/>
+        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="153"/>
         <source>Send money to</source>
         <translation>Envoyer de la monnaie à</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="158"/>
+        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="159"/>
         <source>View in WoT</source>
         <translation>Voir dans la WoT</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="163"/>
+        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="164"/>
         <source>Copy pubkey to clipboard</source>
         <translation>Copier la clé publique</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="200"/>
+        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="201"/>
         <source>Warning</source>
         <translation>Attention</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="200"/>
+        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="201"/>
         <source>Are you sure ?
 This money transfer will be removed and not sent.</source>
         <translation>Êtes vous certain ?
 Le transfer de monnaie sera annulé et non envoyé.</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="101"/>
+        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="102"/>
         <source>&lt;b&gt;Deposits&lt;/b&gt; {:} {:}</source>
         <translation>&lt;b&gt;Dépôts&lt;/b&gt; {:} {:}</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="105"/>
+        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="106"/>
         <source>&lt;b&gt;Payments&lt;/b&gt; {:} {:}</source>
         <translation>&lt;b&gt;Paiements&lt;/b&gt; {:} {:}</translation>
     </message>
     <message>
-        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="109"/>
+        <location filename="../../../src/cutecoin/gui/transactions_tab.py" line="110"/>
         <source>&lt;b&gt;Balance&lt;/b&gt; {:} {:}</source>
         <translation>&lt;b&gt;Balance&lt;/b&gt; {:} {:}</translation>
     </message>
diff --git a/src/cutecoin/gui/transactions_tab.py b/src/cutecoin/gui/transactions_tab.py
index 1e085303..01bcb087 100644
--- a/src/cutecoin/gui/transactions_tab.py
+++ b/src/cutecoin/gui/transactions_tab.py
@@ -118,12 +118,12 @@ class TransactionsTabWidget(QWidget, Ui_transactionsTabWidget):
         if index.row() < model.rowCount(QModelIndex()):
             menu = QMenu(self.tr("Actions"), self)
             source_index = model.mapToSource(index)
-            state_col = model.sourceModel().column_types.index('state')
+            state_col = model.sourceModel().columns_types.index('state')
             state_index = model.sourceModel().index(source_index.row(),
                                                    state_col)
             state_data = model.sourceModel().data(state_index, Qt.DisplayRole)
 
-            pubkey_col = model.sourceModel().column_types.index('pubkey')
+            pubkey_col = model.sourceModel().columns_types.index('pubkey')
             person_index = model.sourceModel().index(source_index.row(),
                                                     pubkey_col)
             person = model.sourceModel().data(person_index, Qt.DisplayRole)
diff --git a/src/cutecoin/models/network.py b/src/cutecoin/models/network.py
index 258007ea..bb10397b 100644
--- a/src/cutecoin/models/network.py
+++ b/src/cutecoin/models/network.py
@@ -52,19 +52,19 @@ class NetworkFilterProxyModel(QSortFilterProxyModel):
         if not source_index.isValid():
             return QVariant()
         source_data = source_model.data(source_index, role)
-        if index.column() == self.sourceModel().column_types.index('is_member') \
+        if index.column() == self.sourceModel().columns_types.index('is_member') \
                 and role == Qt.DisplayRole:
             value = {True: 'yes', False: 'no', None: 'offline'}
             return value[source_data]
 
         if role == Qt.TextAlignmentRole:
-            if source_index.column() == source_model.column_types.index('address') or source_index.column() == self.sourceModel().column_types.index('current_block'):
+            if source_index.column() == source_model.columns_types.index('address') or source_index.column() == self.sourceModel().columns_types.index('current_block'):
                 return Qt.AlignRight | Qt.AlignVCenter
-            if source_index.column() == source_model.column_types.index('is_member'):
+            if source_index.column() == source_model.columns_types.index('is_member'):
                 return Qt.AlignCenter
 
         if role == Qt.FontRole:
-            is_root_col = source_model.column_types.index('is_root')
+            is_root_col = source_model.columns_types.index('is_root')
             index_root_col = source_model.index(source_index.row(), is_root_col)
             if source_model.data(index_root_col, Qt.DisplayRole):
                 font = QFont()
@@ -85,7 +85,7 @@ class NetworkTableModel(QAbstractTableModel):
         '''
         super().__init__(parent)
         self.community = community
-        self.column_types = (
+        self.columns_types = (
             'address',
             'port',
             'current_block',
@@ -115,13 +115,13 @@ class NetworkTableModel(QAbstractTableModel):
         return len(self.nodes)
 
     def columnCount(self, parent):
-        return len(self.column_types)
+        return len(self.columns_types)
 
     def headerData(self, section, orientation, role):
         if role != Qt.DisplayRole:
             return QVariant()
 
-        return self.column_types[section]
+        return self.columns_types[section]
 
     def data_node(self, node: Node) -> tuple:
         """
diff --git a/src/cutecoin/models/txhistory.py b/src/cutecoin/models/txhistory.py
index a704fc96..3b214211 100644
--- a/src/cutecoin/models/txhistory.py
+++ b/src/cutecoin/models/txhistory.py
@@ -40,20 +40,20 @@ class TxFilterProxyModel(QSortFilterProxyModel):
             return date_ts in range(self.ts_from, self.ts_to)
 
         source_model = self.sourceModel()
-        date_col = source_model.column_types.index('date')
+        date_col = source_model.columns_types.index('date')
         source_index = source_model.index(sourceRow, date_col)
         date = source_model.data(source_index, Qt.DisplayRole)
         if in_period(date):
             # calculate sum total payments
             payment = source_model.data(
-                source_model.index(sourceRow, source_model.column_types.index('payment')),
+                source_model.index(sourceRow, source_model.columns_types.index('payment')),
                 Qt.DisplayRole
             )
             if payment:
                 self.payments += int(payment)
             # calculate sum total deposits
             deposit = source_model.data(
-                source_model.index(sourceRow, source_model.column_types.index('deposit')),
+                source_model.index(sourceRow, source_model.columns_types.index('deposit')),
                 Qt.DisplayRole
             )
             if deposit:
@@ -81,7 +81,7 @@ class TxFilterProxyModel(QSortFilterProxyModel):
         elif right_data == "":
             return self.sortOrder() == Qt.AscendingOrder
         if left_data == right_data:
-            txid_col = source_model.column_types.index('txid')
+            txid_col = source_model.columns_types.index('txid')
             txid_left = source_model.index(left.row(), txid_col)
             txid_right = source_model.index(right.row(), txid_col)
             return (txid_left < txid_right)
@@ -92,17 +92,17 @@ class TxFilterProxyModel(QSortFilterProxyModel):
         source_index = self.mapToSource(index)
         model = self.sourceModel()
         source_data = model.data(source_index, role)
-        state_col = model.column_types.index('state')
+        state_col = model.columns_types.index('state')
         state_index = model.index(source_index.row(), state_col)
         state_data = model.data(state_index, Qt.DisplayRole)
         if role == Qt.DisplayRole:
-            if source_index.column() == model.column_types.index('uid'):
+            if source_index.column() == model.columns_types.index('uid'):
                 return source_data
-            if source_index.column() == model.column_types.index('date'):
+            if source_index.column() == model.columns_types.index('date'):
                 date = QDateTime.fromTime_t(source_data)
                 return date.date()
-            if source_index.column() == model.column_types.index('payment') or \
-                    source_index.column() == model.column_types.index('deposit'):
+            if source_index.column() == model.columns_types.index('payment') or \
+                    source_index.column() == model.columns_types.index('deposit'):
                 if source_data is not "":
                     amount_ref = self.account.units_to_diff_ref(source_data,
                                                                 self.community)
@@ -130,14 +130,14 @@ class TxFilterProxyModel(QSortFilterProxyModel):
                 return QColor(Qt.blue)
 
         if role == Qt.TextAlignmentRole:
-            if source_index.column() == self.sourceModel().column_types.index(
-                    'deposit') or source_index.column() == self.sourceModel().column_types.index('payment'):
+            if source_index.column() == self.sourceModel().columns_types.index(
+                    'deposit') or source_index.column() == self.sourceModel().columns_types.index('payment'):
                 return Qt.AlignRight | Qt.AlignVCenter
-            if source_index.column() == self.sourceModel().column_types.index('date'):
+            if source_index.column() == self.sourceModel().columns_types.index('date'):
                 return Qt.AlignCenter
 
         if role == Qt.ToolTipRole:
-            if source_index.column() == self.sourceModel().column_types.index('date'):
+            if source_index.column() == self.sourceModel().columns_types.index('date'):
                 return QDateTime.fromTime_t(source_data).toString(Qt.SystemLocaleLongDate)
 
         return source_data
@@ -159,7 +159,7 @@ class HistoryTableModel(QAbstractTableModel):
         self.transfers_data = []
         self.refresh_transfers()
 
-        self.column_types = (
+        self.columns_types = (
             'date',
             'uid',
             'payment',
@@ -234,11 +234,11 @@ class HistoryTableModel(QAbstractTableModel):
         return len(self.transfers)
 
     def columnCount(self, parent):
-        return len(self.column_types)
+        return len(self.columns_types)
 
     def headerData(self, section, orientation, role):
         if role == Qt.DisplayRole:
-            if self.column_types[section] == 'payment' or self.column_types[section] == 'deposit':
+            if self.columns_types[section] == 'payment' or self.columns_types[section] == 'deposit':
                 return '{:}\n({:})'.format(
                     self.column_headers[section],
                     self.account.diff_ref_name(self.community.short_currency)
-- 
GitLab