diff options
-rw-r--r-- | chimere/management/commands/v3_to_v2_markers.py | 10 |
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) |