diff options
Diffstat (limited to 'chimere/utils.py')
-rw-r--r-- | chimere/utils.py | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/chimere/utils.py b/chimere/utils.py index 7bf3ef0..e238a4b 100644 --- a/chimere/utils.py +++ b/chimere/utils.py @@ -571,11 +571,17 @@ class CSVManager(ImportManager): # (label, getter, setter) COLS = [("Id", 'pk', 'pk'), (_("Name"), 'name', 'name'), - (_("Categories"), lambda obj: ", ".join( - [c.name for c in obj.categories.all()]), set_categories), + (_("Categories"), lambda obj: ('"' + '";"'.join( + [c.name for c in obj.categories.all()]) + '"'), set_categories), (_("State"), 'status', lambda x: x), - (_("Description"), 'description', 'description'), - (_("Localisation"), 'geometry', 'geometry')] + (_("Description"), 'description', 'description')] + EXTRA_COLS = { + "Marker": [ + (_("Latitude"), 'y', 'set_y'), + (_("Longitude"), 'x', 'set_x') + ], + "Route": [(_("Localisation"), 'geometry', 'geometry')], + } def _get(self, reader, cols): from chimere.models import Marker, Route @@ -642,7 +648,9 @@ class CSVManager(ImportManager): for pm in Marker.all_properties(): prop_cols.append((pm.name, pm.getAttrName(), pm.getAttrName() + '_set')) - cols = list(self.COLS) + prop_cols + cols = list(self.COLS) + cols += self.EXTRA_COLS["Marker"] + cols += prop_cols for coding in ['utf-8', 'windows-1252', 'iso-8859-1', 'iso-8859-15']: try: @@ -659,6 +667,10 @@ class CSVManager(ImportManager): dct = {'description': str(datetime.date.today()), 'data': []} # cls_name = queryset.model.__name__.lower() cols = list(cls.COLS) + if "Marker" in queryset.model.__name__: + cols += cls.EXTRA_COLS["Marker"] + else: + cols += cls.EXTRA_COLS["Route"] for pm in queryset.model.all_properties(): cols.append((pm.name, pm.getAttrName(), pm.getAttrName() + '_set')) header = [col[0] for col in cols] |