def delete_result_xslt(request): if request.method == 'POST': try: xslt_id = request.POST['xslt_id'] ResultXslt.objects(pk=xslt_id).delete() except Exception: return HttpResponseBadRequest('Something went wrong during the deletion') messages.add_message(request, messages.INFO, 'XSLT deleted with success.') return HttpResponse(json.dumps({}), content_type='application/javascript')
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')
def load_xslt(): # Add OAI Xslt xsltFullName = 'full-oai_pmh' xsltFullPath = 'nmrr-full-oai_pmh.xsl' xsltDetailName = 'detail-oai_pmh' sltDetailPath = 'nmrr-detail-oai_pmh.xsl' objFull = ResultXslt.objects(filename='nmrr-full-oai_pmh.xsl') 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=str(objFull.id), upsert=True) objDetail = ResultXslt.objects(filename='nmrr-detail-oai_pmh.xsl') 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=str(objDetail.id), upsert=True)
def dump_result_xslt(self): self.assertEquals(len(ResultXslt.objects()), 0) self.restoreDump(join(DUMP_TEST_PATH, 'result_xslt.bson'), 'result_xslt') self.assertTrue(len(ResultXslt.objects()) > 0)