--- a/src/core/import_processor.py Fri Jun 21 17:09:03 2013 +0200
+++ b/src/core/import_processor.py Mon Jun 24 00:38:29 2013 +0200
@@ -24,6 +24,11 @@
setattr(obj, self.field, value)
return {}
+class TrimCharFieldProcessor(CharFieldProcessor):
+
+ def process(self, obj, value):
+ return super(TrimCharFieldProcessor, self).process(obj, value.strip())
+
class BooleanFieldProcessor(ImportProcessor):
def process(self, obj, value):
@@ -32,14 +37,14 @@
class DateFieldProcessor(ImportProcessor):
def process(self, obj, value):
- setattr(obj, self.field, parser.parse(value))
+ setattr(obj, self.field, parser.parse(value) if value else None)
class TermProcessor(ImportProcessor):
- def __init__(self, field, context, notice_term_klass, re_split = "[;,:]", re_sub = "\(.+?\)"):
+ def __init__(self, field, context, notice_term_klass, re_split = r"[\;\,\:\(\)]", re_sub = "\(.+?\)"):
ImportProcessor.__init__(self, field)
- self.re_split = re_split
- self.re_sub = re_sub
+ self.re_split = re.compile(re_split)
+ self.re_sub = re.compile(re_sub) if re_sub else None
self.context = context
self.notice_term_klass = notice_term_klass
@@ -56,11 +61,10 @@
#remove everything between ()
value = getattr(obj, self.field)
if self.re_sub:
- value = re.sub(self.re_sub, "", value)
- for token in re.split(self.re_split, value):
+ value = self.re_sub.sub("", value)
+ for token in self.re_split.split(value):
token = token.strip()
nt = self.build_notice_term(token, obj)
if nt is not None:
res.setdefault(self.notice_term_klass,[]).append(nt)
-
return res