diff options
| -rw-r--r-- | chimere/models.py | 6 | ||||
| -rw-r--r-- | chimere/templates/chimere/blocks/live_coordinates.html | 1 | ||||
| -rw-r--r-- | chimere/templates/chimere/blocks/polygon_edit.html | 1 | ||||
| -rw-r--r-- | chimere/templatetags/chimere_tags.py | 6 | ||||
| -rw-r--r-- | chimere/widgets.py | 21 | 
5 files changed, 23 insertions, 12 deletions
diff --git a/chimere/models.py b/chimere/models.py index 8dacdb7..cc90d63 100644 --- a/chimere/models.py +++ b/chimere/models.py @@ -1575,6 +1575,12 @@ class SimpleArea:          return subcats +    def getExtent(self): +        return (unicode(self.upper_left_corner.x), +                unicode(self.upper_left_corner.y), +                unicode(self.lower_right_corner.x), +                unicode(self.lower_right_corner.y)) +  class Layer(models.Model):      name = models.CharField(_(u"Name"), max_length=150) diff --git a/chimere/templates/chimere/blocks/live_coordinates.html b/chimere/templates/chimere/blocks/live_coordinates.html index 7e8cfd9..17e0676 100644 --- a/chimere/templates/chimere/blocks/live_coordinates.html +++ b/chimere/templates/chimere/blocks/live_coordinates.html @@ -44,6 +44,7 @@        {% else %}        $('#map_edit').chimere('activateDraw');        {% endif %} +      $('#map_edit').chimere('zoom', { 'area':%s });        function update_marker_on_map(){          var mylonlat = [$('#live_longitude').val(), diff --git a/chimere/templates/chimere/blocks/polygon_edit.html b/chimere/templates/chimere/blocks/polygon_edit.html index be112d2..f8c7d06 100644 --- a/chimere/templates/chimere/blocks/polygon_edit.html +++ b/chimere/templates/chimere/blocks/polygon_edit.html @@ -26,6 +26,7 @@      function init_map_edit(){% raw %}{{{% endraw %}          $('#map_edit').chimere(chimere_init_options);          $('#map_edit').chimere('activateDraw'); +        $('#map_edit').chimere('zoom', {% raw %} {{ 'area':{zoom} }} {% endraw %});          {% if value %}$('#map_edit').chimere('initFeature', '{{value}}');          {% endif %}      {% raw %}}}{% endraw %} diff --git a/chimere/templatetags/chimere_tags.py b/chimere/templatetags/chimere_tags.py index 8242a9e..bdd925f 100644 --- a/chimere/templatetags/chimere_tags.py +++ b/chimere/templatetags/chimere_tags.py @@ -250,11 +250,7 @@ def map(context, map_id='map'):              subcat_layer = subcat_layer.filter(areas__pk=area.pk)          context_data['area_id'] = area_name          if 'zoomout' in context and context['zoomout']: -            context_data['zoom'] = "[%s]" % ",".join(( -                unicode(area.upper_left_corner.x), -                unicode(area.upper_left_corner.y), -                unicode(area.lower_right_corner.x), -                unicode(area.lower_right_corner.y))) +            context_data['zoom'] = "[%s]" % ",".join(area.getExtent())          context_data['display_category_menu'] = area.display_category_menu          q_checked = None          if not area.display_category_menu: 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)          ))  | 
