diff options
| author | Étienne Loks <etienne.loks@proxience.com> | 2015-02-14 21:42:27 +0100 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@proxience.com> | 2015-02-14 21:42:27 +0100 | 
| commit | 660ce29ac2cf781c8e9607a837b9832e1692e156 (patch) | |
| tree | dfc74f2056cfc9a1ce12eb17adf8bc3771510495 /chimere/widgets.py | |
| parent | 3daa945c334f719e7edb086021bfcc93880eb7f7 (diff) | |
| parent | 57bbba43a75a72eeacd44f1ce5fcd6f203dc321c (diff) | |
| download | Chimère-660ce29ac2cf781c8e9607a837b9832e1692e156.tar.bz2 Chimère-660ce29ac2cf781c8e9607a837b9832e1692e156.zip | |
Merge branch 'master' into nef
Conflicts:
	chimere/admin.py
	chimere/forms.py
	chimere/models.py
	chimere/settings.sample.py
	chimere/static/chimere/js/jquery.chimere-ol.js
	chimere/templates/chimere/base.html
	chimere/templates/chimere/blocks/head_chimere.html
	chimere/templates/chimere/blocks/map.html
	chimere/templates/chimere/main_map.html
	chimere/templatetags/chimere_tags.py
	chimere/tests.py
	chimere/urls.py
	chimere/views.py
	chimere/widgets.py
Diffstat (limited to 'chimere/widgets.py')
| -rw-r--r-- | chimere/widgets.py | 29 | 
1 files changed, 22 insertions, 7 deletions
| diff --git a/chimere/widgets.py b/chimere/widgets.py index d5e502e..e357268 100644 --- a/chimere/widgets.py +++ b/chimere/widgets.py @@ -243,11 +243,11 @@ class PointChooserWidget(forms.TextInput):          js = list(settings.JQUERY_JS_URLS) + \               settings.MAP_JS_URLS[settings.CHIMERE_EDIT_RENDERER] -    def render(self, name, value, attrs=None, map_name=''): +    def render(self, name, value, attrs=None, area_name='', initialized=True):          '''          Render a map and latitude, longitude information field          ''' -        val = '0' +        val = ''          value_x, value_y = 0, 0          if value:              val = str(value) @@ -275,6 +275,7 @@ class PointChooserWidget(forms.TextInput):                                'value_x': value_x,                                'name': name,                                'val': val, +                              'initialized': initialized,                                'isvalue': bool(value),                                'default_map': "true" if default_map else "false",                                }) % \ @@ -288,12 +289,26 @@ class PointChooserWidget(forms.TextInput):               )              ) +class HiddenPointChooserWidget(PointChooserWidget): +    """ +    OpenLayers doesn't initialize well on an hidden field so specific JS +    must be loaded. +    """ +    def render(self, *args, **kwargs): +        kwargs['initialized'] = False +        return super(HiddenPointChooserWidget, self).render(*args, **kwargs) +  class PointField(models.PointField):      '''      Set the widget for the form field      ''' +    def __init__(self, *args, **kwargs): +        self.widget = kwargs.pop('widget') if 'widget' in kwargs \ +                      else PointChooserWidget +        return super(PointField, self).__init__(*args, **kwargs) +      def formfield(self, **keys): -        defaults = {'widget': PointChooserWidget} +        defaults = {'widget': self.widget}          keys.update(defaults)          return super(PointField, self).formfield(**keys) @@ -504,19 +519,19 @@ class AreaWidget(forms.TextInput):          help_msg = _(u"Hold CTRL, click and drag to select area on the map")          tpl += u"<p class='help-osm'>%s</p>\n" % help_msg          tpl += u"<script type='text/javascript'>\n" -        tpl += u"function init_map_form (){\ninit();\n" +        tpl += u"function init_map_form (){\ninit('map_edit_area');\n"          if value:              tpl += u"var extent = new OpenLayers.Bounds(%f, %f, %f, %f);\n"\              u"extent.transform(epsg_display_projection, epsg_projection);\n"\              u"updateForm(extent);\n"\ -            u"map.zoomToExtent(extent, true);\n"\ -            u"map.zoomOut();" % (upper_left_lon, upper_left_lat, +            u"area_map.zoomToExtent(extent, true);\n"\ +            u"area_map.zoomOut();" % (upper_left_lon, upper_left_lat,                                   lower_right_lon, lower_right_lat)          tpl += u"}\n"          if initialized:              tpl += u"$(document).ready(function($) {init_map_form()});\n"          tpl += u"</script>\n" -        tpl += u"<div id='map_edit'>\n" +        tpl += u"<div id='map_edit_area'>\n"          return mark_safe(tpl)      def value_from_datadict(self, data, files, name): | 
