summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-06-14 13:07:05 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-06-14 13:07:05 +0200
commitb6e4b8d34e410080a4c65e0ca0245a4a5d9a9662 (patch)
tree06bd62ac95e879991d9348ee835bfa04b7312ddb
parent7d02674ff0651181e1b5261351807b416e412689 (diff)
downloadChimère-b6e4b8d34e410080a4c65e0ca0245a4a5d9a9662.tar.bz2
Chimère-b6e4b8d34e410080a4c65e0ca0245a4a5d9a9662.zip
v2 to v3 dump: exclude some entry with empty field
-rw-r--r--chimere/management/commands/v3_to_v2_markers.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/chimere/management/commands/v3_to_v2_markers.py b/chimere/management/commands/v3_to_v2_markers.py
index e91e6c7..d84e239 100644
--- a/chimere/management/commands/v3_to_v2_markers.py
+++ b/chimere/management/commands/v3_to_v2_markers.py
@@ -5,13 +5,15 @@ from django.core.management import call_command
from django.core.management.base import BaseCommand
-def get_data(model_name, filters=tuple()):
+def get_data(model_name, filters=tuple(), exclude_empty=tuple()):
out = StringIO()
call_command('dumpdata', 'chimere.' + model_name, stdout=out)
values = json.loads(out.getvalue())
result = []
for value in values:
data = value.copy()
+ if [exc for exc in exclude_empty if not data["fields"][exc]]:
+ continue
for attr in filters:
data["fields"].pop(attr)
result.append(data)
@@ -27,8 +29,10 @@ class Command(BaseCommand):
filters=('weight', 'normalised_weight'))
new_markers += get_data('Marker_categories')
new_markers += get_data('Property', filters=('route', 'polygon'))
- new_markers += get_data('PictureFile', filters=('route', 'polygon'))
- new_markers += get_data('MultimediaFile', filters=('route', 'polygon'))
+ new_markers += get_data('PictureFile', filters=('route', 'polygon'),
+ exclude_empty=('marker',))
+ new_markers += get_data('MultimediaFile', filters=('route', 'polygon'),
+ exclude_empty=('marker',))
res = json.dumps(new_markers)
self.stdout.write(res)