Created
October 3, 2012 09:57
-
-
Save bosim/3826155 to your computer and use it in GitHub Desktop.
Script for exporting ATVocabularyManager vocabularies to IMS VDEX format. Put it in the "custom" folder and access it using http://<my-site>/portal_vocabularies/<vocabName>/exportVocabulary
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def recurse(element): | |
elements = [] | |
for item in element.objectValues(): | |
d = {'uid' : item.UID(), | |
'title' : item.title, | |
'children' : []} | |
if hasattr(item, 'objectValues'): | |
d['children'] = recurse(item) | |
elements.append(d) | |
return elements | |
def indent(text, level): | |
return (' '.join([' ' for i in range(0, level * 2)])) + text + '\n' | |
def prettyPrint(elements, level): | |
result = "" | |
for element in elements: | |
result += indent('<term>', level) | |
result += indent(' <termIdentifier>%s</termIdentifier>' % element['uid'], level) | |
result += indent(' <caption>', level) | |
result += indent(' <langstring language="da">%s</langstring>' % element['title'], level) | |
result += indent(' </caption>', level) | |
result += prettyPrint(element['children'], level + 1) | |
result += indent('</term>', level) | |
return result | |
result = recurse(context) | |
print """ | |
<?xml version="1.0" encoding="UTF-8"?> | |
<vdex xmlns="http://www.imsglobal.org/xsd/imsvdex_v1p0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.imsglobal.org/xsd/imsvdex_v1p0 imsvdex_v1p0.xsd http://www.imsglobal.org/xsd/imsmd_rootv1p2p1 imsmd_rootv1p2p1.xsd" orderSignificant="false" profileType="flatTokenTerms" language="en"> | |
<vocabName> | |
<langstring language="da">EDIT TITLE</langstring> | |
</vocabName> | |
<vocabIdentifier>EDIT NAME</vocabIdentifier> | |
""" | |
print prettyPrint(result, 1) | |
print "</vdex>" | |
return printed |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment