diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-04-25 14:50:27 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-04-25 14:50:27 +0200 |
commit | 949e4b5174f1990b480cbb9fca85dd48c9f4a789 (patch) | |
tree | 4931d5f5b57a998b9a243d2766d27b95c1c78bad | |
parent | 59f58331db373f4b60c8b9cdd57199a78daf42a9 (diff) | |
download | Chimère-949e4b5174f1990b480cbb9fca85dd48c9f4a789.tar.bz2 Chimère-949e4b5174f1990b480cbb9fca85dd48c9f4a789.zip |
CSV : export des lat, long
-rw-r--r-- | chimere/models.py | 8 | ||||
-rw-r--r-- | chimere/utils.py | 22 |
2 files changed, 25 insertions, 5 deletions
diff --git a/chimere/models.py b/chimere/models.py index a58a628..cdbf79b 100644 --- a/chimere/models.py +++ b/chimere/models.py @@ -1208,6 +1208,14 @@ class Marker(GeographicItem): verbose_name = _("Point of interest") @property + def x(self): + return self.point.x + + @property + def y(self): + return self.point.y + + @property def multimedia_items(self): pict = list(self.pictures.filter(miniature=False).all()) mm = list(self.multimedia_files.filter(miniature=False).all()) 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] |