fnp
/
wolnelektury.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add missing constraint.
[wolnelektury.git]
/
src
/
search
/
index.py
diff --git
a/src/search/index.py
b/src/search/index.py
index
06d2c4a
..
68a2b3b
100644
(file)
--- a/
src/search/index.py
+++ b/
src/search/index.py
@@
-9,6
+9,9
@@
import os
import re
from django.conf import settings
from librarian import dcparser
import re
from django.conf import settings
from librarian import dcparser
+import librarian.meta.types.date
+import librarian.meta.types.person
+import librarian.meta.types.text
from librarian.parser import WLDocument
from lxml import etree
import scorched
from librarian.parser import WLDocument
from lxml import etree
import scorched
@@
-95,7
+98,10
@@
class Snippets(object):
of the snippet stored there.
"""
self.file.seek(pos[0], 0)
of the snippet stored there.
"""
self.file.seek(pos[0], 0)
- txt = self.file.read(pos[1]).decode('utf-8')
+ try:
+ txt = self.file.read(pos[1]).decode('utf-8')
+ except:
+ return ''
return txt
def close(self):
return txt
def close(self):
@@
-315,21
+321,20
@@
class Index(SolrIndex):
if hasattr(book_info, field.name):
if not getattr(book_info, field.name):
continue
if hasattr(book_info, field.name):
if not getattr(book_info, field.name):
continue
- # since no type information is available, we use validator
- type_indicator = field.validator
- if type_indicator == dcparser.as_unicode:
+ type_indicator = field.value_type
+ if issubclass(type_indicator, librarian.meta.types.text.TextValue):
s = getattr(book_info, field.name)
if field.multiple:
s = ', '.join(s)
fields[field.name] = s
s = getattr(book_info, field.name)
if field.multiple:
s = ', '.join(s)
fields[field.name] = s
- elif
type_indicator == dcparser.as_person
:
+ elif
issubclass(type_indicator, librarian.meta.types.person.Person)
:
p = getattr(book_info, field.name)
p = getattr(book_info, field.name)
- if isinstance(p,
dcparser
.Person):
+ if isinstance(p,
librarian.meta.types.person
.Person):
persons = str(p)
else:
persons = ', '.join(map(str, p))
fields[field.name] = persons
persons = str(p)
else:
persons = ', '.join(map(str, p))
fields[field.name] = persons
- elif
type_indicator == dcparser.as_date
:
+ elif
issubclass(type_indicator, librarian.meta.types.date.DateValue)
:
dt = getattr(book_info, field.name)
fields[field.name] = dt
dt = getattr(book_info, field.name)
fields[field.name] = dt