diff options
author | Ajay Garg <ajay@activitycentral.com> | 2012-10-16 09:12:00 (GMT) |
---|---|---|
committer | Ajay Garg <ajay@activitycentral.com> | 2012-10-16 09:17:08 (GMT) |
commit | 6cb4ab9c4494161594059eb797ca3500577404bd (patch) | |
tree | 6e5a420b5ab38b42384d5fbc4d1a25d6cff2b23a | |
parent | f41468507d1e814839c4a81dd001066bc2cf0a6b (diff) |
Lease-Duration information in "My Settings" -> "About My Computer".
Signed-off-by: Ajay Garg <ajay@activitycentral.com>
-rw-r--r-- | extensions/cpsection/aboutcomputer/model.py | 30 | ||||
-rw-r--r-- | extensions/cpsection/aboutcomputer/view.py | 15 |
2 files changed, 45 insertions, 0 deletions
diff --git a/extensions/cpsection/aboutcomputer/model.py b/extensions/cpsection/aboutcomputer/model.py index 59bae00..94c6d47 100644 --- a/extensions/cpsection/aboutcomputer/model.py +++ b/extensions/cpsection/aboutcomputer/model.py @@ -20,7 +20,9 @@ import logging import re import subprocess from gettext import gettext as _ + import errno +from datetime import datetime import dbus @@ -39,6 +41,9 @@ _DMI_DIRECTORY = '/sys/class/dmi/id' _SN = 'serial-number' _MODEL = 'openprom/model' +_XO_1_0_LEASE_PATH = '/security/lease.sig' +_XO_1_5_LEASE_PATH = '/bootpart/boot/security/lease.sig' + _logger = logging.getLogger('ControlPanel - AboutComputer') _not_available = _('Not available') @@ -53,6 +58,31 @@ def print_aboutcomputer(): print get_aboutcomputer() +def _get_lease_path(): + if os.path.exists(_XO_1_0_LEASE_PATH): + return _XO_1_0_LEASE_PATH + elif os.path.exists(_XO_1_5_LEASE_PATH): + return _XO_1_5_LEASE_PATH + else: + return '' + + +def get_lease_days(): + lease_file = _read_file(_get_lease_path()) + if lease_file is None: + return _not_available + + encoded_date = str(str.split(lease_file)[3]) + expiry_date = datetime.strptime(encoded_date + , '%Y%m%dT%H%M%SZ') + current_date = datetime.today() + days_remaining = (expiry_date - current_date).days + + # TRANS: Do not translate %d. + str_days_remaining = _('%d days remaining.' % days_remaining) + return str_days_remaining + + def get_serial_number(): serial_no = None if os.path.exists(os.path.join(_OFW_TREE, _SN)): diff --git a/extensions/cpsection/aboutcomputer/view.py b/extensions/cpsection/aboutcomputer/view.py index ac0b531..666d840 100644 --- a/extensions/cpsection/aboutcomputer/view.py +++ b/extensions/cpsection/aboutcomputer/view.py @@ -80,6 +80,21 @@ class AboutComputer(SectionView): vbox_identity.pack_start(box_identity, False, True, 0) box_identity.show() + box_lease = Gtk.HBox(spacing=style.DEFAULT_SPACING) + label_lease = Gtk.Label(_('Lease: ')) + label_lease.set_alignment(1, 0) + label_lease.modify_fg(Gtk.StateType.NORMAL, + style.COLOR_SELECTION_GREY.get_gdk_color()) + box_lease.pack_start(label_lease, False, True, 0) + self._group.add_widget(label_lease) + label_lease.show() + label_lease_ver = Gtk.Label(self._model.get_lease_days()) + label_lease_ver.set_alignment(0, 0) + box_lease.pack_start(label_lease_ver, False, True, 0) + label_lease_ver.show() + vbox_identity.pack_start(box_lease, False, True, 0) + box_lease.show() + self._vbox.pack_start(vbox_identity, False, True, 0) vbox_identity.show() |