From f1ca0382b263254bbc4a701ae0b69f580e66d8d3 Mon Sep 17 00:00:00 2001 From: inso <insomniak.fr@gmaiL.com> Date: Fri, 5 May 2017 09:00:39 +0200 Subject: [PATCH] Add BAT Units to times --- src/sakia/data/graphs/base_graph.py | 10 ++- .../gui/main_window/status_bar/controller.py | 2 +- src/sakia/gui/main_window/toolbar/view.py | 6 +- src/sakia/gui/navigation/controller.py | 83 ++++++++++--------- .../gui/navigation/identities/table_model.py | 4 +- .../gui/navigation/identity/table_model.py | 4 +- src/sakia/gui/navigation/identity/view.py | 2 +- .../gui/navigation/network/table_model.py | 6 +- .../gui/navigation/txhistory/table_model.py | 2 +- src/sakia/gui/sub/user_information/view.py | 4 +- src/sakia/services/blockchain.py | 3 + 11 files changed, 67 insertions(+), 59 deletions(-) diff --git a/src/sakia/data/graphs/base_graph.py b/src/sakia/data/graphs/base_graph.py index a9e4a401..602d72e0 100644 --- a/src/sakia/data/graphs/base_graph.py +++ b/src/sakia/data/graphs/base_graph.py @@ -115,13 +115,14 @@ class BaseGraph(QObject): arc_status = self.arc_status(certification.timestamp) sig_validity = self.blockchain_service.parameters().sig_validity + expiration = self.blockchain_service.adjusted_ts(certification.timestamp + sig_validity) arc = { 'status': arc_status, 'tooltip': QLocale.toString( QLocale(), - QDateTime.fromTime_t(certification.timestamp + sig_validity).date(), + QDateTime.fromTime_t(expiration).date(), QLocale.dateFormat(QLocale(), QLocale.ShortFormat) - ), + ) + " BAT", 'cert_time': certification.timestamp, 'confirmation_text': self.confirmation_text(certification.written_on) } @@ -140,13 +141,14 @@ class BaseGraph(QObject): arc_status = self.arc_status(certification.timestamp) sig_validity = self.blockchain_service.parameters().sig_validity + expiration = self.blockchain_service.adjusted_ts(certification.timestamp + sig_validity) arc = { 'status': arc_status, 'tooltip': QLocale.toString( QLocale(), - QDateTime.fromTime_t(certification.timestamp + sig_validity).date(), + QDateTime.fromTime_t(expiration).date(), QLocale.dateFormat(QLocale(), QLocale.ShortFormat) - ), + ) + " BAT", 'cert_time': certification.timestamp, 'confirmation_text': self.confirmation_text(certification.written_on) } diff --git a/src/sakia/gui/main_window/status_bar/controller.py b/src/sakia/gui/main_window/status_bar/controller.py index e4381501..8500b1a8 100644 --- a/src/sakia/gui/main_window/status_bar/controller.py +++ b/src/sakia/gui/main_window/status_bar/controller.py @@ -61,7 +61,7 @@ class StatusBarController(QObject): QDateTime.fromTime_t(current_time), QLocale.dateTimeFormat(QLocale(), QLocale.NarrowFormat) ) - self.view.status_label.setText(self.tr("Blockchain sync : {0} ({1})").format(str_time, str(current_block)[:15])) + self.view.status_label.setText(self.tr("Blockchain sync : {0} BAT ({1})").format(str_time, str(current_block)[:15])) def refresh(self): """ diff --git a/src/sakia/gui/main_window/toolbar/view.py b/src/sakia/gui/main_window/toolbar/view.py index ce9ebdad..361d514c 100644 --- a/src/sakia/gui/main_window/toolbar/view.py +++ b/src/sakia/gui/main_window/toolbar/view.py @@ -186,11 +186,11 @@ class ToolbarView(QFrame, Ui_SakiaToolbar): self.tr('Actual growth c = UD(t)/[M(t-1)/N(t)]'), localized_data.get('ud_median_time_minus_1', '####'), self.tr('Penultimate UD date and time (t-1)'), - localized_data.get('ud_median_time', '####'), + localized_data.get('ud_median_time', '####') + " BAT", self.tr('Last UD date and time (t)'), - localized_data.get('next_ud_median_time', '####'), + localized_data.get('next_ud_median_time', '####') + " BAT", self.tr('Next UD date and time (t+1)'), - localized_data.get('next_ud_reeaval', '####'), + localized_data.get('next_ud_reeaval', '####') + " BAT", self.tr('Next UD reevaluation (t+1)') ) diff --git a/src/sakia/gui/navigation/controller.py b/src/sakia/gui/navigation/controller.py index 0d4b3ba7..925dc9f1 100644 --- a/src/sakia/gui/navigation/controller.py +++ b/src/sakia/gui/navigation/controller.py @@ -135,47 +135,48 @@ class NavigationController(QObject): mapped = self.view.splitter.mapFromParent(point) index = self.view.tree_view.indexAt(mapped) raw_data = self.view.tree_view.model().data(index, GenericTreeModel.ROLE_RAW_DATA) - menu = QMenu(self.view) - if raw_data['misc']['connection'].uid: - action_view_in_wot = QAction(self.tr("View in Web of Trust"), menu) - menu.addAction(action_view_in_wot) - action_view_in_wot.triggered.connect(lambda c: - self.model.view_in_wot(raw_data['misc']['connection'])) - - action_gen_revokation = QAction(self.tr("Save revokation document"), menu) - menu.addAction(action_gen_revokation) - action_gen_revokation.triggered.connect(lambda c: - self.action_save_revokation(raw_data['misc']['connection'])) - - action_publish_uid = QAction(self.tr("Publish UID"), menu) - menu.addAction(action_publish_uid) - action_publish_uid.triggered.connect(lambda c: - self.publish_uid(raw_data['misc']['connection'])) - identity_published = self.model.identity_published(raw_data['misc']['connection']) - action_publish_uid.setEnabled(not identity_published) - - action_export_identity = QAction(self.tr("Export identity document"), menu) - menu.addAction(action_export_identity) - action_export_identity.triggered.connect(lambda c: - self.export_identity_document(raw_data['misc']['connection'])) - - action_leave = QAction(self.tr("Leave the currency"), menu) - menu.addAction(action_leave) - action_leave.triggered.connect(lambda c: self.send_leave(raw_data['misc']['connection'])) - action_leave.setEnabled(self.model.identity_is_member(raw_data['misc']['connection'])) - - copy_pubkey = QAction(menu.tr("Copy pubkey to clipboard"), menu.parent()) - copy_pubkey.triggered.connect(lambda checked, - c=raw_data['misc']['connection']: \ - NavigationModel.copy_pubkey_to_clipboard(c)) - menu.addAction(copy_pubkey) - - action_remove = QAction(self.tr("Remove the connection"), menu) - menu.addAction(action_remove) - action_remove.triggered.connect(lambda c: self.remove_connection(raw_data['misc']['connection'])) - # Show the context menu. - - menu.popup(QCursor.pos()) + if raw_data: + menu = QMenu(self.view) + if raw_data['misc']['connection'].uid: + action_view_in_wot = QAction(self.tr("View in Web of Trust"), menu) + menu.addAction(action_view_in_wot) + action_view_in_wot.triggered.connect(lambda c: + self.model.view_in_wot(raw_data['misc']['connection'])) + + action_gen_revokation = QAction(self.tr("Save revokation document"), menu) + menu.addAction(action_gen_revokation) + action_gen_revokation.triggered.connect(lambda c: + self.action_save_revokation(raw_data['misc']['connection'])) + + action_publish_uid = QAction(self.tr("Publish UID"), menu) + menu.addAction(action_publish_uid) + action_publish_uid.triggered.connect(lambda c: + self.publish_uid(raw_data['misc']['connection'])) + identity_published = self.model.identity_published(raw_data['misc']['connection']) + action_publish_uid.setEnabled(not identity_published) + + action_export_identity = QAction(self.tr("Export identity document"), menu) + menu.addAction(action_export_identity) + action_export_identity.triggered.connect(lambda c: + self.export_identity_document(raw_data['misc']['connection'])) + + action_leave = QAction(self.tr("Leave the currency"), menu) + menu.addAction(action_leave) + action_leave.triggered.connect(lambda c: self.send_leave(raw_data['misc']['connection'])) + action_leave.setEnabled(self.model.identity_is_member(raw_data['misc']['connection'])) + + copy_pubkey = QAction(menu.tr("Copy pubkey to clipboard"), menu.parent()) + copy_pubkey.triggered.connect(lambda checked, + c=raw_data['misc']['connection']: \ + NavigationModel.copy_pubkey_to_clipboard(c)) + menu.addAction(copy_pubkey) + + action_remove = QAction(self.tr("Remove the connection"), menu) + menu.addAction(action_remove) + action_remove.triggered.connect(lambda c: self.remove_connection(raw_data['misc']['connection'])) + # Show the context menu. + + menu.popup(QCursor.pos()) @asyncify async def publish_uid(self, connection): diff --git a/src/sakia/gui/navigation/identities/table_model.py b/src/sakia/gui/navigation/identities/table_model.py index c3aa5991..9aea3a8d 100644 --- a/src/sakia/gui/navigation/identities/table_model.py +++ b/src/sakia/gui/navigation/identities/table_model.py @@ -63,7 +63,7 @@ class IdentitiesFilterProxyModel(QSortFilterProxyModel): QLocale(), QDateTime.fromTime_t(ts).date(), QLocale.dateFormat(QLocale(), QLocale.ShortFormat) - ) + ) + " BAT" else: return "" if source_index.column() == IdentitiesTableModel.columns_ids.index('publication'): @@ -73,7 +73,7 @@ class IdentitiesFilterProxyModel(QSortFilterProxyModel): QLocale(), QDateTime.fromTime_t(ts), QLocale.dateTimeFormat(QLocale(), QLocale.LongFormat) - ) + ) + " BAT" else: return "" if source_index.column() == IdentitiesTableModel.columns_ids.index('pubkey'): diff --git a/src/sakia/gui/navigation/identity/table_model.py b/src/sakia/gui/navigation/identity/table_model.py index ace96e29..63a8e81c 100644 --- a/src/sakia/gui/navigation/identity/table_model.py +++ b/src/sakia/gui/navigation/identity/table_model.py @@ -53,7 +53,7 @@ class CertifiersFilterProxyModel(QSortFilterProxyModel): QLocale(), QDateTime.fromTime_t(ts), QLocale.dateTimeFormat(QLocale(), QLocale.ShortFormat) - ) + ) + " BAT" else: return "" if source_index.column() == CertifiersTableModel.columns_ids.index('publication'): @@ -63,7 +63,7 @@ class CertifiersFilterProxyModel(QSortFilterProxyModel): QLocale(), QDateTime.fromTime_t(ts), QLocale.dateTimeFormat(QLocale(), QLocale.ShortFormat) - ) + ) + " BAT" else: return "" if source_index.column() == CertifiersTableModel.columns_ids.index('pubkey'): diff --git a/src/sakia/gui/navigation/identity/view.py b/src/sakia/gui/navigation/identity/view.py index 40edf46c..3dd0c6d0 100644 --- a/src/sakia/gui/navigation/identity/view.py +++ b/src/sakia/gui/navigation/identity/view.py @@ -63,7 +63,7 @@ class IdentityView(QWidget, Ui_IdentityWidget): QLocale.dateTimeFormat(QLocale(), QLocale.ShortFormat) ) written_value = self.tr("Identity not written in blockchain") + \ - " (" + self.tr("Expires on : {0}").format(expiration_text) + ")" + " (" + self.tr("Expires on : {0}").format(expiration_text) + " BAT)" status_value = self.tr("Member") if data['membership_state'] else self.tr("Non-Member") if data['mstime'] > 0: diff --git a/src/sakia/gui/navigation/network/table_model.py b/src/sakia/gui/navigation/network/table_model.py index 77c3c2a4..15caba81 100644 --- a/src/sakia/gui/navigation/network/table_model.py +++ b/src/sakia/gui/navigation/network/table_model.py @@ -67,7 +67,9 @@ class NetworkFilterProxyModel(QSortFilterProxyModel): if role == Qt.DisplayRole: if index.column() == NetworkTableModel.columns_types.index('is_member'): - value = {True: QT_TRANSLATE_NOOP("NetworkTableModel", 'yes'), False: QT_TRANSLATE_NOOP("NetworkTableModel", 'no'), None: QT_TRANSLATE_NOOP("NetworkTableModel", 'offline')} + value = {True: QT_TRANSLATE_NOOP("NetworkTableModel", 'yes'), + False: QT_TRANSLATE_NOOP("NetworkTableModel", 'no'), + None: QT_TRANSLATE_NOOP("NetworkTableModel", 'offline')} return value[source_data] if index.column() == NetworkTableModel.columns_types.index('pubkey'): @@ -92,7 +94,7 @@ class NetworkFilterProxyModel(QSortFilterProxyModel): QLocale(), QDateTime.fromTime_t(ts), QLocale.dateTimeFormat(QLocale(), QLocale.ShortFormat) - ) + ) + " BAT" if role == Qt.TextAlignmentRole: if source_index.column() == NetworkTableModel.columns_types.index('address') or source_index.column() == self.sourceModel().columns_types.index('current_block'): diff --git a/src/sakia/gui/navigation/txhistory/table_model.py b/src/sakia/gui/navigation/txhistory/table_model.py index a50b2381..562ce339 100644 --- a/src/sakia/gui/navigation/txhistory/table_model.py +++ b/src/sakia/gui/navigation/txhistory/table_model.py @@ -101,7 +101,7 @@ class TxFilterProxyModel(QSortFilterProxyModel): QLocale(), QDateTime.fromTime_t(ts).date(), QLocale.dateFormat(QLocale(), QLocale.ShortFormat) - ) + ) + " BAT" if source_index.column() == model.columns_types.index('amount'): amount = self.app.current_ref.instance(source_data, model.connection.currency, self.app, block_data).diff_localized(False, False) diff --git a/src/sakia/gui/sub/user_information/view.py b/src/sakia/gui/sub/user_information/view.py index c6d1acdc..e9ff2a22 100644 --- a/src/sakia/gui/sub/user_information/view.py +++ b/src/sakia/gui/sub/user_information/view.py @@ -61,8 +61,8 @@ class UserInformationView(QWidget, Ui_UserInformationWidget): text = self.tr(""" <table cellpadding="5"> <tr><td align="right"><b>{:}</b></td><td>{:}</td></tr> - <tr><td align="right"><b>{:}</b></td><td>{:}</td></tr> - <tr><td align="right"><b>{:}</b></td><td>{:}</td></tr> + <tr><td align="right"><b>{:}</b></td><td>{:} BAT</td></tr> + <tr><td align="right"><b>{:}</b></td><td>{:} BAT</td></tr> <tr><td align="right"><b>{:}</b></td><td>{:}</td></tr> <tr><td align="right"><b>{:}</b></td><td>{:}</td></tr> """).format( diff --git a/src/sakia/services/blockchain.py b/src/sakia/services/blockchain.py index 639160ba..8f0720a9 100644 --- a/src/sakia/services/blockchain.py +++ b/src/sakia/services/blockchain.py @@ -126,6 +126,9 @@ class BlockchainService(QObject): def previous_ud(self): return self._blockchain_processor.previous_ud(self.currency) + def adjusted_ts(self, time): + return self._blockchain_processor.adjusted_ts(self.currency, time) + def next_ud_reeval(self): parameters = self._blockchain_processor.parameters(self.currency) mediantime = self._blockchain_processor.time(self.currency) -- GitLab