diff options
Diffstat (limited to 'chimere/migrations/0003_convert_tiny_urls.py')
-rw-r--r-- | chimere/migrations/0003_convert_tiny_urls.py | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/chimere/migrations/0003_convert_tiny_urls.py b/chimere/migrations/0003_convert_tiny_urls.py deleted file mode 100644 index fb39210..0000000 --- a/chimere/migrations/0003_convert_tiny_urls.py +++ /dev/null @@ -1,110 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.conf import settings -from django.db import migrations -import ogr -import osr - - -def convert_tiny_urls(apps, schema_editor): - TinyUrl = apps.get_model('chimere', 'TinyUrl') - in_ref = osr.SpatialReference() - in_ref.ImportFromEPSG(3857) - out_ref = osr.SpatialReference() - out_ref.ImportFromEPSG(settings.CHIMERE_EPSG_DISPLAY_PROJECTION) - transform = osr.CoordinateTransformation(in_ref, out_ref) - - for tiny_url in TinyUrl.objects.all(): - new_param = { - 'zoom': '', - 'lat': '', - 'lon': '', - 'checked_categories': '', - 'current_feature': '', - 'routing_speed': '', - 'routing_transport': '', - 'routing_start_lat': '', - 'routing_start_lon': '', - 'routing_end_lat': '', - 'routing_end_lon': '', - 'steps': '' - } - for parameter in tiny_url.parameters.split('&'): - items = parameter.split('=') - if len(items) != 2: - continue - param, value = items - if param in ('zoom', 'routing_speed', 'routing_transport', - 'routing_start_lat', 'routing_start_lon', - 'routing_end_lat', 'routing_end_lon'): - new_param[param] = value - elif param in ('lat', 'lon'): - x, y = 242500, 6230000 - if param == 'lat': - y = int(float(value)) - else: - x = int(float(value)) - point = ogr.Geometry(ogr.wkbPoint) - point.AddPoint(x, y) - point.Transform(transform) - if param == 'lat': - new_param[param] = point.GetY() - else: - new_param[param] = point.GetX() - elif param == 'checked_categories': - if '%2C' in value: - value = '-'.join(value.split('%2C')) - if '_' in value: - value = '-'.join(value.split('_')) - new_param[param] = value - elif param == 'current_feature': - if value: - new_param[param] = 'marker-' + value - elif param == 'routing_steps': - if not value: - continue - vals = value.split('%2C') - steps = [] - for idx in range(int(len(vals) / 2)): - steps.append("{}:{}".format(vals[2 * idx], - vals[2 * idx + 1])) - new_param['steps'] = ';'.join(steps) - - if not new_param['zoom'] or int(new_param['zoom']) < 12: - new_param['zoom'] = '12' - - new_param['coord'] = '' - if new_param['lon'] and new_param['lat']: - new_param['coord'] = '{lon}:{lat}'.format(**new_param) - new_param['routing_start'] = '' - if new_param['routing_start_lat'] and new_param['routing_start_lon']: - new_param['routing_start'] = \ - "{routing_start_lat}:{routing_start_lon}".format(**new_param) - new_param['routing_end'] = '' - if new_param['routing_end_lat'] and new_param['routing_end_lon']: - new_param['routing_end'] = \ - "{routing_end_lat}:{routing_end_lon}".format(**new_param) - - tiny_url.parameters = \ - "{zoom};{coord};"\ - ";{checked_categories};{current_feature}"\ - "{routing_speed};{routing_transport};"\ - "{routing_start};"\ - "{routing_end};"\ - "{steps}".format(**new_param) - if TinyUrl.objects.filter(parameters=tiny_url.parameters).count(): - tiny_url.delete() - else: - tiny_url.save() - - -class Migration(migrations.Migration): - - dependencies = [ - ('chimere', '0002_property_route'), - ] - - operations = [ - migrations.RunPython(convert_tiny_urls), - ] |