Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTony Anderson <tony@traveler.(none)>2011-01-20 12:44:04 (GMT)
committer Tony Anderson <tony@traveler.(none)>2011-01-20 12:44:04 (GMT)
commitc6e1364c97d5bb4e79a4d5ff4c3a2e883fd7ebfa (patch)
treeb065a8407850864693f2ee2c4e04326ce53eb8b9
parent4d08808156d3ece2c76811fa885b0b30f0433d92 (diff)
version 11.12
-rwxr-xr-xactivity/activity.info2
-rwxr-xr-xcgi-bin/activities.py28
-rwxr-xr-xcgi-bin/fetch_milestone.py2
-rwxr-xr-xlaunch.py42
4 files changed, 44 insertions, 30 deletions
diff --git a/activity/activity.info b/activity/activity.info
index ec26b17..cfcbc40 100755
--- a/activity/activity.info
+++ b/activity/activity.info
@@ -1,5 +1,5 @@
[Activity]
-#version = 11.11
+#version = 11.12
name = Learn
service_name = org.olerwanda.Learn
icon = activity-learn
diff --git a/cgi-bin/activities.py b/cgi-bin/activities.py
index 13b5f99..8176609 100755
--- a/cgi-bin/activities.py
+++ b/cgi-bin/activities.py
@@ -4,6 +4,16 @@ import os, sys, subprocess
from sugar.activity import activity
from path import path
+try:
+ from sugar import profile
+ _using_gconf = False
+except ImportError:
+ _using_gconf = True
+try:
+ import gconf
+except ImportError:
+ _using_gconf = False
+
DATAPATH = path(activity.get_activity_root())/ 'data'
WORKPATH = DATAPATH / 'work'
USB = path('/media/2011/courseware')
@@ -32,18 +42,12 @@ def sftp(script, folder = None):
return 0
def getNick():
- nickname = 'Funknown'
- pth = path('/home') / 'olpc' / '.sugar' / 'default' / 'config'
- if pth.exists():
- fin = open(pth,'r')
- txt = fin.read()
- fin.close
- lines = txt.split('\n')
- for line in lines:
- if line.find('nickname') > -1:
- pos = line.find('=')
- nickname = line[pos+1:].strip()
- return nickname
+ """ Returns nick from Sugar """
+ if _using_gconf:
+ client = gconf.client_get_default()
+ return client.get_string('/desktop/sugar/user/nick')
+ else:
+ return profile.get_nick_name()
def getInstalled(subject):
pth = path('content') / subject
diff --git a/cgi-bin/fetch_milestone.py b/cgi-bin/fetch_milestone.py
index 4062e32..764014a 100755
--- a/cgi-bin/fetch_milestone.py
+++ b/cgi-bin/fetch_milestone.py
@@ -157,7 +157,7 @@ txt = fin.read()
fin.close()
student_record = eval(txt)
grade = student_record['grade']
-if grade == 'F':
+if grade[0] == 'F':
mode = 'faculty'
else:
mode = 'student'
diff --git a/launch.py b/launch.py
index e731495..2fe1771 100755
--- a/launch.py
+++ b/launch.py
@@ -9,6 +9,17 @@ from path import path
import CGIHTTPServer
import BaseHTTPServer
+try:
+ from sugar import profile
+ _using_gconf = False
+except ImportError:
+ _using_gconf = True
+try:
+ import gconf
+except ImportError:
+ _using_gconf = False
+ self.using_gconf = _using_gconf
+
DATAPATH = path(activity.get_activity_root()) / "data"
WORKPATH = DATAPATH / "work"
@@ -19,26 +30,17 @@ log = open('/tmp/loglaunch','w')
class Learn(activity.Activity):
def __init__(self, handle):
activity.Activity.__init__(self, handle)
+ self.using_gconf = _using_gconf
+ print >> log, 'gconf?', self.using_gconf
+ self.nickname = self.get_nick_from_sugar()
+ print >> log, 'nick', self.nickname
+
#get serial number and nick
fin = open('/ofw/serial-number','r')
self.serial = fin.read()[:11]
fin.close()
- try:
- fin = open('/home/olpc/.sugar/default/config','r')
- txt = fin.read()
- fin.close
- lines = txt.split('\n')
- for line in lines:
- if line.find('nickname') > -1:
- pos = line.find('=')
- self.nickname = line[pos+1:].strip()
- if self.nickname[:1] == 'p':
- self.grade = self.nickname[:2]
- else:
- self.grade = 'F'
- except:
- self.nickname = 'p6none'
- self.grade = 'p6'
+ self.nickname = self.get_nick_from_sugar()
+ self.grade = self.nickname[:2]
print >> log, self.serial, self.nickname, self.grade
if not path(DATAPATH / self.nickname).exists():
@@ -85,6 +87,14 @@ class Learn(activity.Activity):
subprocess.call(cmd, shell=True)
activity_close()
+ def get_nick_from_sugar(self):
+ """ Returns nick from Sugar """
+ if self.using_gconf:
+ client = gconf.client_get_default()
+ return client.get_string('/desktop/sugar/user/nick')
+ else:
+ return profile.get_nick_name()
+
def write_file(self, file_path):
#we need to read the student record
fin = open(DATAPATH / self.nickname,'r')