def load_xslt(): # Add OAI Xslt xsltFullName = 'full_demo-oai_pmh' xsltFullPath = 'nmrr-full_demo-oai_pmh.xsl' xsltDetailName = 'detail_demo-oai_pmh' sltDetailPath = 'nmrr-detail_demo-oai_pmh.xsl' objFull = ResultXslt.objects(filename=xsltFullPath) if not objFull: file = open( os.path.join(SITE_ROOT, 'oai_pmh', 'resources', 'xsl', xsltFullPath), 'r') fileContent = file.read() objFull = ResultXslt(name=xsltFullName, filename=xsltFullPath, content=fileContent).save() Template.objects().update(set__ResultXsltList=objFull, upsert=True) objDetail = ResultXslt.objects(filename=sltDetailPath) if not objDetail: file = open( os.path.join(SITE_ROOT, 'oai_pmh', 'resources', 'xsl', sltDetailPath), 'r') fileContent = file.read() objDetail = ResultXslt(name=xsltDetailName, filename=sltDetailPath, content=fileContent).save() Template.objects().update(set__ResultXsltDetailed=objDetail, upsert=True)
def manage_result_xslt(request, id=None): if request.method == 'POST': upload_form = UploadResultXSLTForm(request.POST, request.FILES) name = upload_form['result_name'].value() name = name.strip(' \t\n\r') xml_file = upload_form['result_xslt_file'].value() # put the cursor at the beginning of the file xml_file.seek(0) # read the content of the file xml_data = xml_file.read() # check XML data or not? try: etree.fromstring(xml_data) except XMLSyntaxError: return HttpResponseBadRequest( 'Uploaded File is not well formed XML.') #No exceptions, we can add it in DB try: ResultXslt(name=name, filename=xml_file.name, content=xml_data).save() except NotUniqueError, e: return HttpResponseBadRequest( 'This XSLT name already exists. Please enter an other name.') messages.add_message(request, messages.INFO, 'XSLT saved with success.') return HttpResponse('ok')