예제 #1
0
파일: discover.py 프로젝트: RayPlante/RDA
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)
예제 #2
0
파일: views.py 프로젝트: hzhao1230/NanoMine
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')