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-03 06:05:36 (GMT)
committer Tony Anderson <tony@traveler.(none)>2011-01-03 06:05:36 (GMT)
commit2d6b3633bb9449ef0e7af8b12c1684491592c3b7 (patch)
tree77d469ecbc0eb0fdb8387b4a0a24009756ccac55
parentcbd270d20b6d180524d120319c0b21de1f9296b3 (diff)
add student mode to version 10
-rwxr-xr-xcgi-bin/fetch_milestone.py275
-rwxr-xr-xcgi-bin/logged_in.py11
-rwxr-xr-xcgi-bin/results.py308
-rwxr-xr-xcgi-bin/session.py23
-rwxr-xr-xcgi-bin/set_up_main_menu.py199
-rwxr-xr-xcontent/English/activities.js5
-rwxr-xr-xcontent/English/index.html59
-rwxr-xr-xcontent/English/ladder.html (renamed from content/English/p4.html)8
-rwxr-xr-xcontent/English/p1.js311
-rwxr-xr-xcontent/English/p2.html33
-rwxr-xr-xcontent/English/p2.js322
-rwxr-xr-xcontent/English/p3.html33
-rwxr-xr-xcontent/English/p3.js311
-rwxr-xr-xcontent/English/p4.js214
-rwxr-xr-xcontent/English/p5.html35
-rwxr-xr-xcontent/English/p5.js199
-rwxr-xr-xcontent/English/p6.html33
-rwxr-xr-xcontent/English/p6.js194
-rwxr-xr-xcontent/English11/activities.js30
-rwxr-xr-xcontent/English11/p41.js12
-rwxr-xr-xcontent/English11/p42.js12
-rwxr-xr-xcontent/English11/p43.js11
-rwxr-xr-xcontent/English11/p51.js11
-rwxr-xr-xcontent/English11/p52.js9
-rwxr-xr-xcontent/English11/p53.js9
-rwxr-xr-xcontent/English11/p61.js9
-rwxr-xr-xcontent/English11/p62.js9
-rwxr-xr-xcontent/English11/p63.js9
-rwxr-xr-xcontent/Mathematics/activities.js15
-rwxr-xr-xcontent/Mathematics/index.html67
-rwxr-xr-xcontent/Mathematics/ladder.html (renamed from content/English/p1.html)10
-rwxr-xr-xcontent/Mathematics/p1.html33
-rwxr-xr-xcontent/Mathematics/p1.js144
-rwxr-xr-xcontent/Mathematics/p2.html33
-rwxr-xr-xcontent/Mathematics/p2.js146
-rwxr-xr-xcontent/Mathematics/p3.html33
-rwxr-xr-xcontent/Mathematics/p3.js145
-rwxr-xr-xcontent/Mathematics/p4.html33
-rwxr-xr-xcontent/Mathematics/p4.js145
-rwxr-xr-xcontent/Mathematics/p5.html33
-rwxr-xr-xcontent/Mathematics/p5.js143
-rwxr-xr-xcontent/Mathematics/p6.html33
-rwxr-xr-xcontent/Mathematics/p6.js157
-rwxr-xr-xcontent/Mathematics11/activities.js86
-rwxr-xr-xcontent/Mathematics11/index.html8
-rwxr-xr-xcontent/Mathematics11/p41.js9
-rwxr-xr-xcontent/Mathematics11/p42.js9
-rwxr-xr-xcontent/Mathematics11/p43.js9
-rwxr-xr-xcontent/Mathematics11/p51.js27
-rwxr-xr-xcontent/Mathematics11/p52.js9
-rwxr-xr-xcontent/Mathematics11/p53.js9
-rwxr-xr-xcontent/Mathematics11/p61.js9
-rwxr-xr-xcontent/Mathematics11/p62.js9
-rwxr-xr-xcontent/Mathematics11/p63.js9
-rwxr-xr-xcontent/css/global.css5
-rwxr-xr-xcontent/index.html20
-rwxr-xr-xcontent/js/global.js9
-rwxr-xr-xcontent/js/learner_lesson.js224
-rwxr-xr-xcontent/js/learner_subject.js216
-rwxr-xr-xcontent/js/lesson.js2
-rwxr-xr-xcontent/js/navigation.js4
-rwxr-xr-xcontent/js/subject.js4
-rwxr-xr-xlaunch.py64
63 files changed, 1537 insertions, 3068 deletions
diff --git a/cgi-bin/fetch_milestone.py b/cgi-bin/fetch_milestone.py
index 42f4393..3bd1692 100755
--- a/cgi-bin/fetch_milestone.py
+++ b/cgi-bin/fetch_milestone.py
@@ -7,6 +7,7 @@ from path import path
DATAPATH = path(activity.get_activity_root())/ 'data'
WORKPATH = DATAPATH / 'work'
+USB = path('/media/CW/content')
MOODLE_ENGLISH = [0,20,21,9,10,11,22]
MOODLE_ENGLISH11 = [0,23,24,25,26,27,28,29,30,31]
MOODLE_MATHEMATICS = [0,13,14,15,16,17,18]
@@ -111,85 +112,207 @@ def get_course(year, milestone):
course = str(MOODLE_MATHEMATICS[idx])
return course, grde
+def update_color():
+ #
+ # update color in .js for grade
+ #
+ pth = path('content') / subject
+ fullpth = pth / 'p' + str(grde) + '.js'
+ #read p*.js
+ fin = open(pth / 'p' + str(grde) + '.js','r')
+ txt = fin.read()
+ fin.close()
+ lines = txt.split('\n')
+ newlines = []
+ for line in lines:
+ if line.find('Blue')<0 and line.find('Cyan')<0:
+ newlines.append(line)
+ continue
+ entry = eval(line)[0]
+ if entry[4] == milestone:
+ if operation == 'download':
+ entry[5] = 'Blue'
+ else:
+ entry[5] = 'Cyan'
+ newlines.append(str(entry)+',')
+ txtout = ""
+ for line in newlines:
+ txtout = txtout + line + '\n'
+ fout = open(fullpth,'w')
+ fout.write(txtout)
+ fout.close()
+
+def update_activities_js():
+ #
+ # update activities.js
+ #
+ #let's create a new activities.js file based on installed milestones
+ entry = ['0','0','milestone','m','x','color']
+ #we add a line for each milestone that is installed
+ pth = path('content') / subject
+ temp = pth.dirs()
+ milestones = []
+ for item in temp:
+ milestones.append(str(item.namebase))
+ milestones.remove('karma')
+ txtout = 'var activities = [\n'
+ for milestone in milestones:
+ newentry = entry
+ newentry[3] = milestone.namebase[:4]
+ newentry[4] = milestone.namebase
+ newentry[5] = 'Blue'
+ txtout = txtout + str(newentry) + ',\n'
+ txtout = txtout + '];\nvar assetlist = [];\nvar logos = [];\n'
+ #write activities.js
+ fout = open(pth / 'activities.js','w')
+ fout.write(txtout)
+ fout.close()
+
+def process_cw_mode(year, milestone):
+ course, grde = get_course(year,milestone)
+ if milestone[:2] == 'en':
+ subject = 'English'
+ else:
+ subject = 'Mathematics'
+ if year == '2011':
+ subject = subject + '11'
+ pth = path('content') / subject / milestone
+ if pth.exists():
+ operation = 'remove'
+ else:
+ operation = 'download'
+ #process request
+ if operation == 'download':
+ get_from_ss(year, course, milestone)
+ else:
+ #for now, do not remove 2011 milestones
+ if year == '2010':
+ pth = path('content') / subject / milestone
+ subprocess.call('rm -rf ' + pth, shell=True)
+ update_color()
+ update_activities_js()
+
+def getInstalled(subject):
+ pth = path('content') / subject
+ temp = pth.dirs()
+ milestones = []
+ for item in temp:
+ milestones.append(str(item.namebase))
+ milestones.remove('karma')
+ return milestones
+
+def getMilestone(subject, milestone):
+ #only from /media/CW/content for now
+ print >>log, 'getMilestone', subject, milestone
+ if(not USB.exists()):
+ print >> log, 'no usb drive installed'
+ return
+ pth = USB / subject
+ cmd = 'cp -r ' + pth / milestone + ' ' + 'content/'+ subject
+ subprocess.call(cmd,shell=True)
+
+def get_student_record(student, classe):
+ known = False
+ #read student record
+ try:
+ fin = open(DATAPATH / student,'r')
+ txt = fin.read()
+ fin.close()
+ student_record = eval(txt)
+ except:
+ student_record = {}
+ #student is known if there is a student record and the class is the same
+ try:
+ grade = student_record['grade']
+ except:
+ grade = 'unknown'
+ if not grade == 'unknown':
+ if classe == 'unknown' or classe == grade:
+ known = True
+ try:
+ milestones = student_record['milestones']
+ except:
+ student_record['milestones'] = ['1.1','1.1']
+ else:
+ if classe == 'unknown':
+ grade = 'P4'
+ else:
+ grade = classe
+ if not known:
+ #create new student record
+ student_record = {}
+ student_record['grade'] = grade
+ student_record['milestones'] = ['1.1','1.1']
+ student_record['progress'] = {}
+ txtout = str(student_record)
+ fout = open(DATAPATH / student,'w')
+ fout.write(txtout)
+ fout.close()
+ print >> log, 'student_record known',known
+ return student_record
+
+def process_milestones(subject, grade, current_ms):
+ next_ms = str(int(current_ms)+1)
+ if len(current_ms)<2:
+ current_ms = '0'+current_ms
+ if len(current_ms)<2:
+ current_ms = '0'+current_ms
+ if len(next_ms)<2:
+ next_ms = '0'+next_ms
+ if subject == 'English':
+ sbj = 'en'
+ else:
+ sbj = 'ma'
+ current_milestone = (sbj+grade+'m'+current_ms).lower()
+ next_milestone = (sbj+grade+'m'+next_ms).lower()
+ print >> log, 'process_student_mode',grade,current_milestone,next_milestone
+ installed = getInstalled(subject)
+ print >> log, 'installed',subject,installed
+ if not current_milestone in installed:
+ getMilestone(subject, current_milestone);
+ if not next_milestone in installed:
+ getMilestone(subject, next_milestone)
+
+def process_student(student,student_record):
+ grade = student_record['grade']
+ en_milestone = student_record['milestones'][0]
+ ma_milestone = student_record['milestones'][1]
+ print>>log, grade, en_milestone, ma_milestone
+ #English
+ current_ms = en_milestone.split('.')[0]
+ process_milestones('English',grade, current_ms)
+ #Mathematics
+ current_ms = ma_milestone.split('.')[1]
+ process_milestones('Mathematics',grade, current_ms)
+
#main
-#get paramters: year, milestone, operation
+#
+#get paramters: mode, year, milestone, student name
+#
cgitb.enable(display=True)
print 'Content-Type:text/html\n\n'
-form = cgi.FieldStorage()
-year = form.getfirst('year', default='2010')
-milestone = form.getfirst('milestone', default='enp4m1')
log = open('/tmp/logfm','w')
-course, grde = get_course(year,milestone)
-if milestone[:2] == 'en':
- subject = 'English'
-else:
- subject = 'Mathematics'
-if year == '2011':
- subject = subject + '11'
-pth = path('content') / subject / milestone
-if pth.exists():
- operation = 'remove'
-else:
- operation = 'download'
-#process request
-if operation == 'download':
- get_from_ss(year, course, milestone)
+form = cgi.FieldStorage()
+mode = form.getfirst('mode', default='CW')
+print >> log, 'mode', mode
+if mode == 'CW':
+ year = form.getfirst('year', default='2010')
+ milestone = form.getfirst('milestone', default='enp4m1')
+ process_cw_mode(year, milestone)
else:
- #for now, do not remove 2011 milestones
- if year == '2010':
- pth = path('content') / subject / milestone
- subprocess.call('rm -rf ' + pth, shell=True)
-#
-# update color in .js for grade
-#
-pth = path('content') / subject
-fullpth = pth / 'p' + str(grde) + '.js'
-#read p*.js
-fin = open(pth / 'p' + str(grde) + '.js','r')
-txt = fin.read()
-fin.close()
-lines = txt.split('\n')
-newlines = []
-for line in lines:
- if line.find('Blue')<0 and line.find('Cyan')<0:
- newlines.append(line)
- continue
- entry = eval(line)[0]
- if entry[4] == milestone:
- if operation == 'download':
- entry[5] = 'Blue'
- else:
- entry[5] = 'Cyan'
- newlines.append(str(entry)+',')
-txtout = ""
-for line in newlines:
- txtout = txtout + line + '\n'
-fout = open(fullpth,'w')
-fout.write(txtout)
-fout.close()
-#
-# update activities.js
-#
-#let's create a new activities.js file based on installed milestones
-entry = ['0','0','milestone','m','x','color']
-#we add a line for each milestone that is installed
-pth = path('content') / subject
-temp = pth.dirs()
-milestones = []
-for item in temp:
- milestones.append(str(item.namebase))
-milestones.remove('karma')
-txtout = 'var activities = [\n'
-for milestone in milestones:
- newentry = entry
- newentry[3] = milestone.namebase[:4]
- newentry[4] = milestone.namebase
- newentry[5] = 'Blue'
- txtout = txtout + str(newentry) + ',\n'
-txtout = txtout + '];\nvar assetlist = [];\nvar logos = [];\n'
-#write activities.js
-fout = open(pth / 'activities.js','w')
-fout.write(txtout)
-fout.close()
+ student = form.getfirst('student', default='student')
+ student = student.lower()
+ #log student in
+ fout = open('/tmp/learner','w')
+ fout.write(student)
+ fout.close()
+ classe = form.getfirst('class',default = 'unknown')
+ print >> log, 'student', student, 'grade', classe
+ student_record = get_student_record(student, classe)
+ print >> log, 'student_record returned',student, student_record
+ try:
+ process_student(student,student_record)
+ except:
+ print >> log, 'process_student failed', sys.exc_info()[:2]
+ log3.close()
log.close()
-
diff --git a/cgi-bin/logged_in.py b/cgi-bin/logged_in.py
new file mode 100755
index 0000000..b8d5e38
--- /dev/null
+++ b/cgi-bin/logged_in.py
@@ -0,0 +1,11 @@
+#!/usr/bin/python
+import cgi, cgitb
+cgitb.enable(display=True)
+print 'Content-Type:text/html\n\n'
+try:
+ fin = open('/tmp/learner','r')
+ learner = fin.read()
+ fin.close()
+except:
+ learner = 'unknown'
+print learner
diff --git a/cgi-bin/results.py b/cgi-bin/results.py
index 7360a20..cd3a82e 100755
--- a/cgi-bin/results.py
+++ b/cgi-bin/results.py
@@ -1,100 +1,236 @@
#!/usr/bin/env python
-import sys
+import sys, subprocess, time
import cgi, cgitb
+from sugar.activity import activity
+from path import path
-base = '/home/olpc/.sugar/default'
-sys.stderr = sys.stdout
-cgitb.enable(display=True)
+DATAPATH = path(activity.get_activity_root())/ 'data'
+log = open('/tmp/logr','w')
+retval = '0'
+cgitb.enable(display=True)
print 'Content-type:text/html\n\n'
+#parameters are activity, score
form = cgi.FieldStorage()
score = form.getfirst('score', default='70')
-url = form.getfirst(
- 'url',
- default='http://localhost:8008/content/English/enp1m1/a01.html'
- )
-print 'url',url
-pos0 = url.find('content')
-pos1 = url[pos0:].find('/')
-pos2 = url[pos0+pos1+1:].find('/')
-subject = url[pos0+pos1+1:pos0+pos1+pos2+1]
-pos3 = url[pos0+pos1+pos2+2:].find('/')
-milestone=url[pos0+pos1+pos2+2:pos0+pos1+pos2+pos3+2]
-ms = milestone[5]
-s = int(score)
-if s < 70:
- print '0'
-else:
- #get basic information
- fin = open(base + '/config','r');
- txt = fin.read()
+print >> log, 'score', score
+#close current session (/tmp/current_session)
+#update student record (/tmp/learner)
+#update milestone activities.js
+#if milestone is complete,
+#update subject activities.js
+#
+#update activities.js for next milestone
+#check for log in
+try:
+ fin=open('/tmp/learner','r')
+ learner = fin.read()
fin.close()
- lines = txt.split('\n')
- nick = 'nick'
- for line in lines:
- if line.find('nickname') > -1:
- pos = line.find('=')
- nick = line[pos+1:].strip()
- pth = base+'/org.olerwanda.Learn/data/'+nick
- print 'path=',pth
- fin = open(pth,'r')
- txt = fin.read()
- fin.close()
- result = eval(txt)
- t = result[subject]
- scores = t[ms]
- scores.append(score)
- t[ms]=scores
- result[subject]=t
- fout = open(pth,'w')
- fout.write(str(result))
- fout.close()
- #update color in activities.js
- #if necessary update color in subject activities.js
- pth = '/home/olpc/Activities/Learn.activity/content/'+subject+'/'
- mname = subject[:2].lower()
- fullpth = pth + milestone + '/activities.js'
- fin = open(fullpth,'r')
+except:
+ #no one is logged in
+ print >> log, 'no one is logged in'
+ learner = 'unknown'
+print >> log, 'learner',learner
+#read student record
+try:
+ fin = open(DATAPATH / learner,'r')
txt = fin.read()
fin.close()
- lines = txt.split()
- flag = False
- finalresult = '1'
- for line in lines:
- if line.find('Red') > -1:
- flag = True
- line.replace('Red','Green')
- if flag:
- if line.find('Blue') > -1:
- line.replace('Blue','Red')
- flag = False
- else:
- finalresult = '2'
- txtout = '\n'.join(lines)
- fout = open(fullpth,'w')
- fout.write(txtout)
- fout.close()
- if finalresult == '1':
- print finalresult
- #advance to the next milestone
- fullpth = pth + 'activities.js'
- fin = open(fullpth,'r')
- txt = fin.read()
+except:
+ print >> log, 'no matching student record'
+ #no matching student_record - force blank student_record
+ learner = 'unknown'
+ txt = '{}'
+try:
+ student_record = eval(txt)
+except:
+ student_record = {}
+ student_record['grade'] = ''
+ student_record['milestones'] = ['1.1','1.1']
+ student_record['progress'] = []
+ print >> log, 'student_record eval failed',sys.exc_info()[:2]
+ print >> log, 'student record txt',txt
+#read current_session
+try:
+ fin = open('/tmp/current_session','r')
+ txt = fin.read()
fin.close()
- lines = txt.split('/n')
- flag = False
+except:
+ #no session open
+ txt = ""
+ print >> log,'no session open'
+print >> log, 'session', txt
+session_data = txt.split(',')
+if len(session_data)>1:
+ activity=session_data[0]
+ starttime = session_data[1]
+ stoptime = str(int(time.time()))
+ result = score
+ print >> log, 'session data', activity, starttime, stoptime, result
+else:
+ activity = ""
+ result = ''
+ print >> log, 'no session data'
+#update activities.js
+print >> log, 'update activities.js', activity, result
+if len(activity)==10 and int(result) >= 70:
+ #update activities.js
+ milestone = activity[:7]
+ if activity[:2] == 'en':
+ subject = 'English'
+ else:
+ subject = 'Mathematics'
+ pth = path('content') / subject / milestone / 'activities.js'
+ print >> log, 'read activities activities.js',pth
+ try:
+ fin = open(pth,'r')
+ txt = fin.read()
+ fin.close()
+ except:
+ print 'open activities activities.js failed', sys.exc_info()[:2]
+ lines = txt.split('\n')
+ txtout = ""
+ nxtflag = False
+ print >>log, 'activities.js lines',len(lines)
for line in lines:
- if line.find('Red') > -1:
- line.replace('Red','Green')
- flag = True
- if flag and line.find('Blue') > -1:
- line.replace('Blue','Red')
+ line = line + '\n'
+ if activity in line:
+ nxtflag=True
+ retval = '1'
+ txtout=txtout+line.replace('red','green')
+ elif nxtflag and line.find('blue')>-1:
+ nxtflag=False
+ txtout=txtout+line.replace('blue','red')
else:
- finalresult = '3'
- txtout = '\n'.join(lines)
- fout = open(fullpth,'w')
- fout.write(txtout)
- fout.close()
- print finalresult
-
+ txtout = txtout+line
+ try:
+ fout = open(pth,'w')
+ fout.write(txtout)
+ fout.close()
+ except:
+ print >> log, 'write activities activities.js failed',sys.exc_info()[:2]
+ print >> log, 'activity activities.js updated', nxtflag
+ #if nxtflag == True - means end of milestone
+ if nxtflag:
+ #update milestones in student record
+ try:
+ milestones = student_record['milestones']
+ print >> log, 'milestones', milestones
+ if subject == 'English':
+ msstate = milestones[0]
+ else:
+ msstate = milestones[1]
+ print >> log, 'msstate', msstate
+ try:
+ temp = msstate.split('.')
+ msstr = int(temp[0])+1
+ temp[0] = str(int(msstr))
+ temp[1] = '1'
+ msstate = temp[0]+'.'+temp[1]
+ except:
+ print >> log, 'msstate set up failed', sys.exc_info()[:2]
+ if subject == 'English':
+ milestones[0] = msstate
+ else:
+ milestones[1] = msstate
+ student_record['milestones']=milestones
+ except:
+ print >> log, 'update milestones failed',sys.exc_info()[:2]
+ #update activities.js for subject
+ milestone = activity[:7]
+ pth = path('content') / subject / 'activities.js'
+ print >> log, 'milestone',milestone,'pth',pth
+ fin = open(pth,'r')
+ txt = fin.read()
+ fin.close()
+ lines = txt.split('\n')
+ txtout = ""
+ nxtmsflag = False
+ for line in lines:
+ line = line + '\n'
+ if milestone in line:
+ nxtmsflag = True
+ retval = '2'
+ txtout = txtout + line.replace('red','green')
+ elif nxtmsflag == True:
+ if line.find('blue')>0:
+ nxtmsflag = False
+ txtout = txtout + line.replace('blue','red')
+ elif line.find('Blue')>0:
+ nxtmsflag = False
+ txtout = txtout + line.replace('Blue','red')
+ else:
+ print >> log, nxtmsflag, line
+ txtout = txtout + line
+ fout = open(pth,'w')
+ fout.write(txtout)
+ fout.close()
+ if nxtmsflag:
+ #what do we do now - this learner is done!
+ print >> log, 'learner is done!'
+ retval = '3'
+ #update first activity in next milestone
+ print >> log, 'first activity in next milestone', milestone
+ nxt = str(int(milestone[5:7])+1)
+ if len(nxt)<2:
+ nxt = '0'+nxt
+ next_milestone = milestone[:5]+nxt
+ next_activity = next_milestone + 'a01'
+ print >> log, 'next', next_milestone, next_activity
+ pth = path('content') / subject / next_milestone / 'activities.js'
+ print >> log, 'pth', pth
+ fin = open(pth,'r')
+ txt = fin.read()
+ fin.close()
+ lines = txt.split('\n')
+ txtout = ""
+ for line in lines:
+ line = line + '\n'
+ if next_activity in line:
+ t1 = line.replace('Blue','red')
+ txtout = txtout + t1.replace('blue','red')
+ else:
+ txtout = txtout + line
+ fout = open(pth,'w')
+ fout.write(txtout)
+ fout.close()
+ else:
+ #update milestones in student record
+ milestones = student_record['milestones']
+ if subject == 'English':
+ msstate = milestones[0]
+ else:
+ msstate = milestones[1]
+ temp = msstate.split('.')
+ msstr = int(temp[1])+1
+ temp[1] = str(int(msstr))
+ msstate = temp[0]+'.'+temp[1]
+ if subject == 'English':
+ milestones[0] = msstate
+ else:
+ milestones[1] = msstate
+ student_record['milestones']=milestones
+#update student_record
+#if there is a problem, above processing should leave activity = ''
+print >> log, activity, len(activity)
+if len(activity) == 10:
+ try:
+ progress = student_record['progress']
+ status = (starttime, stoptime, result)
+ progress.append({activity:status})
+ student_record['progress'] = progress
+ except:
+ print >> log, 'update progress failed', sys.exc_info()[:2]
+ try:
+ fout = open(DATAPATH / learner,'w')
+ fout.write(str(student_record))
+ fout.close()
+ except:
+ print >> log, 'update student record failed', sys.exc_info()[:2]
+ #close current session - works even if none open
+ subprocess.call('rm -rf /tmp/current_session',shell=True)
+
+print >> log, 'exception?',sys.exc_info()[:2]
+print retval
+log.close()
diff --git a/cgi-bin/session.py b/cgi-bin/session.py
new file mode 100755
index 0000000..cd2b3e0
--- /dev/null
+++ b/cgi-bin/session.py
@@ -0,0 +1,23 @@
+#!/usr/bin/env python
+
+import sys, time
+import cgi, cgitb
+
+log = open('/tmp/logsession','w')
+cgitb.enable(display=True)
+print 'Content-type:text/html\n\n'
+#parameter is activity
+form = cgi.FieldStorage()
+activity = form.getfirst('activity', default='unknown')
+print >> log, 'activity', activity
+#start current_session
+starttime = int(time.time())
+txtout = activity + ',' + str(starttime)
+print >> log, txtout
+try:
+ fout = open('/tmp/current_session','w')
+ txt = fout.write(txtout)
+ fout.close()
+except:
+ print >> log,'write session record failed', sys.exc_info()[:2]
+log.close()
diff --git a/cgi-bin/set_up_main_menu.py b/cgi-bin/set_up_main_menu.py
index a998b25..b04075c 100755
--- a/cgi-bin/set_up_main_menu.py
+++ b/cgi-bin/set_up_main_menu.py
@@ -13,19 +13,118 @@ import CGIHTTPServer
import BaseHTTPServer
import cgi, cgitb
-SUBJECTS = ['English', 'English11', 'Mathematics', 'Mathematics11']
+DATAPATH = path(activity.get_activity_root())/ 'data'
+SUBJECTS = ['English', 'Mathematics']
+MILESTONES = {'English':[5,8,8],'Mathematics':[15,18,18]}
+
+def get_student_record(student):
+ #read student record
+ fin = open(DATAPATH / student,'r')
+ txt = fin.read()
+ fin.close()
+ student_record = eval(txt)
+ return student_record
def get_installed(subject):
pth = path('content') / subject
- temp = pth.dirs()
+ print >> log, 'get_installed', subject, pth
+ try:
+ temp = pth.dirs()
+ except:
+ print >> log, 'get_installed dirs failed',sys.exc_info()[:2]
milestones = []
for milestone in temp:
milestones.append(milestone.namebase)
milestones.sort()
+ milestones.remove('karma')
return milestones
+def create_student_activities_list(current_milestone, current_activity):
+ #create full list for specified class
+ #current milestone color is red, preceding are chartreuse or green, following are
+ #blue or cyan, use installed milestones to set colors
+ # entry = ['0','0','milestone','m','x','color']
+
+ #first update subject activities.js
+ print >> log,'csal',current_milestone,current_activity
+ grade = current_milestone[2:4]
+ subject = current_milestone[:2]
+ if subject == 'en':
+ sbj = 'English'
+ else:
+ sbj = 'Mathematics'
+ print >> log, 'csal', grade, subject, sbj
+ milestones = MILESTONES[sbj]
+ print >> log, 'csal milestones', milestones
+ installed = get_installed(sbj)
+ print >> log, 'csal installed', installed
+ all = milestones[int(grade[1])-4]
+ print >> log, 'csal all',all
+ #we add a line for each milestone
+ txtout = 'var activities = [\n'
+ print >> log, 'create_student_activities_list', all
+ for ms in range(all):
+ #construct milestone_name in form 'enp4m01' or 'map5m01' - assume only term 1
+ strms = str(ms+1)
+ if len(strms)<2:
+ strms = '0' + strms
+ milestone_name = subject + grade.lower() + 'm' + strms
+ print >> log, 'csal milestone_name',milestone_name
+ newentry = []
+ newentry.append('0')
+ newentry.append(strms)
+ newentry.append('milestone')
+ newentry.append(milestone_name[:4])
+ newentry.append(milestone_name)
+ if ms+1<int(current_ms):
+ if milestone_name in installed:
+ color = 'green'
+ else:
+ color = 'chartreuse'
+ elif ms+1>int(current_ms):
+ if milestone_name in installed:
+ color = 'blue'
+ else:
+ color = 'cyan'
+ else:
+ color = 'red'
+ newentry.append(color)
+ txtout = txtout + str(newentry) + ',\n'
+ txtout = txtout + '];\nvar assetList = [];\nvar logos = [];\n'
+ #write activities.js
+ pth = path('content') / sbj
+ print >> log, 'write activities.js', pth, txtout
+ fout = open(pth / 'activities.js','w')
+ fout.write(txtout)
+ fout.close()
+ print >>log, 'subject activities.js written', pth
+ #now we need to update the activities.js for the milestone activities.js
+ #assume existing activities.js is correct except for colors
+ tpth = pth / current_milestone / 'activities.js'
+ print >> log, 'update milestone activities.js', tpth
+ fin = open(tpth,'r')
+ txt = fin.read()
+ fin.close()
+ txtout = ''
+ lines = txt.split('\n')
+ print >>log, 'csal number lines', len(lines)
+ for line in lines:
+ #normalize colors to lower case
+ t1 = line.replace('Blue','blue') + '\n'
+ t2 = t1.replace('Red','red')
+ t3 = t2.replace('red','blue')
+ if current_activity in line:
+ print >> log, 'csal', current_activity, t3
+ txtout = txtout + t3.replace('blue','red')
+ else:
+ txtout = txtout + t3
+ fout = open(tpth,'w')
+ fout.write(txtout)
+ fout.close()
+
def create_activities_list(subject, milestones):
#let's create a new activities.js file based on installed milestones
+ print >> log,'in create_activitie_list!!!'
entry = ['0','0','milestone','m','x','color']
#we add a line for each milestone that is installed
txtout = 'var activities = [\n'
@@ -81,30 +180,88 @@ def update_control_menu(subject, grade, term, milestones):
fout.write(txtout)
fout.close()
+def trim_milestones(subject, grade):
+ #in subject, remove all milestones other than grade
+ #if more than four milestones in grade, remove excess starting at lowest
+ pth = 'content/'+ subject
+ print >> log, 'trim_milestones', subject, grade, pth
+ try:
+ milestones = get_installed(subject)
+ except:
+ print >> log,'get_installed failed',sys.exc_info()[:2]
+ print >> log, 'trim_milestones',pth,len(milestones),milestones
+ for milestone in milestones:
+ if not milestone[2:4] == grade.lower():
+ subprocess('rm -rf ' + pth + '/' + milestone,shell=True)
+ milestones = get_installed(subject)
+ milestones.sort()
+ n = len(milestones)-4
+ if n>0:
+ for i in range(n):
+ subprocess('rm -rf ' + pth + '/' + milestones[i],shell=True)
+
+
#start main processing
cgitb.enable(display=True)
print 'Content-Type:text/html\n\n'
log = open('/tmp/log','w')
-for subject in SUBJECTS:
- if subject[-2:] == '11':
- terms = 3
- grades = 3
- delta = 4
+form = cgi.FieldStorage()
+mode = form.getfirst('mode',default = 'CW')
+print >> log, 'mode', mode
+if not mode=='CW':
+ student = form.getfirst('student', default='unknown')
+ subject = form.getfirst('subject', default='unknown')
+ print >> log, 'form', mode, student, subject
+ #read student record for grade, current_milestones
+ student_record = get_student_record(student)
+ grade = student_record['grade']
+ print >> log, student, grade
+ #remove excess milestones in subject (other grades, more than four from m01)
+ try:
+ trim_milestones(subject, grade)
+ except:
+ print >> log, 'trim_milestones failed', sys.exc_info()[:2]
+ #update activities.js for subject
+ milestones = student_record['milestones']
+ if subject == 'English':
+ sbj = 'en'
else:
- terms = 1
- grades = 6
- delta = 1
- print >> log, 'subject', subject, 'grades', grades, 'terms',terms
- milestones = get_installed(subject)
- milestones.remove('karma')
- print >> log, 'create_activities_list', subject, milestones
- create_activities_list(subject, milestones)
- print >> log, 'created activities_list', subject
- for grade in range(grades):
- for term in range(terms):
- if terms == 1:
- update_control_menu(subject, grade+delta, 0, milestones)
- else:
+ sbj = 'ma'
+ t = milestones[0].split('.')
+ current_ms = t[0]
+ if len(current_ms)<2:
+ current_ms= '0'+current_ms
+ current_act = t[1]
+ if len(current_act)<2:
+ current_act='0'+current_act
+ print >> log, 'current', t, current_ms, current_act
+ current_milestone = sbj+grade.lower()+'m'+current_ms
+ current_activity = current_milestone+'a'+current_act
+ print >> log, 'create_student_activities_list',current_milestone,current_activity
+ try:
+ create_student_activities_list(current_milestone,current_activity)
+ except:
+ print >> log, 'create_student_activities_list failed', sys.exc_info()[:2]
+ print >> log,'created student activities list',current_milestone, current_activity
+else:
+ for subject in SUBJECTS:
+ if mode == 'CW':
+ terms = 3
+ grades = 3
+ delta = 4
+ subject = subject+'11'
+ else:
+ terms = 1
+ grades = 6
+ delta = 1
+ print >> log, 'mode', mode, 'subject', subject, 'grades', grades, 'terms',terms
+ milestones = get_installed(subject)
+ milestones.remove('karma')
+ print >> log, 'create_activities_list', subject, milestones
+ create_activities_list(subject, milestones)
+ print >> log, 'created activities_list', subject
+ for grade in range(grades):
+ for term in range(terms):
update_control_menu(subject, grade+delta, term+1, milestones)
print >> log, 'done'
log.close()
diff --git a/content/English/activities.js b/content/English/activities.js
index d725a14..e5da164 100755
--- a/content/English/activities.js
+++ b/content/English/activities.js
@@ -1,4 +1,9 @@
var activities = [
+['0', '01', 'milestone', 'enp4', 'enp4m01', 'green'],
+['0', '02', 'milestone', 'enp4', 'enp4m02', 'red'],
+['0', '03', 'milestone', 'enp4', 'enp4m03', 'cyan'],
+['0', '04', 'milestone', 'enp4', 'enp4m04', 'cyan'],
+['0', '05', 'milestone', 'enp4', 'enp4m05', 'cyan'],
];
var assetList = [];
var logos = [];
diff --git a/content/English/index.html b/content/English/index.html
index 62d7d1e..da4592c 100755
--- a/content/English/index.html
+++ b/content/English/index.html
@@ -9,11 +9,64 @@
<script type="text/javascript" src="../js/jquery-ui-1.js"></script>
<script type="text/javascript" src="../js/karma.js"></script>
<script type="text/javascript" src="../js/global.js"></script>
- <script type="text/javascript" src="../js/lesson.js"></script>
<script type="text/javascript" src="../js/jquery.svg.js"></script>
- <script type="text/javascript" src="../js/subject.js"></script>
<script type="text/javascript" src="../js/navigation.js"></script>
<script type="text/javascript" src="activities.js"></script>
+ <script type="text/javascript">
+
+ function getName(){
+
+ name = $('#login').val()
+ grade = $('#grade').val();
+ if (name.length == 0){
+ ('#line4')
+ .one('click',getName);
+ return;
+ };
+
+
+ $('<div id="txtFetch")>')
+ .load('http://localhost:8008/cgi-bin/fetch_milestone.py',
+ {'mode':'Student','student':name,'class':grade},
+ function(responseTxt, status, xhr){
+
+ $('<div id="txtMain">')
+ .load('http://localhost:8008/cgi-bin/set_up_main_menu.py',
+ {'mode':'Student','student':name,'subject':'English'},
+ function(responseTxt, status, xhr){
+ window.location = './ladder.html'
+ })
+ })
+ };
+
+ $(function(){
+ $('<div id="line0" />')
+ .load('http://localhost:8008/cgi-bin/logged_in.py',
+ function(responseTxt, status, xhr){
+ pos = responseTxt.indexOf('unknown');
+ if (pos == -1){
+ window.location = './ladder.html'
+ };
+ });
+ $('<div id="line1" />')
+ .html('<h1>Welcome to the Learn.activity</h1>')
+ .appendTo('#content')
+ $('<div id="line2" />')
+ .html('<p>Please enter your name and class ("P4","P5","P6")</p>')
+ .appendTo('#content')
+ $('<div id="line3" />')
+ .html("<p><input id='login' label='name' value ='' type='text' /></p>")
+ .appendTo('#content')
+ $('<div id="line3" />')
+ .html("<p><input id='grade' label='class' value ='' type='text' /></p>")
+ .appendTo('#content')
+ $('<div id="line4" />')
+ .html("<p>Click here when you are finished</p>")
+ .appendTo('#content')
+ $('#line4')
+ .one('click',getName)
+ });
+ </script>
</head>
<body>
<div id="header">
@@ -27,6 +80,6 @@
<div title="Quit" id="linkQuit" class="linkQuit"></div>
</div>
</div>
- <canvas id="ladder"/>
+ <div id="content" />
</body>
</html>
diff --git a/content/English/p4.html b/content/English/ladder.html
index 198de90..28ff111 100755
--- a/content/English/p4.html
+++ b/content/English/ladder.html
@@ -10,13 +10,14 @@
<script type="text/javascript" src="../js/karma.js"></script>
<script type="text/javascript" src="../js/global.js"></script>
<script type="text/javascript" src="../js/jquery.svg.js"></script>
- <script type="text/javascript" src="../js/cw.js"></script>
+ <script type="text/javascript" src="../js/learner_subject.js"></script>
<script type="text/javascript" src="../js/navigation.js"></script>
- <script type="text/javascript" src="p4.js"></script>
+ <script type="text/javascript" src="activities.js"></script>
</head>
<body>
<div id="header">
- <div id="topbtn_left"><div title="home" id="linkBack" class="linkHome" /></div></div>
+ <div id="topbtn_left"><div title="home" id="linkBack" class="linkHome" />
+ </div></div>
<div id="lesson_title">
<img src="../assets/image/title_block_lt.png" width="33" height="75" align = "absmiddle" />
English
@@ -27,6 +28,5 @@
</div>
</div>
<canvas id="ladder"/>
- <div id='content' style = 'height:100px; width:100%'></div>
</body>
</html>
diff --git a/content/English/p1.js b/content/English/p1.js
deleted file mode 100755
index fac081b..0000000
--- a/content/English/p1.js
+++ /dev/null
@@ -1,311 +0,0 @@
-var activities = [
-[0, '1.1', 'milestone', 'enp1', 'enp1m1', 'Cyan'],
-[0, '1.2', 'milestone', 'enp1', 'enp1m2', 'Cyan'],
-[0, '1.3', 'milestone', 'enp1', 'enp1m3', 'Cyan'],
-[0, '1.4', 'milestone', 'enp1', 'enp1m4', 'Cyan'],
-[0, '1.5', 'milestone', 'enp1', 'enp1m5', 'Cyan'],
-[0, '1.6', 'milestone', 'enp1', 'enp1m6', 'Cyan'],
-[0, '1.7', 'milestone', 'enp1', 'enp1m7', 'Cyan'],
-[0, '1.8', 'milestone', 'enp1', 'enp1m8', 'Cyan'],
-];
-var assetList = [];
-var logos = [];
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/content/English/p2.html b/content/English/p2.html
deleted file mode 100755
index 48349bb..0000000
--- a/content/English/p2.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>English </title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <link type="text/css" rel="stylesheet" href="../css/global.css" />
- <link type="image/ico" rel="icon" href="../assets/default/image/favicon.ico" />
- <script type="text/javascript" src="../js/jquery-1.4.js"></script>
- <script type="text/javascript" src="../js/jquery-ui-1.js"></script>
- <script type="text/javascript" src="../js/karma.js"></script>
- <script type="text/javascript" src="../js/global.js"></script>
- <script type="text/javascript" src="../js/lesson.js"></script>
- <script type="text/javascript" src="../js/jquery.svg.js"></script>
- <script type="text/javascript" src="../js/cw.js"></script>
- <script type="text/javascript" src="../js/navigation.js"></script>
- <script type="text/javascript" src="p2.js"></script>
- </head>
- <body>
- <div id="header">
- <div id="topbtn_left"><div title="home" id="linkBack" class="linkHome" /></div></div>
- <div id="lesson_title">
- <img src="../assets/image/title_block_lt.png" width="33" height="75" align = "absmiddle" />
- English
- <img src="../assets/image/title_block_rt.png" width="33" height="75" align = "absmiddle" />
- </div>
- <div id="topbtn_right">
- <div title="Quit" id="linkQuit" class="linkQuit"></div>
- </div>
- </div>
- <canvas id="ladder"/>
- <div id='content' style = 'height:100px; width:100%'></div>
- </body>
-</html>
diff --git a/content/English/p2.js b/content/English/p2.js
deleted file mode 100755
index bcbf2cb..0000000
--- a/content/English/p2.js
+++ /dev/null
@@ -1,322 +0,0 @@
-var activities = [
-[0, '2.1', 'milestone', 'enp2', 'enp2m1', 'Cyan'],
-[0, '2.2', 'milestone', 'enp2', 'enp2m2', 'Cyan'],
-[0, '2.3', 'milestone', 'enp2', 'enp2m3', 'Cyan'],
-[0, '2.4', 'milestone', 'enp2', 'enp2m4', 'Cyan'],
-[0, '2.5', 'milestone', 'enp2', 'enp2m5', 'Cyan'],
-[0, '2.6', 'milestone', 'enp2', 'enp2m6', 'Cyan'],
-[0, '2.7', 'milestone', 'enp2', 'enp2m7', 'Cyan'],
-[0, '2.8', 'milestone', 'enp2', 'enp2m8', 'Cyan'],
-[0, 'k2.1', 'milestone', 'enp2', 'enk2m1', 'Cyan'],
-[0, 'e2.1', 'milestone', 'enp2', 'ene2m1', 'Cyan'],
-];
-var assetList = [];
-var logos = [];
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/content/English/p3.html b/content/English/p3.html
deleted file mode 100755
index dbe413f..0000000
--- a/content/English/p3.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>English </title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <link type="text/css" rel="stylesheet" href="../css/global.css" />
- <link type="image/ico" rel="icon" href="../assets/default/image/favicon.ico" />
- <script type="text/javascript" src="../js/jquery-1.4.js"></script>
- <script type="text/javascript" src="../js/jquery-ui-1.js"></script>
- <script type="text/javascript" src="../js/karma.js"></script>
- <script type="text/javascript" src="../js/global.js"></script>
- <script type="text/javascript" src="../js/lesson.js"></script>
- <script type="text/javascript" src="../js/jquery.svg.js"></script>
- <script type="text/javascript" src="../js/cw.js"></script>
- <script type="text/javascript" src="../js/navigation.js"></script>
- <script type="text/javascript" src="p3.js"></script>
- </head>
- <body>
- <div id="header">
- <div id="topbtn_left"><div title="home" id="linkBack" class="linkHome" /></div></div>
- <div id="lesson_title">
- <img src="../assets/image/title_block_lt.png" width="33" height="75" align = "absmiddle" />
- English
- <img src="../assets/image/title_block_rt.png" width="33" height="75" align = "absmiddle" />
- </div>
- <div id="topbtn_right">
- <div title="Quit" id="linkQuit" class="linkQuit"></div>
- </div>
- </div>
- <canvas id="ladder"/>
- <div id='content' style = 'height:100px; width:100%'></div>
- </body>
-</html>
diff --git a/content/English/p3.js b/content/English/p3.js
deleted file mode 100755
index 3411cd2..0000000
--- a/content/English/p3.js
+++ /dev/null
@@ -1,311 +0,0 @@
-var activities = [
-[0, '3.1', 'milestone', 'enp3', 'enp3m1', 'Cyan'],
-[0, '3.2', 'milestone', 'enp3', 'enp3m2', 'Cyan'],
-[0, '3.3', 'milestone', 'enp3', 'enp3m3', 'Cyan'],
-[0, '3.4', 'milestone', 'enp3', 'enp3m4', 'Cyan'],
-[0, '3.5', 'milestone', 'enp3', 'enp3m5', 'Cyan'],
-[0, '3.6', 'milestone', 'enp3', 'enp3m6', 'Cyan'],
-[0, '3.7', 'milestone', 'enp3', 'enp3m7', 'Cyan'],
-[0, '3.8', 'milestone', 'enp3', 'enp3m8', 'Cyan'],
-[0, 'e3.1', 'milestone', 'enp3', 'ene3m1', 'Cyan'],
-];
-var assetList = [];
-var logos = [];
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/content/English/p4.js b/content/English/p4.js
deleted file mode 100755
index 57515f0..0000000
--- a/content/English/p4.js
+++ /dev/null
@@ -1,214 +0,0 @@
-var activities = [
-[0, '4.1', 'milestone', 'enp4', 'enp4m1', 'Cyan'],
-[0, '4.2', 'milestone', 'enp4', 'enp4m2', 'Cyan'],
-[0, '4.3', 'milestone', 'enp4', 'enp4m3', 'Cyan'],
-[0, '4.4', 'milestone', 'enp4', 'enp4m4', 'Cyan'],
-[0, '4.5', 'milestone', 'enp4', 'enp4m5', 'Cyan'],
-[0, '4.6', 'milestone', 'enp4', 'enp4m6', 'Cyan'],
-[0, 'e4.1', 'milestone', 'enp4', 'ene4m1', 'Cyan'],
-];
-var assetList = [];
-var logos = [];
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/content/English/p5.html b/content/English/p5.html
deleted file mode 100755
index 4895eea..0000000
--- a/content/English/p5.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>English </title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <link type="text/css" rel="stylesheet" href="../css/global.css" />
- <link type="image/ico" rel="icon" href="../assets/default/image/favicon.ico" />
- <script type="text/javascript" src="../js/jquery-1.4.js"></script>
- <script type="text/javascript" src="../js/jquery-ui-1.js"></script>
- <script type="text/javascript" src="../js/karma.js"></script>
- <script type="text/javascript" src="../js/global.js"></script>
- <script type="text/javascript" src="../js/lesson.js"></script>
- <script type="text/javascript" src="../js/jquery.svg.js"></script>
- <script type="text/javascript" src="../js/cw.js"></script>
- <script type="text/javascript" src="../js/navigation.js"></script>
- <script type="text/javascript" src="p5.js"></script>
- </head>
- <body>
- <div id="header">
- <div id="topbtn_left"><div title="home" id="linkBack" class="linkHome" /></div></div>
- <div id="lesson_title">
- <img src="../assets/image/title_block_lt.png" width="33" height="75"
- align="absmiddle" />
- English
- <img src="../assets/image/title_block_rt.png" width="33" height="75"
- align="absmiddle" />
- </div>
- <div id="topbtn_right">
- <div title="Quit" id="linkQuit" class="linkQuit"></div>
- </div>
- </div>
- <canvas id="ladder"/>
- <div id='content' style = 'height:100px; width:100%'></div>
- </body>
-</html>
diff --git a/content/English/p5.js b/content/English/p5.js
deleted file mode 100755
index d78b37f..0000000
--- a/content/English/p5.js
+++ /dev/null
@@ -1,199 +0,0 @@
-var activities = [
-[0, '5.1', 'milestone', 'enp5', 'enp5m1', 'Cyan'],
-[0, '5.2', 'milestone', 'enp5', 'enp5m2', 'Cyan'],
-[0, '5.3', 'milestone', 'enp5', 'enp5m3', 'Cyan'],
-[0, '5.4', 'milestone', 'enp5', 'enp5m4', 'Cyan'],
-];
-var assetList = [];
-var logos = [];
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/content/English/p6.html b/content/English/p6.html
deleted file mode 100755
index 61f72bf..0000000
--- a/content/English/p6.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>English </title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <link type="text/css" rel="stylesheet" href="../css/global.css" />
- <link type="image/ico" rel="icon" href="../assets/default/image/favicon.ico" />
- <script type="text/javascript" src="../js/jquery-1.4.js"></script>
- <script type="text/javascript" src="../js/jquery-ui-1.js"></script>
- <script type="text/javascript" src="../js/karma.js"></script>
- <script type="text/javascript" src="../js/global.js"></script>
- <script type="text/javascript" src="../js/lesson.js"></script>
- <script type="text/javascript" src="../js/jquery.svg.js"></script>
- <script type="text/javascript" src="../js/cw.js"></script>
- <script type="text/javascript" src="../js/navigation.js"></script>
- <script type="text/javascript" src="p6.js"></script>
- </head>
- <body>
- <div id="header">
- <div id="topbtn_left"><div title="home" id="linkBack" class="linkHome" /></div></div>
- <div id="lesson_title">
- <img src="../assets/image/title_block_lt.png" width="33" height="75" align = "absmiddle" />
- English
- <img src="../assets/image/title_block_rt.png" width="33" height="75" align = "absmiddle" />
- </div>
- <div id="topbtn_right">
- <div title="Quit" id="linkQuit" class="linkQuit"></div>
- </div>
- </div>
- <canvas id="ladder"/>
- <div id='content' style = 'height:100px; width:100%'></div>
- </body>
-</html>
diff --git a/content/English/p6.js b/content/English/p6.js
deleted file mode 100755
index 2ad0292..0000000
--- a/content/English/p6.js
+++ /dev/null
@@ -1,194 +0,0 @@
-var activities = [
-[0, '6.1', 'milestone', 'enp6', 'enp6m1', 'Cyan'],
-[0, '6.2', 'milestone', 'enp6', 'enp6m2', 'Cyan'],
-[0, '6.3', 'milestone', 'enp6', 'enp6m3', 'Cyan'],
-[0, '6.4', 'milestone', 'enp6', 'enp6m4', 'Cyan'],
-[0, '6.5', 'milestone', 'enp6', 'enp6m5', 'Cyan'],
-[0, '6.6', 'milestone', 'enp6', 'enp6m6', 'Cyan'],
-[0, 'k6.1', 'milestone', 'enp6', 'enk6m1', 'Cyan'],
-[0, 'e6.1', 'milestone', 'enp6', 'ene6m1', 'Cyan'],
-];
-var assetList = [];
-var logos = [];
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/content/English11/activities.js b/content/English11/activities.js
index d725a14..21d66e3 100755
--- a/content/English11/activities.js
+++ b/content/English11/activities.js
@@ -1,4 +1,34 @@
var activities = [
+['0', '4.01', 'milestone', 'enp4', 'enp411m01', 'Blue'],
+['0', '4.02', 'milestone', 'enp4', 'enp411m02', 'Blue'],
+['0', '4.03', 'milestone', 'enp4', 'enp411m03', 'Blue'],
+['0', '4.04', 'milestone', 'enp4', 'enp411m04', 'Blue'],
+['0', '4.05', 'milestone', 'enp4', 'enp411m05', 'Blue'],
+['0', '4.06', 'milestone', 'enp4', 'enp411m06', 'Blue'],
+['0', '4.07', 'milestone', 'enp4', 'enp411m07', 'Blue'],
+['0', '4.08', 'milestone', 'enp4', 'enp411m08', 'Blue'],
+['0', '4.09', 'milestone', 'enp4', 'enp411m09', 'Blue'],
+['0', '4.10', 'milestone', 'enp4', 'enp411m10', 'Blue'],
+['0', '5.01', 'milestone', 'enp5', 'enp511m01', 'Blue'],
+['0', '5.02', 'milestone', 'enp5', 'enp511m02', 'Blue'],
+['0', '5.03', 'milestone', 'enp5', 'enp511m03', 'Blue'],
+['0', '5.04', 'milestone', 'enp5', 'enp511m04', 'Blue'],
+['0', '5.05', 'milestone', 'enp5', 'enp511m05', 'Blue'],
+['0', '5.06', 'milestone', 'enp5', 'enp511m06', 'Blue'],
+['0', '5.07', 'milestone', 'enp5', 'enp511m07', 'Blue'],
+['0', '5.08', 'milestone', 'enp5', 'enp511m08', 'Blue'],
+['0', '5.09', 'milestone', 'enp5', 'enp511m09', 'Blue'],
+['0', '5.10', 'milestone', 'enp5', 'enp511m10', 'Blue'],
+['0', '6.01', 'milestone', 'enp6', 'enp611m01', 'Blue'],
+['0', '6.02', 'milestone', 'enp6', 'enp611m02', 'Blue'],
+['0', '6.03', 'milestone', 'enp6', 'enp611m03', 'Blue'],
+['0', '6.04', 'milestone', 'enp6', 'enp611m04', 'Blue'],
+['0', '6.05', 'milestone', 'enp6', 'enp611m05', 'Blue'],
+['0', '6.06', 'milestone', 'enp6', 'enp611m06', 'Blue'],
+['0', '6.07', 'milestone', 'enp6', 'enp611m07', 'Blue'],
+['0', '6.08', 'milestone', 'enp6', 'enp611m08', 'Blue'],
+['0', '6.09', 'milestone', 'enp6', 'enp611m09', 'Blue'],
+['0', '6.10', 'milestone', 'enp6', 'enp611m10', 'Blue'],
];
var assetList = [];
var logos = [];
diff --git a/content/English11/p41.js b/content/English11/p41.js
index 30956dc..ddc7ee5 100755
--- a/content/English11/p41.js
+++ b/content/English11/p41.js
@@ -157,3 +157,15 @@ var logos = [];
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/content/English11/p42.js b/content/English11/p42.js
index ae8f4bd..12b4226 100755
--- a/content/English11/p42.js
+++ b/content/English11/p42.js
@@ -156,3 +156,15 @@ var logos = [];
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/content/English11/p43.js b/content/English11/p43.js
index 0eef40c..78ba46a 100755
--- a/content/English11/p43.js
+++ b/content/English11/p43.js
@@ -157,3 +157,14 @@ var logos = [];
+
+
+
+
+
+
+
+
+
+
+
diff --git a/content/English11/p51.js b/content/English11/p51.js
index d12eeff..aaa7bbc 100755
--- a/content/English11/p51.js
+++ b/content/English11/p51.js
@@ -150,3 +150,14 @@ var logos = [];
+
+
+
+
+
+
+
+
+
+
+
diff --git a/content/English11/p52.js b/content/English11/p52.js
index 4ad6afd..61b7fe1 100755
--- a/content/English11/p52.js
+++ b/content/English11/p52.js
@@ -148,3 +148,12 @@ var logos = [];
+
+
+
+
+
+
+
+
+
diff --git a/content/English11/p53.js b/content/English11/p53.js
index 49c501d..27f6a10 100755
--- a/content/English11/p53.js
+++ b/content/English11/p53.js
@@ -144,3 +144,12 @@ var logos = [];
+
+
+
+
+
+
+
+
+
diff --git a/content/English11/p61.js b/content/English11/p61.js
index f31404c..7dc5a82 100755
--- a/content/English11/p61.js
+++ b/content/English11/p61.js
@@ -144,3 +144,12 @@ var logos = [];
+
+
+
+
+
+
+
+
+
diff --git a/content/English11/p62.js b/content/English11/p62.js
index 75ca9f7..d44210e 100755
--- a/content/English11/p62.js
+++ b/content/English11/p62.js
@@ -144,3 +144,12 @@ var logos = [];
+
+
+
+
+
+
+
+
+
diff --git a/content/English11/p63.js b/content/English11/p63.js
index 6ebfc80..9ee7ed8 100755
--- a/content/English11/p63.js
+++ b/content/English11/p63.js
@@ -145,3 +145,12 @@ var logos = [];
+
+
+
+
+
+
+
+
+
diff --git a/content/Mathematics/activities.js b/content/Mathematics/activities.js
index d725a14..e031b58 100755
--- a/content/Mathematics/activities.js
+++ b/content/Mathematics/activities.js
@@ -1,4 +1,19 @@
var activities = [
+['0', '01', 'milestone', 'map4', 'map4m01', 'red'],
+['0', '02', 'milestone', 'map4', 'map4m02', 'blue'],
+['0', '03', 'milestone', 'map4', 'map4m03', 'blue'],
+['0', '04', 'milestone', 'map4', 'map4m04', 'blue'],
+['0', '05', 'milestone', 'map4', 'map4m05', 'blue'],
+['0', '06', 'milestone', 'map4', 'map4m06', 'blue'],
+['0', '07', 'milestone', 'map4', 'map4m07', 'blue'],
+['0', '08', 'milestone', 'map4', 'map4m08', 'blue'],
+['0', '09', 'milestone', 'map4', 'map4m09', 'blue'],
+['0', '10', 'milestone', 'map4', 'map4m10', 'blue'],
+['0', '11', 'milestone', 'map4', 'map4m11', 'blue'],
+['0', '12', 'milestone', 'map4', 'map4m12', 'blue'],
+['0', '13', 'milestone', 'map4', 'map4m13', 'blue'],
+['0', '14', 'milestone', 'map4', 'map4m14', 'blue'],
+['0', '15', 'milestone', 'map4', 'map4m15', 'blue'],
];
var assetList = [];
var logos = [];
diff --git a/content/Mathematics/index.html b/content/Mathematics/index.html
index 7a2efbb..febaaa4 100755
--- a/content/Mathematics/index.html
+++ b/content/Mathematics/index.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
- <title>English </title>
+ <title>Mathematics </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link type="text/css" rel="stylesheet" href="../css/global.css" />
<link type="image/ico" rel="icon" href="../assets/default/image/favicon.ico" />
@@ -9,24 +9,77 @@
<script type="text/javascript" src="../js/jquery-ui-1.js"></script>
<script type="text/javascript" src="../js/karma.js"></script>
<script type="text/javascript" src="../js/global.js"></script>
- <script type="text/javascript" src="../js/lesson.js"></script>
<script type="text/javascript" src="../js/jquery.svg.js"></script>
- <script type="text/javascript" src="../js/subject.js"></script>
<script type="text/javascript" src="../js/navigation.js"></script>
<script type="text/javascript" src="activities.js"></script>
+ <script type="text/javascript">
+
+ function getName(){
+
+ name = $('#login').val()
+ grade = $('#grade').val();
+ if (name.length == 0){
+ ('#line4')
+ .one('click',getName);
+ return;
+ };
+
+
+ $('<div id="txtFetch")>')
+ .load('http://localhost:8008/cgi-bin/fetch_milestone.py',
+ {'mode':'Student','student':name,'class':grade},
+ function(responseTxt, status, xhr){
+
+ $('<div id="txtMain">')
+ .load('http://localhost:8008/cgi-bin/set_up_main_menu.py',
+ {'mode':'Student','student':name,'subject':'Mathematics'},
+ function(responseTxt, status, xhr){
+ window.location = './ladder.html'
+ })
+ })
+ };
+
+ $(function(){
+ $('<div id="line0" />')
+ .load('http://localhost:8008/cgi-bin/logged_in.py',
+ function(responseTxt, status, xhr){
+ pos = responseTxt.indexOf('unknown');
+ if (pos == -1){
+ window.location = './ladder.html'
+ };
+ });
+ $('<div id="line1" />')
+ .html('<h1>Welcome to the Learn.activity</h1>')
+ .appendTo('#content')
+ $('<div id="line2" />')
+ .html('<p>Please enter your name and class ("P4","P5","P6")</p>')
+ .appendTo('#content')
+ $('<div id="line3" />')
+ .html("<p><input id='login' label='name' value ='' type='text' /></p>")
+ .appendTo('#content')
+ $('<div id="line3" />')
+ .html("<p><input id='grade' label='class' value ='' type='text' /></p>")
+ .appendTo('#content')
+ $('<div id="line4" />')
+ .html("<p>Click here when you are finished</p>")
+ .appendTo('#content')
+ $('#line4')
+ .one('click',getName)
+ });
+ </script>
</head>
<body>
<div id="header">
<div id="topbtn_left"><div title="home" id="linkBack" class="linkHome" /></div></div>
<div id="lesson_title">
- <img src="../assets/image/title_block_lt.png" width="33" height="75" align="absmiddle" />
- Mathematics
+ <img src="../assets/image/title_block_lt.png" width="33" height="75" align = "absmiddle" />
+ Mathematics
<img src="../assets/image/title_block_rt.png" width="33" height="75" align = "absmiddle" />
</div>
<div id="topbtn_right">
- <div title="Quit" id="linkQuit" class="linkQuit"></div>
+ <div title="Quit" id="linkQuit" class="linkQuit"></div>
</div>
</div>
- <canvas id="ladder"/>
+ <div id="content" />
</body>
</html>
diff --git a/content/English/p1.html b/content/Mathematics/ladder.html
index cb1cebf..28ff111 100755
--- a/content/English/p1.html
+++ b/content/Mathematics/ladder.html
@@ -10,16 +10,17 @@
<script type="text/javascript" src="../js/karma.js"></script>
<script type="text/javascript" src="../js/global.js"></script>
<script type="text/javascript" src="../js/jquery.svg.js"></script>
- <script type="text/javascript" src="../js/cw.js"></script>
+ <script type="text/javascript" src="../js/learner_subject.js"></script>
<script type="text/javascript" src="../js/navigation.js"></script>
- <script type="text/javascript" src="p1.js"></script>
+ <script type="text/javascript" src="activities.js"></script>
</head>
<body>
<div id="header">
- <div id="topbtn_left"><div title="home" id="linkBack" class="linkHome" /></div></div>
+ <div id="topbtn_left"><div title="home" id="linkBack" class="linkHome" />
+ </div></div>
<div id="lesson_title">
<img src="../assets/image/title_block_lt.png" width="33" height="75" align = "absmiddle" />
- English v1
+ English
<img src="../assets/image/title_block_rt.png" width="33" height="75" align = "absmiddle" />
</div>
<div id="topbtn_right">
@@ -27,6 +28,5 @@
</div>
</div>
<canvas id="ladder"/>
- <div id='content' style = 'height:100px; width:100%'></div>
</body>
</html>
diff --git a/content/Mathematics/p1.html b/content/Mathematics/p1.html
deleted file mode 100755
index 0413567..0000000
--- a/content/Mathematics/p1.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>English </title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <link type="text/css" rel="stylesheet" href="../css/global.css" />
- <link type="image/ico" rel="icon" href="../assets/default/image/favicon.ico" />
- <script type="text/javascript" src="../js/jquery-1.4.js"></script>
- <script type="text/javascript" src="../js/jquery-ui-1.js"></script>
- <script type="text/javascript" src="../js/karma.js"></script>
- <script type="text/javascript" src="../js/global.js"></script>
- <script type="text/javascript" src="../js/lesson.js"></script>
- <script type="text/javascript" src="../js/jquery.svg.js"></script>
- <script type="text/javascript" src="../js/cw.js"></script>
- <script type="text/javascript" src="../js/navigation.js"></script>
- <script type="text/javascript" src="p1.js"></script>
- </head>
- <body>
- <div id="header">
- <div id="topbtn_left"><div title="home" id="linkBack" class="linkHome" /></div></div>
- <div id="lesson_title">
- <img src="../assets/image/title_block_lt.png" width="33" height="75" align = "absmiddle" />
- Mathematics
- <img src="../assets/image/title_block_rt.png" width="33" height="75" align = "absmiddle" />
- </div>
- <div id="topbtn_right">
- <div title="Quit" id="linkQuit" class="linkQuit"></div>
- </div>
- </div>
- <canvas id="ladder"/>
- <div id='content' style = 'height:100px; width:100%'></div>
- </body>
-</html>
diff --git a/content/Mathematics/p1.js b/content/Mathematics/p1.js
deleted file mode 100755
index d0ba7b0..0000000
--- a/content/Mathematics/p1.js
+++ /dev/null
@@ -1,144 +0,0 @@
-var activities = [
-[0, '1.1', 'milestone', 'map1', 'map1m1', 'Cyan'],
-[0, '1.2', 'milestone', 'map1', 'map1m2', 'Cyan'],
-[0, '1.3', 'milestone', 'map1', 'map1m3', 'Cyan'],
-[0, '1.4', 'milestone', 'map1', 'map1m4', 'Cyan'],
-[0, '1.5', 'milestone', 'map1', 'map1m5', 'Cyan'],
-[0, '1.6', 'milestone', 'map1', 'map1m6', 'Cyan'],
-[0, '1.7', 'milestone', 'map1', 'map1m7', 'Cyan'],
-[0, '1.8', 'milestone', 'map1', 'map1m8', 'Cyan'],
-];
-var assetList = [];
-var logos = [];
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/content/Mathematics/p2.html b/content/Mathematics/p2.html
deleted file mode 100755
index 2ec74f5..0000000
--- a/content/Mathematics/p2.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>English </title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <link type="text/css" rel="stylesheet" href="../css/global.css" />
- <link type="image/ico" rel="icon" href="../assets/default/image/favicon.ico" />
- <script type="text/javascript" src="../js/jquery-1.4.js"></script>
- <script type="text/javascript" src="../js/jquery-ui-1.js"></script>
- <script type="text/javascript" src="../js/karma.js"></script>
- <script type="text/javascript" src="../js/global.js"></script>
- <script type="text/javascript" src="../js/lesson.js"></script>
- <script type="text/javascript" src="../js/jquery.svg.js"></script>
- <script type="text/javascript" src="../js/cw.js"></script>
- <script type="text/javascript" src="../js/navigation.js"></script>
- <script type="text/javascript" src="p2.js"></script>
- </head>
- <body>
- <div id="header">
- <div id="topbtn_left"><div title="home" id="linkBack" class="linkHome" /></div></div>
- <div id="lesson_title">
- <img src="../assets/image/title_block_lt.png" width="33" height="75" align = "absmiddle" />
- Mathematics
- <img src="../assets/image/title_block_rt.png" width="33" height="75" align = "absmiddle" />
- </div>
- <div id="topbtn_right">
- <div title="Quit" id="linkQuit" class="linkQuit"></div>
- </div>
- </div>
- <canvas id="ladder"/>
- <div id='content' style = 'height:100px; width:100%'></div>
- </body>
-</html>
diff --git a/content/Mathematics/p2.js b/content/Mathematics/p2.js
deleted file mode 100755
index 878bccd..0000000
--- a/content/Mathematics/p2.js
+++ /dev/null
@@ -1,146 +0,0 @@
-var activities = [
-[0, '2.1', 'milestone', 'map2', 'map2m1', 'Cyan'],
-[0, '2.2', 'milestone', 'map2', 'map2m2', 'Cyan'],
-[0, '2.3', 'milestone', 'map2', 'map2m3', 'Cyan'],
-[0, '2.4', 'milestone', 'map2', 'map2m4', 'Cyan'],
-[0, '2.5', 'milestone', 'map2', 'map2m5', 'Cyan'],
-[0, '2.6', 'milestone', 'map2', 'map2m6', 'Cyan'],
-[0, '2.7', 'milestone', 'map2', 'map2m7', 'Cyan'],
-[0, '2.8', 'milestone', 'map2', 'map2m8', 'Cyan'],
-[0, 'k2.1', 'milestone', 'map2', 'mak2m1', 'Cyan'],
-[0, 'e2.1', 'milestone', 'emap2', 'mae2m1', 'Cyan'],
-];
-var assetList = [];
-var logos = [];
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/content/Mathematics/p3.html b/content/Mathematics/p3.html
deleted file mode 100755
index 787da81..0000000
--- a/content/Mathematics/p3.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>English </title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <link type="text/css" rel="stylesheet" href="../css/global.css" />
- <link type="image/ico" rel="icon" href="../assets/default/image/favicon.ico" />
- <script type="text/javascript" src="../js/jquery-1.4.js"></script>
- <script type="text/javascript" src="../js/jquery-ui-1.js"></script>
- <script type="text/javascript" src="../js/karma.js"></script>
- <script type="text/javascript" src="../js/global.js"></script>
- <script type="text/javascript" src="../js/lesson.js"></script>
- <script type="text/javascript" src="../js/jquery.svg.js"></script>
- <script type="text/javascript" src="../js/cw.js"></script>
- <script type="text/javascript" src="../js/navigation.js"></script>
- <script type="text/javascript" src="p3.js"></script>
- </head>
- <body>
- <div id="header">
- <div id="topbtn_left"><div title="home" id="linkBack" class="linkHome" /></div></div>
- <div id="lesson_title">
- <img src="../assets/image/title_block_lt.png" width="33" height="75" align = "absmiddle" />
- Mathematics
- <img src="../assets/image/title_block_rt.png" width="33" height="75" align = "absmiddle" />
- </div>
- <div id="topbtn_right">
- <div title="Quit" id="linkQuit" class="linkQuit"></div>
- </div>
- </div>
- <canvas id="ladder"/>
- <div id='content' style = 'height:100px; width:100%'></div>
- </body>
-</html>
diff --git a/content/Mathematics/p3.js b/content/Mathematics/p3.js
deleted file mode 100755
index 9b9627d..0000000
--- a/content/Mathematics/p3.js
+++ /dev/null
@@ -1,145 +0,0 @@
-var activities = [
-[0, '3.1', 'milestone', 'map3', 'map3m1', 'Cyan'],
-[0, '3.2', 'milestone', 'map3', 'map3m2', 'Cyan'],
-[0, '3.3', 'milestone', 'map3', 'map3m3', 'Cyan'],
-[0, '3.4', 'milestone', 'map3', 'map3m4', 'Cyan'],
-[0, '3.5', 'milestone', 'map3', 'map3m5', 'Cyan'],
-[0, '3.6', 'milestone', 'map3', 'map3m6', 'Cyan'],
-[0, '3.7', 'milestone', 'map3', 'map3m7', 'Cyan'],
-[0, '3.8', 'milestone', 'map3', 'map3m8', 'Cyan'],
-[0, 'e3.1', 'milestone', 'map3', 'mae3m1', 'Cyan'],
-];
-var assetList = [];
-var logos = [];
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/content/Mathematics/p4.html b/content/Mathematics/p4.html
deleted file mode 100755
index 0ecd111..0000000
--- a/content/Mathematics/p4.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>English </title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <link type="text/css" rel="stylesheet" href="../css/global.css" />
- <link type="image/ico" rel="icon" href="../assets/default/image/favicon.ico" />
- <script type="text/javascript" src="../js/jquery-1.4.js"></script>
- <script type="text/javascript" src="../js/jquery-ui-1.js"></script>
- <script type="text/javascript" src="../js/karma.js"></script>
- <script type="text/javascript" src="../js/global.js"></script>
- <script type="text/javascript" src="../js/lesson.js"></script>
- <script type="text/javascript" src="../js/jquery.svg.js"></script>
- <script type="text/javascript" src="../js/cw.js"></script>
- <script type="text/javascript" src="../js/navigation.js"></script>
- <script type="text/javascript" src="p4.js"></script>
- </head>
- <body>
- <div id="header">
- <div id="topbtn_left"><div title="home" id="linkBack" class="linkHome" /></div></div>
- <div id="lesson_title">
- <img src="../assets/image/title_block_lt.png" width="33" height="75" align = "absmiddle" />
- Mathematics
- <img src="../assets/image/title_block_rt.png" width="33" height="75" align = "absmiddle" />
- </div>
- <div id="topbtn_right">
- <div title="Quit" id="linkQuit" class="linkQuit"></div>
- </div>
- </div>
- <canvas id="ladder"/>
- <div id='content' style = 'height:100px; width:100%'></div>
- </body>
-</html>
diff --git a/content/Mathematics/p4.js b/content/Mathematics/p4.js
deleted file mode 100755
index 7eb0faf..0000000
--- a/content/Mathematics/p4.js
+++ /dev/null
@@ -1,145 +0,0 @@
-var activities = [
-[0, '4.1', 'milestone', 'map4', 'map4m1', 'Cyan'],
-[0, '4.2', 'milestone', 'map4', 'map4m2', 'Cyan'],
-[0, '4.3', 'milestone', 'map4', 'map4m3', 'Cyan'],
-[0, '4.4', 'milestone', 'map4', 'map4m4', 'Cyan'],
-[0, 'e4.1', 'milestone', 'map4', 'mae4m1', 'Cyan'],
-];
-var assetList = [];
-var logos = [];
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/content/Mathematics/p5.html b/content/Mathematics/p5.html
deleted file mode 100755
index c7ca287..0000000
--- a/content/Mathematics/p5.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>English </title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <link type="text/css" rel="stylesheet" href="../css/global.css" />
- <link type="image/ico" rel="icon" href="../assets/default/image/favicon.ico" />
- <script type="text/javascript" src="../js/jquery-1.4.js"></script>
- <script type="text/javascript" src="../js/jquery-ui-1.js"></script>
- <script type="text/javascript" src="../js/karma.js"></script>
- <script type="text/javascript" src="../js/global.js"></script>
- <script type="text/javascript" src="../js/lesson.js"></script>
- <script type="text/javascript" src="../js/jquery.svg.js"></script>
- <script type="text/javascript" src="../js/cw.js"></script>
- <script type="text/javascript" src="../js/navigation.js"></script>
- <script type="text/javascript" src="p5.js"></script>
- </head>
- <body>
- <div id="header">
- <div id="topbtn_left"><div title="home" id="linkBack" class="linkHome" /></div></div>
- <div id="lesson_title">
- <img src="../assets/image/title_block_lt.png" width="33" height="75" align = "absmiddle" />
- Mathematics
- <img src="../assets/image/title_block_rt.png" width="33" height="75" align = "absmiddle" />
- </div>
- <div id="topbtn_right">
- <div title="Quit" id="linkQuit" class="linkQuit"></div>
- </div>
- </div>
- <canvas id="ladder"/>
- <div id='content' style = 'height:100px; width:100%'></div>
- </body>
-</html>
diff --git a/content/Mathematics/p5.js b/content/Mathematics/p5.js
deleted file mode 100755
index c0966e8..0000000
--- a/content/Mathematics/p5.js
+++ /dev/null
@@ -1,143 +0,0 @@
-var activities = [
-[0, '5.1', 'milestone', 'map5', 'map5m1', 'Cyan'],
-[0, '5.2', 'milestone', 'map5', 'map5m2', 'Cyan'],
-[0, '5.3', 'milestone', 'map5', 'map5m3', 'Cyan'],
-[0, '5.4', 'milestone', 'map5', 'map5m4', 'Cyan'],
-[0, '5.5', 'milestone', 'map5', 'map5m5', 'Cyan'],
-[0, '5.6', 'milestone', 'map5', 'map5m6', 'Cyan'],
-
-];
-var assetList = [];
-var logos = [];
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/content/Mathematics/p6.html b/content/Mathematics/p6.html
deleted file mode 100755
index 95ecc91..0000000
--- a/content/Mathematics/p6.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>English </title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <link type="text/css" rel="stylesheet" href="../css/global.css" />
- <link type="image/ico" rel="icon" href="../assets/default/image/favicon.ico" />
- <script type="text/javascript" src="../js/jquery-1.4.js"></script>
- <script type="text/javascript" src="../js/jquery-ui-1.js"></script>
- <script type="text/javascript" src="../js/karma.js"></script>
- <script type="text/javascript" src="../js/global.js"></script>
- <script type="text/javascript" src="../js/lesson.js"></script>
- <script type="text/javascript" src="../js/jquery.svg.js"></script>
- <script type="text/javascript" src="../js/cw.js"></script>
- <script type="text/javascript" src="../js/navigation.js"></script>
- <script type="text/javascript" src="p6.js"></script>
- </head>
- <body>
- <div id="header">
- <div id="topbtn_left"><div title="home" id="linkBack" class="linkHome" /></div></div>
- <div id="lesson_title">
- <img src="../assets/image/title_block_lt.png" width="33" height="75" align = "absmiddle" />
- Mathematics
- <img src="../assets/image/title_block_rt.png" width="33" height="75" align = "absmiddle" />
- </div>
- <div id="topbtn_right">
- <div title="Quit" id="linkQuit" class="linkQuit"></div>
- </div>
- </div>
- <canvas id="ladder"/>
- <div id='content' style = 'height:100px; width:100%'></div>
- </body>
-</html>
diff --git a/content/Mathematics/p6.js b/content/Mathematics/p6.js
deleted file mode 100755
index 274186d..0000000
--- a/content/Mathematics/p6.js
+++ /dev/null
@@ -1,157 +0,0 @@
-var activities = [
-[0, '6.1', 'milestone', 'map6', 'map6m1', 'Cyan'],
-[0, '6.2', 'milestone', 'map6', 'map6m2', 'Cyan'],
-[0, '6.3', 'milestone', 'map6', 'map6m3', 'Cyan'],
-[0, '6.4', 'milestone', 'map6', 'map6m4', 'Cyan'],
-[0, '6.5', 'milestone', 'map6', 'map6m5', 'Cyan'],
-[0, 'k6.1', 'milestone', 'map6', 'mak6m1', 'Cyan'],
-[0, 'e6.1', 'milestone', 'map6', 'mae6m1', 'Cyan'],
-];
-var assetList = [];
-var logos = [];
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/content/Mathematics11/activities.js b/content/Mathematics11/activities.js
index 0daf91b..9264c0d 100755
--- a/content/Mathematics11/activities.js
+++ b/content/Mathematics11/activities.js
@@ -1,39 +1,55 @@
var activities = [
-['0', '4.01', 'milestone', 'map4', 'map412m01', 'Blue'],
-['0', '4.02', 'milestone', 'map4', 'map412m02', 'Blue'],
-['0', '4.03', 'milestone', 'map4', 'map412m03', 'Blue'],
-['0', '4.04', 'milestone', 'map4', 'map412m04', 'Blue'],
-['0', '4.05', 'milestone', 'map4', 'map412m05', 'Blue'],
-['0', '4.06', 'milestone', 'map4', 'map412m06', 'Blue'],
-['0', '4.07', 'milestone', 'map4', 'map412m07', 'Blue'],
-['0', '4.08', 'milestone', 'map4', 'map412m08', 'Blue'],
-['0', '4.09', 'milestone', 'map4', 'map412m09', 'Blue'],
-['0', '4.10', 'milestone', 'map4', 'map412m10', 'Blue'],
-['0', '4.11', 'milestone', 'map4', 'map412m11', 'Blue'],
-['0', '5.01', 'milestone', 'map5', 'map512m01', 'Blue'],
-['0', '5.02', 'milestone', 'map5', 'map512m02', 'Blue'],
-['0', '5.03', 'milestone', 'map5', 'map512m03', 'Blue'],
-['0', '5.04', 'milestone', 'map5', 'map512m04', 'Blue'],
-['0', '5.05', 'milestone', 'map5', 'map512m05', 'Blue'],
-['0', '5.06', 'milestone', 'map5', 'map512m06', 'Blue'],
-['0', '5.07', 'milestone', 'map5', 'map512m07', 'Blue'],
-['0', '5.08', 'milestone', 'map5', 'map512m08', 'Blue'],
-['0', '5.09', 'milestone', 'map5', 'map512m09', 'Blue'],
-['0', '5.10', 'milestone', 'map5', 'map512m10', 'Blue'],
-['0', '5.11', 'milestone', 'map5', 'map512m11', 'Blue'],
-['0', '5.12', 'milestone', 'map5', 'map512m12', 'Blue'],
-['0', '6.01', 'milestone', 'map6', 'map612m01', 'Blue'],
-['0', '6.02', 'milestone', 'map6', 'map612m02', 'Blue'],
-['0', '6.03', 'milestone', 'map6', 'map612m03', 'Blue'],
-['0', '6.04', 'milestone', 'map6', 'map612m04', 'Blue'],
-['0', '6.05', 'milestone', 'map6', 'map612m05', 'Blue'],
-['0', '6.06', 'milestone', 'map6', 'map612m06', 'Blue'],
-['0', '6.07', 'milestone', 'map6', 'map612m07', 'Blue'],
-['0', '6.08', 'milestone', 'map6', 'map612m08', 'Blue'],
-['0', '6.09', 'milestone', 'map6', 'map612m09', 'Blue'],
-['0', '6.10', 'milestone', 'map6', 'map612m10', 'Blue'],
-['0', '6.11', 'milestone', 'map6', 'map612m11', 'Blue'],
-['0', '6.12', 'milestone', 'map6', 'map612m12', 'Blue'],
+['0', '4.01', 'milestone', 'map4', 'map411m01', 'Blue'],
+['0', '4.02', 'milestone', 'map4', 'map411m02', 'Blue'],
+['0', '4.03', 'milestone', 'map4', 'map411m03', 'Blue'],
+['0', '4.04', 'milestone', 'map4', 'map411m04', 'Blue'],
+['0', '4.05', 'milestone', 'map4', 'map411m05', 'Blue'],
+['0', '4.06', 'milestone', 'map4', 'map411m06', 'Blue'],
+['0', '4.07', 'milestone', 'map4', 'map411m07', 'Blue'],
+['0', '4.08', 'milestone', 'map4', 'map411m08', 'Blue'],
+['0', '4.09', 'milestone', 'map4', 'map411m09', 'Blue'],
+['0', '4.10', 'milestone', 'map4', 'map411m10', 'Blue'],
+['0', '4.11', 'milestone', 'map4', 'map411m11', 'Blue'],
+['0', '4.12', 'milestone', 'map4', 'map411m12', 'Blue'],
+['0', '4.13', 'milestone', 'map4', 'map411m13', 'Blue'],
+['0', '4.14', 'milestone', 'map4', 'map411m14', 'Blue'],
+['0', '4.15', 'milestone', 'map4', 'map411m15', 'Blue'],
+['0', '5.1', 'milestone', 'map5', 'map511m1', 'Blue'],
+['0', '5.10', 'milestone', 'map5', 'map511m10', 'Blue'],
+['0', '5.11', 'milestone', 'map5', 'map511m11', 'Blue'],
+['0', '5.12', 'milestone', 'map5', 'map511m12', 'Blue'],
+['0', '5.13', 'milestone', 'map5', 'map511m13', 'Blue'],
+['0', '5.14', 'milestone', 'map5', 'map511m14', 'Blue'],
+['0', '5.15', 'milestone', 'map5', 'map511m15', 'Blue'],
+['0', '5.16', 'milestone', 'map5', 'map511m16', 'Blue'],
+['0', '5.17', 'milestone', 'map5', 'map511m17', 'Blue'],
+['0', '5.18', 'milestone', 'map5', 'map511m18', 'Blue'],
+['0', '5.2', 'milestone', 'map5', 'map511m2', 'Blue'],
+['0', '5.3', 'milestone', 'map5', 'map511m3', 'Blue'],
+['0', '5.4', 'milestone', 'map5', 'map511m4', 'Blue'],
+['0', '5.5', 'milestone', 'map5', 'map511m5', 'Blue'],
+['0', '5.6', 'milestone', 'map5', 'map511m6', 'Blue'],
+['0', '5.7', 'milestone', 'map5', 'map511m7', 'Blue'],
+['0', '5.8', 'milestone', 'map5', 'map511m8', 'Blue'],
+['0', '5.9', 'milestone', 'map5', 'map511m9', 'Blue'],
+['0', '6.01', 'milestone', 'map6', 'map611m01', 'Blue'],
+['0', '6.02', 'milestone', 'map6', 'map611m02', 'Blue'],
+['0', '6.03', 'milestone', 'map6', 'map611m03', 'Blue'],
+['0', '6.04', 'milestone', 'map6', 'map611m04', 'Blue'],
+['0', '6.05', 'milestone', 'map6', 'map611m05', 'Blue'],
+['0', '6.06', 'milestone', 'map6', 'map611m06', 'Blue'],
+['0', '6.07', 'milestone', 'map6', 'map611m07', 'Blue'],
+['0', '6.08', 'milestone', 'map6', 'map611m08', 'Blue'],
+['0', '6.09', 'milestone', 'map6', 'map611m09', 'Blue'],
+['0', '6.10', 'milestone', 'map6', 'map611m10', 'Blue'],
+['0', '6.11', 'milestone', 'map6', 'map611m11', 'Blue'],
+['0', '6.12', 'milestone', 'map6', 'map611m12', 'Blue'],
+['0', '6.13', 'milestone', 'map6', 'map611m13', 'Blue'],
+['0', '6.14', 'milestone', 'map6', 'map611m14', 'Blue'],
+['0', '6.15', 'milestone', 'map6', 'map611m15', 'Blue'],
+['0', '6.16', 'milestone', 'map6', 'map611m16', 'Blue'],
+['0', '6.17', 'milestone', 'map6', 'map611m17', 'Blue'],
+['0', '6.18', 'milestone', 'map6', 'map611m18', 'Blue'],
];
var assetList = [];
var logos = [];
diff --git a/content/Mathematics11/index.html b/content/Mathematics11/index.html
index a01dcc4..62d7d1e 100755
--- a/content/Mathematics11/index.html
+++ b/content/Mathematics11/index.html
@@ -15,16 +15,16 @@
<script type="text/javascript" src="../js/navigation.js"></script>
<script type="text/javascript" src="activities.js"></script>
</head>
- <body style="overflow-x:hidden; overflow-y:scroll">
+ <body>
<div id="header">
<div id="topbtn_left"><div title="home" id="linkBack" class="linkHome" /></div></div>
<div id="lesson_title">
- <img src="../assets/image/title_block_lt.png" width="33" height="75" align="absmiddle" />
- Mathematics
+ <img src="../assets/image/title_block_lt.png" width="33" height="75" align = "absmiddle" />
+ English
<img src="../assets/image/title_block_rt.png" width="33" height="75" align = "absmiddle" />
</div>
<div id="topbtn_right">
- <div title="Quit" id="linkQuit" class="linkQuit"></div>
+ <div title="Quit" id="linkQuit" class="linkQuit"></div>
</div>
</div>
<canvas id="ladder"/>
diff --git a/content/Mathematics11/p41.js b/content/Mathematics11/p41.js
index 04bb169..9a28ff4 100755
--- a/content/Mathematics11/p41.js
+++ b/content/Mathematics11/p41.js
@@ -144,3 +144,12 @@ var logos = [];
+
+
+
+
+
+
+
+
+
diff --git a/content/Mathematics11/p42.js b/content/Mathematics11/p42.js
index b7fc43f..b808e04 100755
--- a/content/Mathematics11/p42.js
+++ b/content/Mathematics11/p42.js
@@ -143,3 +143,12 @@ var logos = [];
+
+
+
+
+
+
+
+
+
diff --git a/content/Mathematics11/p43.js b/content/Mathematics11/p43.js
index 543f276..5764d4d 100755
--- a/content/Mathematics11/p43.js
+++ b/content/Mathematics11/p43.js
@@ -143,3 +143,12 @@ var logos = [];
+
+
+
+
+
+
+
+
+
diff --git a/content/Mathematics11/p51.js b/content/Mathematics11/p51.js
index 3114473..c9f110a 100755
--- a/content/Mathematics11/p51.js
+++ b/content/Mathematics11/p51.js
@@ -1,13 +1,13 @@
var activities = [
-[1, '51.1', 'milestone', 'map51', 'map511m1', 'Cyan'],
-[1, '51.2', 'milestone', 'map51', 'map511m2', 'Cyan'],
-[1, '51.3', 'milestone', 'map51', 'map511m3', 'Cyan'],
-[1, '51.4', 'milestone', 'map51', 'map511m4', 'Cyan'],
-[1, '51.5', 'milestone', 'map51', 'map511m5', 'Cyan'],
-[1, '51.6', 'milestone', 'map51', 'map511m6', 'Cyan'],
-[1, '51.7', 'milestone', 'map51', 'map511m7', 'Cyan'],
-[1, '51.8', 'milestone', 'map51', 'map511m8', 'Cyan'],
-[1, '51.9', 'milestone', 'map51', 'map511m9', 'Cyan'],
+[1, '51.1', 'milestone', 'map51', 'map511m1', 'Blue'],
+[1, '51.2', 'milestone', 'map51', 'map511m2', 'Blue'],
+[1, '51.3', 'milestone', 'map51', 'map511m3', 'Blue'],
+[1, '51.4', 'milestone', 'map51', 'map511m4', 'Blue'],
+[1, '51.5', 'milestone', 'map51', 'map511m5', 'Blue'],
+[1, '51.6', 'milestone', 'map51', 'map511m6', 'Blue'],
+[1, '51.7', 'milestone', 'map51', 'map511m7', 'Blue'],
+[1, '51.8', 'milestone', 'map51', 'map511m8', 'Blue'],
+[1, '51.9', 'milestone', 'map51', 'map511m9', 'Blue'],
];
var assetList = [];
var logos = [];
@@ -142,3 +142,12 @@ var logos = [];
+
+
+
+
+
+
+
+
+
diff --git a/content/Mathematics11/p52.js b/content/Mathematics11/p52.js
index 5761b17..0b89e52 100755
--- a/content/Mathematics11/p52.js
+++ b/content/Mathematics11/p52.js
@@ -142,3 +142,12 @@ var logos = [];
+
+
+
+
+
+
+
+
+
diff --git a/content/Mathematics11/p53.js b/content/Mathematics11/p53.js
index e44acbb..4aee048 100755
--- a/content/Mathematics11/p53.js
+++ b/content/Mathematics11/p53.js
@@ -142,3 +142,12 @@ var logos = [];
+
+
+
+
+
+
+
+
+
diff --git a/content/Mathematics11/p61.js b/content/Mathematics11/p61.js
index 22ebfc4..34d9d03 100755
--- a/content/Mathematics11/p61.js
+++ b/content/Mathematics11/p61.js
@@ -142,3 +142,12 @@ var logos = [];
+
+
+
+
+
+
+
+
+
diff --git a/content/Mathematics11/p62.js b/content/Mathematics11/p62.js
index 5ff9669..1f420bc 100755
--- a/content/Mathematics11/p62.js
+++ b/content/Mathematics11/p62.js
@@ -142,3 +142,12 @@ var logos = [];
+
+
+
+
+
+
+
+
+
diff --git a/content/Mathematics11/p63.js b/content/Mathematics11/p63.js
index 24c879f..c0e8bf0 100755
--- a/content/Mathematics11/p63.js
+++ b/content/Mathematics11/p63.js
@@ -142,3 +142,12 @@ var logos = [];
+
+
+
+
+
+
+
+
+
diff --git a/content/css/global.css b/content/css/global.css
index 461b5ed..7893362 100755
--- a/content/css/global.css
+++ b/content/css/global.css
@@ -55,6 +55,11 @@ body {
cursor:pointer;
width: 60px; height: 59px;
background:url(../assets/image/btn_back_mathematics.png);
+ }
+ .linkBegin{
+ cursor:pointer;
+ width: 60px; height: 59px;
+ background:url(../assets/image/btn_start.png);
}
.linkBack{
cursor:pointer;
diff --git a/content/index.html b/content/index.html
index 7b718ab..a2c74ae 100755
--- a/content/index.html
+++ b/content/index.html
@@ -8,7 +8,8 @@
<script type="text/javascript" src="../js/jquery-ui-1.js"></script>
<script type="text/javascript">
$('<div id="txtMain">')
- .load('http://localhost:8008/cgi-bin/set_up_main_menu.py')
+ .load('http://localhost:8008/cgi-bin/set_up_main_menu.py',
+ {'mode':'CW'})
.appendTo('#content')
</script>
</head>
@@ -20,15 +21,6 @@
<img src="assets/image/english.png" alt="English" width=175 height=175 />
</a>
</div>
- <div class ='ladders'>
- <p><a href="English/p1.html">P1</a></p>
- <p><a href="English/p2.html">P2</a></p>
- <p><a href="English/p3.html">P3</a></p>
- <p><a href="English/p4.html">P4</a></p>
- <p><a href="English/p5.html">P5</a></p>
- <p><a href="English/p6.html">P6</a></p>
- </div>
- </div>
</div>
<div id='c2t'>
<div class = 'main'>
@@ -36,14 +28,6 @@
<img src="assets/image/mathematics.png" alt="Mathematics" width=175 height=175" />
</a>
</div>
- <div class ="ladders">
- <p><a href="Mathematics/p1.html">P1</a></p>
- <p><a href="Mathematics/p2.html">P2</a></p>
- <p><a href="Mathematics/p3.html">P3</a></p>
- <p><a href="Mathematics/p4.html">P4</a></p>
- <p><a href="Mathematics/p5.html">P5</a></p>
- <p><a href="Mathematics/p6.html">P6</a></p>
- </div>
</div>
<div id='c1m'>
<div class = 'main'>
diff --git a/content/js/global.js b/content/js/global.js
index 3dcbb31..62281af 100755
--- a/content/js/global.js
+++ b/content/js/global.js
@@ -18,13 +18,12 @@ function gobackTwo(){
window.location = backTwo;
}
function apply(){
- $().load('http://localhost:8008/cgi-bin/results.py',{
+ $('#content').load('http://localhost:8008/cgi-bin/results.py',{
'score':'70',
- 'url':location.href,
},function(responseText, status, xhr){
- if (responseText='1'){ goback();
- } else if (responseText='2'){ gobackOne();
- } else if (responseText='3'){ gobackTwo();
+ if (responseText=='1'){ goback();
+ } else if (responseText=='2'){ gobackOne();
+ } else if (responseText=='3'){ gobackTwo();
};
});
}
diff --git a/content/js/learner_lesson.js b/content/js/learner_lesson.js
new file mode 100755
index 0000000..e9ca38a
--- /dev/null
+++ b/content/js/learner_lesson.js
@@ -0,0 +1,224 @@
+$(document).ready(
+ function(){
+ var k = Karma();
+
+ k.ready(function() {
+
+ activities;
+
+ k.ready(function(){
+
+ //game logic
+
+ function draw(){
+ var canvas = document.getElementById('ladder');
+ if (canvas.getContext){
+ var ctx = canvas.getContext('2d');
+ var cells = 5;
+ var rows = 2 + (activities.length / cells);
+ var maxx = 1100;
+ var cellsize = 64;
+ var maxy = rows * 2 * cellsize;
+ canvas.setAttribute('width', maxx);
+ canvas.setAttribute('height', maxy);
+ var x = 0;
+ var y = 0;
+ var odd = 1;
+ var xstart = 1.7 * cellsize;
+ var ystart = maxy - cellsize;
+ var row = 0;
+ var cell = 0;
+ var id = -1;
+ var ix = 0;
+ var idm = 0;
+ var activity = 0;
+ var flag = 0;
+ var acts = new Array();
+ var idx = 0
+ var il = ""
+ var xy;
+ var pth;
+ var count = 0;
+
+ $("canvas").click(function($e) {
+ // find out which act in acts was clicked
+ x = $e.pageX
+ y = $e.pageY
+ $.each(acts, function() {
+ xy = this;
+ // directory structure: content/subject/milestone/activity
+ // for learners, we want the 'red' activity
+ if(xy[5]=='red'){
+ //set path
+ if (xy[3] == "EPaath"){
+ pth = "../../../src/FrameWork.html#" + xy[4];
+ }else if (xy[3] == "Karma"){
+ pth = xy[4] + '/index.html';
+ }else if (xy[3] == 'NKarma'){
+ pth = xy[4] + '/index.html';
+ }else if (xy[3] == "Siyavula"){
+ pth = xy[4] + '.html';
+ }else if (xy[3] == 'Sugar'){
+ pth = xy[4] + '/index.html';
+ }else{
+ pth = "../../"+"content/unavailable.html";
+ };
+ //start session
+ $('<div id="temp" />')
+ .load('http://localhost:8008/cgi-bin/session.py',
+ {'activity':xy[4]},
+ function(){
+ window.location = pth;
+ });
+ };
+ });
+ });
+ // ladder
+ ctx.font = "14pt Arial";
+ ctx.textAlign = "center";
+ x = xstart;
+ y = ystart;
+ ctx.beginPath();
+ sz = cellsize;
+ drawarrow(x,y,sz);
+ offset=0;
+ delta = 1;
+ for(row=0;row<rows;row++){
+ if (activity == activities.length) {
+ break;
+ };
+ if (offset == 0){
+ x = xstart;
+ } else {
+ x = xstart+offset-sz*3/2;
+ };
+ for(cell=0;cell<cells;cell++){
+ xsave = x;
+ if (activity < activities.length){
+ ctx.fillStyle = 'yellow';
+ ctx.fillRect(x,y,sz*3/2, sz/4);
+ drawlogo(x,y,activity);
+ activity = activity + 1;
+ x = x + 3/2*sz;
+ if (delta > 0) {
+ if (cell+1 < cells) {
+ ctx.fillStyle = 'yellow';
+ ctx.fillRect(x,y,sz,sz/4);
+ x = xsave + sz*5/2;
+ } else {
+ x = xsave + sz*3/2;
+ };
+ } else {
+ if (cell > 0) {
+ ctx.fillStyle = 'yellow';
+ ctx.fillRect(x,y,sz,sz/4);
+ };
+ if (cell+1<cells){
+ x = xsave - sz*5/2;
+ } else {
+ x = xsave-sz*3/2;
+ };
+ };
+ };
+ };
+ if ((row + 1 < rows) &&
+ (activity < activities.length)) {
+ if (row % 2 == 0) {
+ ctx.fillStyle = 'yellow';
+ ctx.beginPath();
+ ctx.moveTo(x,y);
+ ctx.arc(x, y-cellsize, cellsize, Math.PI/2, 0, 1);
+ ctx.arc(x, y-cellsize, 1.25*cellsize, 0, Math.PI*3/2, 1);
+ ctx.arc(x, y-cellsize, cellsize, Math.PI*3/2, 0, 0);
+ ctx.arc(x, y-cellsize, 1.25*cellsize, 0, Math.PI/2, 0);
+ ctx.closePath();
+ ctx.fill();
+ } else {
+ x = xstart;
+ ctx.fillStyle = 'yellow';
+ ctx.beginPath();
+ ctx.moveTo(x,y);
+ ctx.arc(x, y-cellsize, cellsize, Math.PI/2, Math.PI, 0);
+ ctx.arc(x, y-cellsize, 1.25*cellsize, Math.PI, Math.PI*3/2, 0);
+ ctx.arc(x, y-cellsize, cellsize, Math.PI*3/2, Math.PI, 1);
+ ctx.arc(x, y-cellsize, 1.25*cellsize, Math.PI, Math.PI/2, 1);
+ ctx.closePath();
+ ctx.fill();
+ }
+ }
+ y = y - 2.25 * cellsize;
+ offset = x - xstart;
+ delta = -delta;
+ }
+ }
+
+ function drawarrow(x,y,sz) {
+ ctx.fillStyle='black';
+ ctx.fillRect(x-sz*4/5,y+sz/8,sz/2,sz/8);
+ ctx.moveTo(x-sz/2,y);
+ ctx.lineTo(x-sz/5,y+sz/8);
+ ctx.moveTo(x-sz/2,y+sz/2);
+ ctx.lineTo(x-sz/5,y+sz/8);
+ ctx.stroke();
+ };
+
+ function drawlogo(x, y, activity) {
+ var capcolor;
+ id = activities[activity][0];
+ ix = activities[activity][1];
+ if ((activities[activity].length) > 1){
+ il = activities[activity][2];
+ } else {
+ il = "";
+ };
+ if ((activities[activity].length) > 2){
+ ty = activities[activity][3];
+ }else{
+ ty = "";
+ };
+ if ((activities[activity].length) > 3){
+ ls = activities[activity][4];
+ }else{
+ ls = "";
+ };
+ if ((activities[activity].length) > 3){
+ capcolor = activities[activity][5];
+ }else{
+ capcolor = 'cyan';
+ };
+ idx = idx + 1;
+ acts[idx] = [il, x, y, ty, ls, capcolor];
+ sz = cellsize
+ if (id == 0){
+ // draw milestone
+ ctx.moveTo(x,y);
+ ctx.lineTo(x,y-sz);
+ ctx.moveTo(x+sz, y-sz);
+ ctx.lineTo(x+sz, y);
+ ctx.moveTo(x, y-sz);
+ ctx.arc(x+0.5*sz,y-sz,0.5*sz,Math.PI,0,0);
+ ctx.fillStyle = 'black';
+ ctx.fillText(ix, x + (sz * 0.3), y-(sz * 0.4), sz);
+ ctx.stroke();
+ } else {
+ // draw logo
+ ctx.moveTo(x,y);
+ ctx.lineTo(x,y-sz);
+ ctx.strokeStyle = 'black';
+ ctx.stroke();
+ ctx.fillStyle = capcolor;
+ ctx.fillRect(x,y-sz,sz, sz/2);
+ ctx.textAlign = 'center';
+ ctx.font = '20pt Arial';
+ ctx.fillStyle = 'black';
+ ctx.fillText(ix,x+sz/2,y-sz/2-10,sz);
+ };
+ }
+ }
+
+ draw();
+
+ });
+ });
+
+});
diff --git a/content/js/learner_subject.js b/content/js/learner_subject.js
new file mode 100755
index 0000000..443355a
--- /dev/null
+++ b/content/js/learner_subject.js
@@ -0,0 +1,216 @@
+$(document).ready(
+ function(){
+ var k = Karma(assetList);
+
+ k.ready(function() {
+
+ logos;
+
+ activities;
+
+ k.ready(function(){
+
+ //game logic
+
+ function draw(){
+ var canvas = document.getElementById('ladder');
+ if (canvas.getContext){
+ var ctx = canvas.getContext('2d');
+ var cells = 6;
+ var rows = 2 + (activities.length / cells);
+ var maxx = 1200;
+ var cellsize = 64;
+ var sz = cellsize;
+ var maxy = rows * 1.5 * cellsize;
+ if (maxy < 673){
+ maxy = 673;;
+ };
+ canvas.setAttribute('width', maxx);
+ canvas.setAttribute('height', maxy);
+ var x = 0;
+ var y = 0;
+ var odd = 1;
+ var xstart = 1.7 * cellsize;
+ var ystart = maxy - cellsize;
+ var row = 0;
+ var cell = 0;
+ var id = -1;
+ var ix = 0;
+ var idm = 0;
+ var activity = 0;
+ var flag = 0;
+ var acts = new Array();
+ var idx = 0
+ var il = ""
+ var xy;
+ var pth;
+ var count = 0;
+
+ $("canvas").click(function($e) {
+ // find out which act in acts was clicked
+ x = $e.pageX
+ y = $e.pageY
+ $.each(acts, function() {
+ xy = this;
+ // directory structure: content/subject/milestone/activity
+ // for learners, we want the red milestone
+ if( xy[5] == 'red'){
+ pth = xy[4]+'/index.html';
+ window.location = pth;
+ };
+ });
+ });
+ // ladder
+ ctx.font = "14pt Arial";
+ ctx.textAlign = "center";
+ x = xstart;
+ y = ystart;
+ ctx.beginPath();
+ sz = cellsize;
+ drawarrow(x,y,sz);
+ offset=0;
+ delta = 1;
+ for(row=0;row<rows;row++){
+ if (activity == activities.length) {
+ break;
+ };
+ if (offset == 0){
+ x = xstart;
+ } else {
+ x = xstart+offset-sz*3/2;
+ };
+ for(cell=0;cell<cells;cell++){
+ xsave = x;
+ if (activity < activities.length){
+ ctx.fillStyle = 'yellow';
+ ctx.fillRect(x,y,sz*3/2, sz/4);
+ drawlogo(x,y,activity);
+ activity = activity + 1;
+ x = x + 3/2*sz;
+ if (delta > 0) {
+ if (cell+1 < cells) {
+ ctx.fillstyle='yellow';
+ ctx.fillRect(x,y,sz,sz/4);
+ x = xsave + sz*5/2;
+ } else {
+ x = xsave + sz*3/2;
+ };
+ } else {
+ if (cell > 0) {
+ ctx.fillStyle = 'yellow';
+ ctx.fillRect(x,y,sz,sz/4);
+ };
+ if (cell+1<cells){
+ x = xsave - sz*5/2;
+ } else {
+ x = xsave-sz*3/2;
+ };
+ };
+ };
+ };
+ if ((row + 1 < rows) &&
+ (activity < activities.length)) {
+ if (row % 2 == 0) {
+ ctx.beginPath();
+ ctx.moveTo(x,y);
+ ctx.arc(x, y-cellsize, cellsize, Math.PI/2, 0, 1);
+ ctx.arc(x, y-cellsize, 1.25*cellsize, 0, Math.PI*3/2, 1);
+ ctx.arc(x, y-cellsize, cellsize, Math.PI*3/2, 0, 0);
+ ctx.arc(x, y-cellsize, 1.25*cellsize, 0, Math.PI/2, 0);
+ ctx.closePath();
+ ctx.fillStyle='yellow'
+ ctx.fill()
+ } else {
+ x = xstart;
+ ctx.beginPath();
+ ctx.moveTo(x,y);
+ ctx.arc(x, y-cellsize, cellsize, Math.PI/2, Math.PI, 0);
+ ctx.arc(x, y-cellsize, 1.25*cellsize, Math.PI, Math.PI*3/2, 0);
+ ctx.arc(x, y-cellsize, cellsize, Math.PI*3/2, Math.PI, 1);
+ ctx.arc(x, y-cellsize, 1.25*cellsize, Math.PI, Math.PI/2, 1);
+ ctx.closePath();
+ ctx.fillStyle='yellow'
+ ctx.fill()
+ }
+ }
+ y = y - 2.25 * cellsize;
+ offset = x - xstart;
+ delta = -delta;
+ }
+ }
+
+ function drawarrow(x,y,sz) {
+ ctx.fillStyle = 'black'
+ ctx.fillRect(x-sz*4/5,y+sz/8,sz/2,sz/8);
+ ctx.moveTo(x-sz/2,y);
+ ctx.lineTo(x-sz/5,y+sz/8);
+ ctx.moveTo(x-sz/2,y+sz/2);
+ ctx.lineTo(x-sz/5,y+sz/8);
+ ctx.stroke();
+ };
+
+ function drawmilestone(activity){
+ var capcolor;
+ x = activity[1];
+ y = activity[2];
+ capcolor = activity[5];
+ ctx.fillStyle = 'chartreuse';
+ ctx.fillRect(x,y-cellsize,cellsize,cellsize);
+ ctx.fillStyle = 'black'
+ ctx.fillText(ix, x + (cellsize * 0.3), y-(cellsize * 0.4), cellsize);
+ ctx.beginPath();
+ ctx.moveTo(x, y-cellsize);
+ ctx.arc(x+0.5*cellsize,y-cellsize,0.5*cellsize,Math.PI,0,0);
+ ctx.closePath();
+ ctx.fillStyle = capcolor;
+ ctx.fill();
+ ctx.fillStyle = 'yellow';
+ };
+
+ function drawlogo(x, y, activity) {
+ var il, ty, ls, cc;
+ id = 0; /* we always have a milestone here */
+ ix = activities[activity][1];
+ if ((activities[activity].length) > 1){
+ il = activities[activity][2];
+ } else {
+ il = "";
+ };
+ if ((activities[activity].length) > 2){
+ ty = activities[activity][3];
+ }else{
+ ty = "";
+ };
+ if ((activities[activity].length) > 3){
+ ls = activities[activity][4];
+ }else{
+ ls = "";
+ };
+ if ((activities[activity].length) > 4){
+ cc = activities[activity][5];
+ }else{
+ cc = 'cyan';
+ };
+ idx = idx + 1;
+ acts[idx] = [il, x, y, ty, ls, cc];
+ if (id < 2){
+ drawmilestone(acts[idx]);
+ } else {
+ // draw logo
+ alert('draw logo - should not happen');
+ ctx.drawImage(k.image[logos[id-1]].media, x, y - cellsize);
+ if (ix > 0) {
+ ctx.textAlign = 'center'
+ ctx.fillStyle = 'black'
+ ctx.fillText(ix, x + cellsize/2, y+cellsize/4, cellsize);
+ };
+ };
+ }
+ }
+
+ draw();
+
+ });
+ });
+
+});
diff --git a/content/js/lesson.js b/content/js/lesson.js
index ffb1f94..c8617eb 100755
--- a/content/js/lesson.js
+++ b/content/js/lesson.js
@@ -48,7 +48,7 @@ $(document).ready(
xy = this;
// directory structure: activity/karma/courses/course/milestone.html + folder per activity
if ( (x > xy[1]) && (x < xy[1] + cellsize) && (y < xy[2]) && (y > xy[2] - cellsize) ) {
- pth = "../../" + "unavailable.html";
+ pth = "../../" + "content/unavailable.html";
if (xy[3] == "EPaath"){
pth = "../../../src/FrameWork.html#" + xy[4];
};
diff --git a/content/js/navigation.js b/content/js/navigation.js
index f47eadf..6299b03 100755
--- a/content/js/navigation.js
+++ b/content/js/navigation.js
@@ -22,6 +22,10 @@ $(document).ready(function(){
$('#linkEdit').click(function(){
edit();
});
+ $('#linkBegin').click(function(){
+ commence();
+ });
+
}); //end of document.read
diff --git a/content/js/subject.js b/content/js/subject.js
index ce3a0c9..df77f3d 100755
--- a/content/js/subject.js
+++ b/content/js/subject.js
@@ -22,8 +22,8 @@ $(document).ready(
var cellsize = 64;
var sz = cellsize;
var maxy = rows * 1.5 * cellsize;
- if (maxy < 1200){
- maxy = 1200;
+ if (maxy < 673){
+ maxy = 673;;
};
canvas.setAttribute('width', maxx);
canvas.setAttribute('height', maxy);
diff --git a/launch.py b/launch.py
index e9150b8..1c6486c 100755
--- a/launch.py
+++ b/launch.py
@@ -40,18 +40,22 @@ class Learn(activity.Activity):
fin = open('/ofw/serial-number','r')
self.serial = fin.read()[:11]
fin.close()
- 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 line.find('grade') > -1:
- pos = line.find('=')
- self.grade = line[pos+1:].strip()
- print >> self.flog, self.serial, self.nickname
+ 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 line.find('grade') > -1:
+ pos = line.find('=')
+ self.grade = line[pos+1:].strip()
+ except:
+ self.nickname = 'newbuild'
+ self.grade = 'P6'
+ print >> self.flog, self.serial, self.nickname, self.grade
#add links for karma folder
base = path(get_bundle_path()) / 'content'
karma = base / 'karma'
@@ -212,24 +216,26 @@ class Learn(activity.Activity):
return result
def write_file(self, file_path):
- flog2 = open('logfile2','w')
- print >> flog2, 'saving metadata'
- if self.sftpflag == False:
+ #nick of learner is in /tmp/learner
+ try:
+ fin = open('/tmp/learner','r')
+ learner = fin.read()
+ fin.close()
+ except:
return
- fin = open(DATAPATH / self.nickname,'r')
- statefile = fin.read()
- fin.close()
- print >> flog2, 'statefile', statefile
- print >> flog2, 'sinfo', str(self.sinfo)
- self.sinfo = eval(statefile)
- keys = self.sinfo.keys()
- for key in keys:
- self.metadata[key] = self.sinfo[key]
- print >> flog2, 'key', key, self.sinfo[key], self.metadata[key]
- print >> flog2, 'entry saved in journal', sys.exc_info()[:2]
- print >> flog2, 'close log'
- flog2.close()
- self.activity_close()
+ if not learner == 'unknown':
+ #we need to read the student record
+ fin = open(DATAPATH / learner,'r')
+ txt = fin.read()
+ fin.close()
+ #and save it to the Journal
+ fout = open(file_path,'w')
+ try:
+ fout.write(txt)
+ finally:
+ fout.close()
+ #rm /tmp/learner to log out
+ subprocess.call('rm -rf /tmp/learner',shell=True)
def activity_close(self):
self.close(True)