diff options
Diffstat (limited to 'chimere/widgets.py')
| -rw-r--r-- | chimere/widgets.py | 23 | 
1 files changed, 17 insertions, 6 deletions
| diff --git a/chimere/widgets.py b/chimere/widgets.py index 237c609..2e43b26 100644 --- a/chimere/widgets.py +++ b/chimere/widgets.py @@ -75,7 +75,7 @@ def get_map_layers(area_name='', get_area_zoom=False):      map_layers, default = [], None      if area and area.layers.count():          map_layers = [ -            [layer.name, layer.layer_code, False] +            [layer.name, layer.layer_code, False, layer.extra_js_code or '']              for layer in area.layers.order_by('arealayers__order').all()]          def_layer = area.layers.filter(arealayers__default=True)          if def_layer.count(): @@ -88,12 +88,12 @@ def get_map_layers(area_name='', get_area_zoom=False):              map_layers[0][2] = True      elif settings.CHIMERE_DEFAULT_MAP_LAYER:          map_layers = [(_(u"Default layer"), settings.CHIMERE_DEFAULT_MAP_LAYER, -                       True)] +                       True, '')]      else:          map_layers = [(u"Mapquest", """new ol.layer.Tile({      style: 'Road',      source: new ol.source.MapQuest({layer: 'osm'}) -})""", True)] +})""", True, '')]      if not get_area_zoom:          return map_layers, default      if not area: @@ -320,7 +320,9 @@ class PointChooserWidget(forms.TextInput):                  value = None          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] +        map_layers = [js for n, js, default, extra_js in map_layers if js] +        extra_js = [extra_js for n, js, default, extra_js in map_layers +                    if extra_js]          # TODO: manage area          return mark_safe(              render_to_string('chimere/blocks/live_coordinates.html', @@ -331,6 +333,7 @@ class PointChooserWidget(forms.TextInput):                                'name': name,                                'val': val,                                'initialized': initialized, +                              'extra_js': "\n".join(extra_js),                                'isvalue': bool(value),                                'default_area': "true" if default_area                                else "false", @@ -399,6 +402,8 @@ class RouteChooserWidget(forms.TextInput):          tpl = getMapJS(area_name)          map_layers, default_area = get_map_layers(area_name)          map_layers = [js for nm, js, default in map_layers] +        extra_js = [extra_js for n, js, default, extra_js in map_layers +                    if extra_js]          js = """          var resolutions;          var zoomOffset; @@ -413,6 +418,7 @@ class RouteChooserWidget(forms.TextInput):          var CENTER_LONLAT = centerLonLat;          var DEFAULT_ZOOM = %s;          var chimere_init_options = {}; +        %s          chimere_init_options["map_layers"] = [%s];          chimere_init_options['dynamic_categories'] = false;          chimere_init_options['edition'] = true; @@ -423,7 +429,9 @@ class RouteChooserWidget(forms.TextInput):                 settings.CHIMERE_EPSG_PROJECTION,                 settings.CHIMERE_DEFAULT_CENTER[0],                 settings.CHIMERE_DEFAULT_CENTER[1], -               settings.CHIMERE_DEFAULT_ZOOM, ", ".join(map_layers)) +               settings.CHIMERE_DEFAULT_ZOOM, +               "\n".join(extra_js), +               ", ".join(map_layers))          if default_area:              js += "chimere_init_options['selected_map_layer'] = %d;\n" % \                    default_area @@ -643,12 +651,15 @@ class PolygonChooserWidget(forms.TextInput):                                                          get_area_zoom=True)          map_layers = [js for n, js, default in map_layers                        if 'OpenLayers' not in js] +        extra_js = [extra_js for n, js, default, extra_js in map_layers +                    if extra_js]          tpl = render_to_string(              'chimere/blocks/polygon_edit.html',              {'name': name, 'val': val, 'initialized': initialized,               'isvalue': bool(value),               'default_area': "true" if default_area else "false", -             'value': value} +             'value': value, 'extra_js': "\n".join(extra_js), +             }          )          return mark_safe(tpl.format(              static_url=settings.STATIC_URL, | 
