diff options
Diffstat (limited to 'chimere/widgets.py')
-rw-r--r-- | chimere/widgets.py | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/chimere/widgets.py b/chimere/widgets.py index 96d36b9..237c609 100644 --- a/chimere/widgets.py +++ b/chimere/widgets.py @@ -59,7 +59,7 @@ def getMapJS(area_name=''): return js -def get_map_layers(area_name=''): +def get_map_layers(area_name='', get_area_zoom=False): from chimere.models import Area area = None if area_name: @@ -94,7 +94,12 @@ def get_map_layers(area_name=''): style: 'Road', source: new ol.source.MapQuest({layer: 'osm'}) })""", True)] - return map_layers, default + if not get_area_zoom: + return map_layers, default + if not area: + return map_layers, default, settings.CHIMERE_DEFAULT_ZOOM + zoom = "[%s]" % ",".join(area.getExtent()) + return map_layers, default, zoom class ChosenSelectWidget(forms.Select): @@ -313,7 +318,8 @@ class PointChooserWidget(forms.TextInput): value = None else: value = None - map_layers, default_area = get_map_layers(area_name) + map_layers, default_area, zoom = get_map_layers(area_name, + get_area_zoom=True) map_layers = [js for n, js, default in map_layers if js] # TODO: manage area return mark_safe( @@ -336,7 +342,8 @@ class PointChooserWidget(forms.TextInput): settings.CHIMERE_DEFAULT_CENTER[1]), settings.CHIMERE_DEFAULT_ZOOM, settings.STATIC_URL, - ", ".join(map_layers) + ", ".join(map_layers), + zoom ) ) @@ -632,7 +639,8 @@ class PolygonChooserWidget(forms.TextInput): val = '' if value: val = str(value) - map_layers, default_area = get_map_layers(area_name) + map_layers, default_area, zoom = get_map_layers(area_name, + get_area_zoom=True) map_layers = [js for n, js, default in map_layers if 'OpenLayers' not in js] tpl = render_to_string( @@ -642,13 +650,12 @@ class PolygonChooserWidget(forms.TextInput): 'default_area': "true" if default_area else "false", 'value': value} ) - # TODO: manage area return mark_safe(tpl.format( static_url=settings.STATIC_URL, display_projection=settings.CHIMERE_EPSG_DISPLAY_PROJECTION, projection=settings.CHIMERE_EPSG_PROJECTION, center=list(settings.CHIMERE_DEFAULT_CENTER), - zoom=settings.CHIMERE_DEFAULT_ZOOM, + zoom=zoom, map_layers=", ".join(map_layers) )) |