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')  | 
