summaryrefslogtreecommitdiff
path: root/chimere/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'chimere/utils.py')
-rw-r--r--chimere/utils.py15
1 files changed, 10 insertions, 5 deletions
diff --git a/chimere/utils.py b/chimere/utils.py
index f5379aa..7463a50 100644
--- a/chimere/utils.py
+++ b/chimere/utils.py
@@ -554,12 +554,14 @@ class CSVManager(ImportManager):
return (new_item, updated_item, msg)
@classmethod
- def export(cls, queryset):
+ def export(cls, queryset, cols=[]):
dct = {'description':unicode(datetime.date.today()), 'data':[]}
cls_name = queryset.model.__name__.lower()
- cols = list(cls.COLS)
- for pm in queryset.model.all_properties():
- cols.append((pm.name, pm.getAttrName(), pm.getAttrName()+'_set'))
+ if not cols:
+ cols = list(cls.COLS)
+ if hasattr(queryset.model, 'all_properties'):
+ for pm in queryset.model.all_properties():
+ cols.append((pm.name, pm.getAttrName(), pm.getAttrName()+'_set'))
header = [col[0] for col in cols]
dct['data'].append(header)
for item in queryset.all():
@@ -568,7 +570,10 @@ class CSVManager(ImportManager):
if callable(attr):
data.append(attr(item))
else:
- data.append(getattr(item, attr))
+ v = getattr(item, attr)
+ if v == None:
+ v = ''
+ data.append(v)
dct['data'].append(data)
filename = unicode_normalize(settings.PROJECT_NAME + dct['description']\
+ '.csv')