fix for empty editors
authorRadek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>
Mon, 24 Jan 2011 15:25:31 +0000 (16:25 +0100)
committerRadek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>
Mon, 24 Jan 2011 15:25:31 +0000 (16:25 +0100)
librarian/epub/xsltLast.xsl
librarian/pdf.py
librarian/text.py
tests/files/text/asnyk_miedzy_nami.xml

index 0739606..92f5be6 100644 (file)
   </xsl:template>\r
 \r
   <xsl:template name="editors">\r
-    <xsl:if test="//dc:contributor.editor|//dc:contributor.technical_editor">\r
+    <xsl:if test="//dc:contributor.editor[text()]|//dc:contributor.technical_editor[text()]">\r
         <p class="info">\r
             <xsl:text>Opracowanie redakcyjne i przypisy: </xsl:text>\r
-            <xsl:for-each select="//dc:contributor.editor|//dc:contributor.technical_editor[not(//dc:contributor.editor/text()=text())]">\r
+            <xsl:for-each select="//dc:contributor.editor[text()]|//dc:contributor.technical_editor[text() and not(//dc:contributor.editor/text()=text())]">\r
                 <xsl:sort />\r
                 <xsl:if test="position() != 1">, </xsl:if>\r
                 <xsl:apply-templates mode="person" />\r
index 41de1b3..5f28547 100644 (file)
@@ -132,6 +132,8 @@ def parse_creator(doc):
     for person in doc.xpath("|".join('//dc:'+(tag) for tag in (
                     'creator', 'contributor.translator', 'contributor.editor', 'contributor.technical_editor')),
                     namespaces = {'dc': str(DCNS)})[::-1]:
+        if not person.text:
+            continue
         p = Person.from_text(person.text)
         person_parsed = deepcopy(person)
         person_parsed.tag = person.tag + '_parsed'
index bcb031d..f5aafc1 100644 (file)
@@ -55,7 +55,8 @@ def transform(input_file, output_file, parse_dublincore=True, **options):
         else:
             source = ''
 
-        contributors = ', '.join(person.readable() for person in sorted(set(parsed_dc.technical_editors + parsed_dc.editors)))
+        contributors = ', '.join(person.readable() for person in 
+                                 sorted(set(p for p in (parsed_dc.technical_editors + parsed_dc.editors) if p)))
         if contributors:
             contributors = "\n\nOpracowanie redakcyjne i przypisy: %s" % contributors
     else:
index d7ab4fc..36d8df6 100644 (file)
@@ -6,6 +6,7 @@
 <rdf:Description rdf:about="http://wiki.wolnepodreczniki.pl/Lektury:Asnyk/Między_nami_nic_nie_było">
 <dc:creator xml:lang="pl">Asnyk, Adam</dc:creator>
 <dc:title xml:lang="pl">Między nami nic nie było</dc:title>
+<dc:contributor.editor xml:lang="pl" />
 <dc:contributor.editor xml:lang="pl">Sekuła, Aleksandra</dc:contributor.editor>
 <dc:contributor.technical_editor xml:lang="pl">Sutkowska, Olga</dc:contributor.technical_editor>
 <dc:publisher xml:lang="pl">Fundacja Nowoczesna Polska</dc:publisher>