Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAjay Garg <ajay@activitycentral.com>2012-10-16 09:12:00 (GMT)
committer Ajay Garg <ajay@activitycentral.com>2012-10-16 09:17:08 (GMT)
commit6cb4ab9c4494161594059eb797ca3500577404bd (patch)
tree6e5a420b5ab38b42384d5fbc4d1a25d6cff2b23a
parentf41468507d1e814839c4a81dd001066bc2cf0a6b (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.py30
-rw-r--r--extensions/cpsection/aboutcomputer/view.py15
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()