Fundraising in PDF.
[wolnelektury.git] / src / oai / handlers.py
index b2f2559..c670449 100644 (file)
@@ -1,6 +1,5 @@
-# -*- coding: utf-8 -*-
-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
-# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
+# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
 #
 from datetime import datetime
 from lxml import etree
@@ -69,13 +68,13 @@ class Catalogue(common.ResumptionOAIPMH):
         year_zero = timezone.make_aware(datetime(1990, 1, 1, 0, 0, 0), timezone.utc)
 
         try:
-            earliest_change = Book.objects.filter(preview=False).order_by('changed_at')[0].changed_at
+            earliest_change = Book.objects.filter(findable=True, preview=False).order_by('changed_at')[0].changed_at
         except IndexError:
             earliest_change = year_zero
 
         try:
             earliest_delete = \
-                Deleted.objects.exclude(slug__exact=u'').order_by('deleted_at')[0].deleted_at
+                Deleted.objects.exclude(slug__exact='').order_by('deleted_at')[0].deleted_at
         except IndexError:
             earliest_delete = year_zero
 
@@ -90,7 +89,7 @@ class Catalogue(common.ResumptionOAIPMH):
         md = wl_dc_reader(xml)
         m = md.getMap()
         if book.parent:
-            m['isPartOf'] = [str(WLURI.from_slug(book.parent.slug))]
+            m['isPartOf'] = [str(WLURI(book.parent.slug))]
         return m
 
     def record_for_book(self, book, headers_only=False):
@@ -100,12 +99,12 @@ class Catalogue(common.ResumptionOAIPMH):
             # setSpec = map(self.tag_to_setspec, book.tags.filter(category__in=self.TAG_CATEGORIES))
             header = common.Header(None, identifier, make_time_naive(book.changed_at), [], False)
             if not headers_only:
-                meta = common.Metadata(self.metadata(book))
+                meta = common.Metadata(None, self.metadata(book))
             about = None
         elif isinstance(book, Deleted):
             header = common.Header(None, identifier, make_time_naive(book.deleted_at), [], True)
             if not headers_only:
-                meta = common.Metadata({})
+                meta = common.Metadata(None, {})
             about = None
         else:
             raise TypeError('Unknown book class')
@@ -133,8 +132,8 @@ class Catalogue(common.ResumptionOAIPMH):
             raise error.NoSetHierarchyError("Wolne Lektury does not support sets.")
             # books = Book.tagged.with_all([tag])
         else:
-            books = Book.objects.filter(preview=False)
-        deleted = Deleted.objects.exclude(slug__exact=u'')
+            books = Book.objects.filter(findable=True, preview=False)
+        deleted = Deleted.objects.exclude(slug__exact='')
 
         books = books.order_by('changed_at')
         deleted = deleted.order_by('deleted_at')