X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/99f6dd4f1ff0390de9a9bbd4e3352b953cb9a235..0e79f07515678e3e678c3637124a27cb81ee8a94:/apps/oai/views.py diff --git a/apps/oai/views.py b/apps/oai/views.py index 7155d69fb..5bb902508 100644 --- a/apps/oai/views.py +++ b/apps/oai/views.py @@ -3,10 +3,11 @@ # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. # from oai.handlers import Catalogue, NS_DCTERMS, nsdcterms -from oaipmh.server import ServerBase, oai_dc_writer, NS_OAIDC, NS_DC, NS_XSI, nsoaidc, nsdc +from oaipmh.server import ServerBase, NS_OAIDC, NS_DC, NS_XSI, nsoaidc, nsdc from oaipmh.metadata import MetadataRegistry from django.http import HttpResponse -from lxml.etree import tostring, SubElement +from django.utils.functional import SimpleLazyObject +from lxml.etree import SubElement @@ -29,12 +30,12 @@ def fbc_oai_dc_writer(element, metadata): for value in map.get(name, []): e = SubElement(e_dc, nsdc(name)) e.text = value - + def qdc_writer(element, metadata): """FBC notified us that original writer does not output all necessary namespace declarations. """ - nsmap={'oai_dc': NS_OAIDC, 'dc': NS_DC, 'xsi': NS_XSI, 'dcterms': NS_DCTERMS} + nsmap = {'oai_dc': NS_OAIDC, 'dc': NS_DC, 'xsi': NS_XSI, 'dcterms': NS_DCTERMS} map = metadata.getMap() for name in [ 'title', 'creator', 'subject', 'description', 'publisher', @@ -57,8 +58,10 @@ metadata_registry.registerWriter('oai_dc', fbc_oai_dc_writer) metadata_registry.registerWriter('qdc', qdc_writer) -server = ServerBase(Catalogue(metadata_registry), metadata_registry, - {'topxsi': NS_XSI}) +server = SimpleLazyObject(lambda: + ServerBase(Catalogue(metadata_registry), metadata_registry, + {'topxsi': NS_XSI}) + ) def oaipmh(request):