else:
return TextPlus(text.decode('utf-8'))
+def as_bool(text):
+ return text == 'true'
+as_bool.no_lang = True
def as_wluri_strict(text):
return WLURI.strict(text)
if validator is None or val[0] is None:
return val[0]
nv = validator(val[0])
- if hasattr(val[0], 'lang'):
+ if hasattr(val[0], 'lang') and not hasattr(validator, 'no_lang'):
setattr(nv, 'lang', val[0].lang)
return nv
except ValueError as e:
raise ValidationError(
"Field '%s' - invald value: %s"
- % (self.uri, e.message)
+ % (self.uri, str(e))
)
def validate(self, fdict, fallbacks=None, strict=False, validate_required=True):
Field(PLMETNS('digitisationSponsor'), 'sponsors', multiple=True,
required=False),
Field(WLNS('digitisationSponsorNote'), 'sponsor_note', required=False),
+ Field(WLNS('contentWarning'), 'content_warnings', multiple=True,
+ required=False),
Field(WLNS('developmentStage'), 'stage', required=False),
)
required=False),
Field(DCNS('subject.genre'), 'genres', salias='genre', multiple=True,
required=False),
+ Field(WLNS('category.legimi'), 'legimi', required=False),
Field(DCNS('subject.location'), 'location', required=False),
Field(WLNS('coverClass'), 'cover_class', default=['default']),
Field(WLNS('coverLogoUrl'), 'cover_logo_urls', multiple=True,
required=False),
+ Field(WLNS('endnotes'), 'endnotes', as_bool,
+ required=False),
Field('pdf-id', 'isbn_pdf', required=False),
Field('epub-id', 'isbn_epub', required=False),