def make_xml(self): """ Write the javascript representation of the XML files (theme XSLT and exam XML) """ xslts = {} if self.question_xslt is not None: xslts['question'] = xml2js.encode(self.question_xslt) if self.part_xslt is not None: xslts['part'] = xml2js.encode(self.part_xslt) xslts_js = ',\n\t\t'.join('{}: "{}"'.format(name, body) for name, body in xslts.items()) extensionfiles = [] for extension in self.extensions: name = os.path.split(extension)[1] if os.path.exists(os.path.join(extension, name + '.js')): extensionfiles.append('extensions/' + name + '/' + name + '.js') custom_part_types = {} for pt in self.custom_part_types: custom_part_types[pt['short_name']] = pt self.xmls = xml2js.settings_js_template.format( **{ 'extensionfiles': extensionfiles, 'templates': xslts_js, 'examXML': xml2js.encode(self.examXML), 'custom_part_types': json.dumps(custom_part_types), })
def make_xml(self): """ Write the javascript representation of the XML files (theme XSLT and exam XML) """ xslts = {} for themedir in self.themepaths: xsltdir = os.path.join(themedir,'xslt') if os.path.exists(xsltdir): files = filter(lambda x: x[-5:]=='.xslt', os.listdir(xsltdir)) for file in files: name, ext = os.path.splitext(file) xslts[name] = xml2js.encode(open(os.path.join(xsltdir,file),encoding='utf-8').read()) if 'question' not in xslts and self.question_xslt is not None: xslts['question'] = xml2js.encode(self.question_xslt) xslts_js = ',\n\t\t'.join('{}: "{}"'.format(name,body) for name,body in xslts.items()) extensionfiles = [] for extension in self.extensions: name = os.path.split(extension)[1] if os.path.exists(os.path.join(extension,name+'.js')): extensionfiles.append('extensions/'+name+'/'+name+'.js') self.xmls = xml2js.rawxml_js_template.format(**{ 'extensionfiles': str(extensionfiles), 'templates': xslts_js, 'examXML': xml2js.encode(self.examXML), })
def make_xml(self): """ Write the javascript representation of the XML files (theme XSLT and exam XML) """ xslts = {} for themedir in self.themepaths: xsltdir = os.path.join(themedir,'xslt') if os.path.exists(xsltdir): files = filter(lambda x: x[-5:]=='.xslt', os.listdir(xsltdir)) for file in files: name, ext = os.path.splitext(file) xslts[name] = xml2js.encode(open(os.path.join(xsltdir,file),encoding='utf-8').read()) if 'question' not in xslts and self.question_xslt is not None: xslts['question'] = xml2js.encode(self.question_xslt) xslts_js = ',\n\t\t'.join('{}: "{}"'.format(name,body) for name,body in xslts.items()) extensionfiles = [] for extension in self.extensions: name = os.path.split(extension)[1] if os.path.exists(os.path.join(extension,name+'.js')): extensionfiles.append('extensions/'+name+'/'+name+'.js') self.xmls = xml2js.rawxml_js_template.format(**{ 'extensionfiles': str(extensionfiles), 'templates': xslts_js, 'examXML': xml2js.encode(self.examXML), })
def make_xml(self): """ Write the javascript representation of the XML files (theme XSLT and exam XML) """ xslts = {} if self.question_xslt is not None: xslts['question'] = xml2js.encode(self.question_xslt) if self.part_xslt is not None: xslts['part'] = xml2js.encode(self.part_xslt) xslts_js = ',\n\t\t'.join('{}: "{}"'.format(name, body) for name, body in xslts.items()) extensionfiles = [] for extension in self.extensions: path = Path(extension) if os.path.exists((path / path.name).with_suffix('.js')): extensionfiles.append(PurePath('extensions', path.name, path.name).with_suffix('.js')) custom_part_types = {} for pt in self.custom_part_types: custom_part_types[pt['short_name']] = pt self.xmls = xml2js.settings_js_template.format(**{ 'extensionfiles': [str(x) for x in extensionfiles], 'templates': xslts_js, 'examXML': xml2js.encode(self.examXML), 'custom_part_types': json.dumps(custom_part_types), })