diff options
author | Ajay Garg <ajay@activitycentral.com> | 2012-10-16 12:03:13 (GMT) |
---|---|---|
committer | Ajay Garg <ajay@activitycentral.com> | 2012-10-16 12:04:30 (GMT) |
commit | ea0162bf509ae87cdf0b2236824b87d037a2b5da (patch) | |
tree | ff245f312f7b575a3874cc5510526b18612416f7 | |
parent | cc614c2e69ad92a1ac00cb4911523a0e29240f2e (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 | 29 | ||||
-rw-r--r-- | extensions/cpsection/aboutcomputer/view.py | 5 |
2 files changed, 34 insertions, 0 deletions
diff --git a/extensions/cpsection/aboutcomputer/model.py b/extensions/cpsection/aboutcomputer/model.py index d0a9c9c..0732b1b 100644 --- a/extensions/cpsection/aboutcomputer/model.py +++ b/extensions/cpsection/aboutcomputer/model.py @@ -21,6 +21,7 @@ import re import subprocess from gettext import gettext as _ import errno +from datetime import datetime import dbus @@ -39,6 +40,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 +57,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 %s + str_days_remaining = _('%s days remaining' % str(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 0560963..ac89e08 100644 --- a/extensions/cpsection/aboutcomputer/view.py +++ b/extensions/cpsection/aboutcomputer/view.py @@ -70,6 +70,11 @@ class AboutComputer(SectionView): self._model.get_serial_number(), vbox_identity) + self._setup_component_if_applicable(None, + _('Lease:'), + self._model.get_lease_days(), + vbox_identity) + self._vbox.pack_start(vbox_identity, False, True, 0) vbox_identity.show() |