summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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
commit949e4b5174f1990b480cbb9fca85dd48c9f4a789 (patch)
tree4931d5f5b57a998b9a243d2766d27b95c1c78bad
parent59f58331db373f4b60c8b9cdd57199a78daf42a9 (diff)
downloadChimère-949e4b5174f1990b480cbb9fca85dd48c9f4a789.tar.bz2
Chimère-949e4b5174f1990b480cbb9fca85dd48c9f4a789.zip
CSV : export des lat, long
-rw-r--r--chimere/models.py8
-rw-r--r--chimere/utils.py22
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]