diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-02-26 00:30:51 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-02-26 00:30:51 +0100 |
commit | 8b3d6619b0def3eaec09f16b14e92c9bd9b59772 (patch) | |
tree | 71d4dbf1edbf4c398f1f8e65143329768e1c8edf /chimere/widgets.py | |
parent | fee4daab6598a3d6e51a31e2e70e059fc5419908 (diff) | |
download | Chimère-8b3d6619b0def3eaec09f16b14e92c9bd9b59772.tar.bz2 Chimère-8b3d6619b0def3eaec09f16b14e92c9bd9b59772.zip |
Workon polygon edition widget.
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) |