generate isPartOf from parent
authorMarcin Koziej <marcin.koziej@nowoczesnapolska.org.pl>
Wed, 5 Sep 2012 13:36:29 +0000 (15:36 +0200)
committerMarcin Koziej <marcin.koziej@nowoczesnapolska.org.pl>
Wed, 5 Sep 2012 13:36:29 +0000 (15:36 +0200)
apps/oai/handlers.py

index 824cca9..26e1cfa 100644 (file)
@@ -3,6 +3,7 @@ from catalogue.models import Book, Tag
 from api.models import Deleted
 from api.handlers import WL_BASE
 from librarian.dcparser import BookInfo
 from api.models import Deleted
 from api.handlers import WL_BASE
 from librarian.dcparser import BookInfo
+from librarian import WLURI
 from django.contrib.contenttypes.models import ContentType
 from django.contrib.auth.models import User
 from datetime import datetime
 from django.contrib.contenttypes.models import ContentType
 from django.contrib.auth.models import User
 from datetime import datetime
@@ -27,7 +28,7 @@ wl_dc_reader = metadata.MetadataReader(
     'identifier':  ('textList', 'rdf:RDF/rdf:Description/dc:identifier.url/text()'),
     'source':      ('textList', 'rdf:RDF/rdf:Description/dc:source/text()'),
     'language':    ('textList', 'rdf:RDF/rdf:Description/dc:language/text()'),
     'identifier':  ('textList', 'rdf:RDF/rdf:Description/dc:identifier.url/text()'),
     'source':      ('textList', 'rdf:RDF/rdf:Description/dc:source/text()'),
     'language':    ('textList', 'rdf:RDF/rdf:Description/dc:language/text()'),
-    'isPartOf':     ('textList', 'rdf:RDF/rdf:Description/dc:relation.isPartOf/text()'),
+    #'isPartOf':     ('textList', 'rdf:RDF/rdf:Description/dc:relation.isPartOf/text()'),
     'hasPart':     ('textList', 'rdf:RDF/rdf:Description/dc:relation.hasPart/text()'),
     #    'relation':    ('textList', 'rdf:RDF/rdf:Description/dc:relation/text()'),
     #    'coverage':    ('textList', 'rdf:RDF/rdf:Description/dc:coverage/text()'),
     'hasPart':     ('textList', 'rdf:RDF/rdf:Description/dc:relation.hasPart/text()'),
     #    'relation':    ('textList', 'rdf:RDF/rdf:Description/dc:relation/text()'),
     #    'coverage':    ('textList', 'rdf:RDF/rdf:Description/dc:coverage/text()'),
@@ -70,7 +71,10 @@ class Catalogue(common.ResumptionOAIPMH):
         finally:
             book.xml_file.close()
         md = wl_dc_reader(xml)
         finally:
             book.xml_file.close()
         md = wl_dc_reader(xml)
-        return md.getMap()
+        m = md.getMap()
+        if book.parent:
+            m['isPartOf'] = [str(WLURI.from_slug(book.parent.slug))]
+        return m
 
     def record_for_book(self, book, headers_only=False):
         meta = None
 
     def record_for_book(self, book, headers_only=False):
         meta = None