diff options
author | Tony Anderson <tony@traveler.(none)> | 2011-01-03 06:05:36 (GMT) |
---|---|---|
committer | Tony Anderson <tony@traveler.(none)> | 2011-01-03 06:05:36 (GMT) |
commit | 2d6b3633bb9449ef0e7af8b12c1684491592c3b7 (patch) | |
tree | 77d469ecbc0eb0fdb8387b4a0a24009756ccac55 | |
parent | cbd270d20b6d180524d120319c0b21de1f9296b3 (diff) |
add student mode to version 10
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); @@ -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) |