--- a/dataimport.py Wed Apr 09 17:29:25 2014 +0200
+++ b/dataimport.py Tue Jun 10 09:49:45 2014 +0200
@@ -141,13 +141,13 @@
for row in it:
decoded = [item.decode(encoding) for item in row]
if not skip_empty or any(decoded):
- yield [item.decode(encoding) for item in row]
+ yield decoded
else:
- # Skip first line
- try:
- row = it.next()
- except csv.Error:
- pass
+ if skipfirst:
+ try:
+ row = it.next()
+ except csv.Error:
+ pass
# Safe version, that can cope with error in CSV file
while True:
try:
@@ -472,11 +472,13 @@
if isinstance(value, unicode):
value = value.encode(encoding)
elif isinstance(value, (date, datetime)):
- # Do not use strftime, as it yields issue
- # with date < 1900
value = '%04d-%02d-%02d' % (value.year,
value.month,
value.day)
+ if isinstance(value, datetime):
+ value += ' %02d:%02d:%02d' % (value.hour,
+ value.minutes,
+ value.second)
else:
return None
# We push the value to the new formatted row
@@ -860,30 +862,38 @@
del entity.cw_extra_kwargs
entity.cw_edited = EditedEntity(entity)
for attr in self.etype_attrs:
- entity.cw_edited.edited_attribute(attr, self.generate(entity, attr))
+ genfunc = self.generate(attr)
+ if genfunc:
+ entity.cw_edited.edited_attribute(attr, genfunc(entity))
rels = {}
for rel in self.etype_rels:
- rels[rel] = self.generate(entity, rel)
+ genfunc = self.generate(rel)
+ if genfunc:
+ rels[rel] = genfunc(entity)
return entity, rels
def init_entity(self, entity):
entity.eid = self.source.create_eid(self.session)
for attr in self.entity_attrs:
- entity.cw_edited.edited_attribute(attr, self.generate(entity, attr))
+ genfunc = self.generate(attr)
+ if genfunc:
+ entity.cw_edited.edited_attribute(attr, genfunc(entity))
- def generate(self, entity, rtype):
- return getattr(self, 'gen_%s' % rtype)(entity)
+ def generate(self, rtype):
+ return getattr(self, 'gen_%s' % rtype, None)
def gen_cwuri(self, entity):
return u'%s%s' % (self.baseurl, entity.eid)
def gen_creation_date(self, entity):
return self.time
+
def gen_modification_date(self, entity):
return self.time
def gen_created_by(self, entity):
return self.session.user.eid
+
def gen_owned_by(self, entity):
return self.session.user.eid