Skip to content
Snippets Groups Projects
Commit b6920858 authored by inso's avatar inso
Browse files

Fix bug with no membership data accounts

parent 5d7aa492
Branches
Tags
No related merge requests found
...@@ -6,7 +6,7 @@ Created on 5 févr. 2014 ...@@ -6,7 +6,7 @@ Created on 5 févr. 2014
from ucoinpy.api import bma from ucoinpy.api import bma
from ..core.person import Person from ..core.person import Person
from ..tools.exceptions import NoPeerAvailable from ..tools.exceptions import NoPeerAvailable, MembershipNotFoundError
from PyQt5.QtCore import QAbstractTableModel, QSortFilterProxyModel, Qt, \ from PyQt5.QtCore import QAbstractTableModel, QSortFilterProxyModel, Qt, \
QDateTime, QModelIndex QDateTime, QModelIndex
from PyQt5.QtGui import QColor from PyQt5.QtGui import QColor
...@@ -29,6 +29,8 @@ class IdentitiesFilterProxyModel(QSortFilterProxyModel): ...@@ -29,6 +29,8 @@ class IdentitiesFilterProxyModel(QSortFilterProxyModel):
source_model = self.sourceModel() source_model = self.sourceModel()
left_data = source_model.data(left, Qt.DisplayRole) left_data = source_model.data(left, Qt.DisplayRole)
right_data = source_model.data(right, Qt.DisplayRole) right_data = source_model.data(right, Qt.DisplayRole)
left_data = 0 if left_data is None else left_data
right_data = 0 if right_data is None else right_data
return (left_data < right_data) return (left_data < right_data)
def data(self, index, role): def data(self, index, role):
...@@ -41,20 +43,24 @@ class IdentitiesFilterProxyModel(QSortFilterProxyModel): ...@@ -41,20 +43,24 @@ class IdentitiesFilterProxyModel(QSortFilterProxyModel):
sig_validity = self.community.parameters['sigValidity'] sig_validity = self.community.parameters['sigValidity']
warning_expiration_time = int(sig_validity / 3) warning_expiration_time = int(sig_validity / 3)
#logging.debug("{0} > {1}".format(current_time, expiration_data)) #logging.debug("{0} > {1}".format(current_time, expiration_data))
if expiration_data is not None:
will_expire_soon = (current_time > expiration_data*1000 - warning_expiration_time*1000) will_expire_soon = (current_time > expiration_data*1000 - warning_expiration_time*1000)
if role == Qt.DisplayRole: if role == Qt.DisplayRole:
if source_index.column() == self.sourceModel().columns_ids.index('renewed'): if source_index.column() == self.sourceModel().columns_ids.index('renewed'):
date = QDateTime.fromTime_t(source_data) date = QDateTime.fromTime_t(source_data).date() if source_data is not None else ""
return date.date() return date
if source_index.column() == self.sourceModel().columns_ids.index('expiration'): if source_index.column() == self.sourceModel().columns_ids.index('expiration'):
date = QDateTime.fromTime_t(source_data) date = QDateTime.fromTime_t(source_data).date() if source_data is not None else ""
return date.date() return date
if source_index.column() == self.sourceModel().columns_ids.index('pubkey'): if source_index.column() == self.sourceModel().columns_ids.index('pubkey'):
return "pub:{0}".format(source_data[:5]) return "pub:{0}".format(source_data[:5])
if role == Qt.ForegroundRole: if role == Qt.ForegroundRole:
if expiration_data:
if will_expire_soon: if will_expire_soon:
return QColor(Qt.red) return QColor(Qt.red)
else:
return QColor(Qt.blue)
return source_data return source_data
...@@ -86,14 +92,19 @@ class IdentitiesTableModel(QAbstractTableModel): ...@@ -86,14 +92,19 @@ class IdentitiesTableModel(QAbstractTableModel):
return [i[1] for i in self.identities_data] return [i[1] for i in self.identities_data]
def identity_data(self, person): def identity_data(self, person):
parameters = self.community.parameters
try:
join_block = person.membership(self.community)['blockNumber'] join_block = person.membership(self.community)['blockNumber']
try: try:
join_date = self.community.get_block(join_block).mediantime join_date = self.community.get_block(join_block).mediantime
except NoPeerAvailable:
join_date = 0
parameters = self.community.parameters
expiration_date = join_date + parameters['sigValidity'] expiration_date = join_date + parameters['sigValidity']
logging.debug((person.uid, person.pubkey, join_date, expiration_date)) except NoPeerAvailable:
join_date = None
expiration_date = None
except MembershipNotFoundError:
join_date = None
expiration_date = None
return (person.uid, person.pubkey, join_date, expiration_date) return (person.uid, person.pubkey, join_date, expiration_date)
def refresh_identities(self, persons): def refresh_identities(self, persons):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment