diff options
Diffstat (limited to 'chimere/widgets.py')
| -rw-r--r-- | chimere/widgets.py | 25 | 
1 files changed, 22 insertions, 3 deletions
| diff --git a/chimere/widgets.py b/chimere/widgets.py index bffd42f..5795b77 100644 --- a/chimere/widgets.py +++ b/chimere/widgets.py @@ -614,8 +614,27 @@ class PolygonChooserWidget(forms.TextInput):              ["%schimere/js/jquery.chimere.js" % settings.STATIC_URL]      def render(self, name, value, attrs=None, area_name='', initialized=True): -        # To be done -        return super(PolygonChooserWidget, self).render(name, value, attrs) +        val = '' +        if value: +            val = str(value) +        map_layers, default_area = get_map_layers(area_name) +        map_layers = [js for n, js, default in map_layers +                      if 'OpenLayers' not in 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"} +        ) +        # 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, +            map_layers=", ".join(map_layers) +        ))  class PolygonField(models.PolygonField): @@ -623,7 +642,7 @@ class PolygonField(models.PolygonField):      Set the widget for the form field      '''      def formfield(self, **keys): -        defaults = {'widget': RouteChooserWidget} +        defaults = {'widget': PolygonChooserWidget}          keys.update(defaults)          return super(PolygonField, self).formfield(**keys) | 
