38 lines
1.4 KiB
Python
38 lines
1.4 KiB
Python
from django.conf import settings
|
|
from xml.dom.minidom import parse, parseString
|
|
|
|
''' This file will eventually form an abstraction layer between the
|
|
course XML file and the rest of the system.
|
|
'''
|
|
|
|
def toc_from_xml(active_chapter,active_section):
|
|
dom=parse(settings.DATA_DIR+'course.xml')
|
|
|
|
course = dom.getElementsByTagName('course')[0]
|
|
name=course.getAttribute("name")
|
|
chapters = course.getElementsByTagName('chapter')
|
|
ch=list()
|
|
for c in chapters:
|
|
sections=list()
|
|
for s in c.getElementsByTagName('section'):
|
|
sections.append({'name':s.getAttribute("name"),
|
|
'time':s.getAttribute("time"),
|
|
'format':s.getAttribute("format"),
|
|
'due':s.getAttribute("due"),
|
|
'active':(c.getAttribute("name")==active_chapter and \
|
|
s.getAttribute("name")==active_section)})
|
|
ch.append({'name':c.getAttribute("name"),
|
|
'sections':sections,
|
|
'active':(c.getAttribute("name")==active_chapter)})
|
|
return ch
|
|
|
|
def dom_select(dom, element_type, element_name):
|
|
if dom==None:
|
|
return None
|
|
elements=dom.getElementsByTagName(element_type)
|
|
for e in elements:
|
|
if e.getAttribute("name")==element_name:
|
|
return e
|
|
return None
|
|
|