diff options
Diffstat (limited to 'chimere/utils.py')
| -rw-r--r-- | chimere/utils.py | 15 |
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') |
