diff options
| author | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-10-07 23:32:49 +0200 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-10-07 23:32:49 +0200 | 
| commit | 4688f763a074f78b20bd17494053c81b8c9ef3b8 (patch) | |
| tree | 0cd3c0f2efcd83fc2d09639c053dae9e47080c9c | |
| parent | ac8805e81c362d5bfe7d84583e8dfc5441ae82a1 (diff) | |
| download | Chimère-4688f763a074f78b20bd17494053c81b8c9ef3b8.tar.bz2 Chimère-4688f763a074f78b20bd17494053c81b8c9ef3b8.zip  | |
Forms: fix geographic init after a bad submission
| -rw-r--r-- | chimere/views.py | 11 | ||||
| -rw-r--r-- | chimere/widgets.py | 13 | 
2 files changed, 21 insertions, 3 deletions
diff --git a/chimere/views.py b/chimere/views.py index 9a9a09a..f96a66b 100644 --- a/chimere/views.py +++ b/chimere/views.py @@ -261,6 +261,9 @@ def edit(request, area_name="", item_id=None, submited=False):      declared_fields = PropertyModel.objects.filter(available=True).all()      filtered_properties = PropertyModel.objects.filter(available=True,                                  subcategories__id__isnull=False).all() +    point_value = init_item.point if init_item else None +    if request.POST and request.POST.get('point'): +        point_value = request.POST.get('point')      response_dct.update({          'actions':actions,          'action_selected':('contribute', 'edit'), @@ -273,7 +276,7 @@ def edit(request, area_name="", item_id=None, submited=False):          'marker_id':item_id,          'sub_categories':sub_categories,          'point_widget':PointChooserWidget().render('point', -              init_item.point if init_item else None, +              point_value,                area_name=response_dct['area_name']),          'properties':declared_fields,          'filtered_properties':filtered_properties, @@ -366,6 +369,9 @@ def editRoute(request, area_name="", item_id=None, submited=False):      declared_fields = form.declared_fields.keys()      if 'description' in declared_fields:          declared_fields.pop(declared_fields.index('description')) +    route_value = init_item.route if init_item else None +    if request.POST and request.POST.get('route'): +        route_value = request.POST.get('route')      response_dct.update({          'actions':actions,          'action_selected':('contribute', 'edit-route'), @@ -377,8 +383,7 @@ def editRoute(request, area_name="", item_id=None, submited=False):          'dated':settings.CHIMERE_DAYS_BEFORE_EVENT,          'extra_head':form.media,          'sub_categories':sub_categories, -        'route_widget':RouteChooserWidget().render('route', -                       init_item.route if init_item else None, +        'route_widget':RouteChooserWidget().render('route', route_value,                         area_name=response_dct['area_name'], routefile_id='',),          'properties':declared_fields,          'submited':submited diff --git a/chimere/widgets.py b/chimere/widgets.py index 826283d..23709ac 100644 --- a/chimere/widgets.py +++ b/chimere/widgets.py @@ -387,9 +387,22 @@ class AreaWidget(forms.TextInput):                  lower_right = value[1]                  if hasattr(upper_left, 'x') and hasattr(upper_left, 'y'):                      upper_left_lon, upper_left_lat = upper_left.x, upper_left.y +                elif len(upper_left) == 2: +                    try: +                        upper_left_lon = float(upper_left[0]) +                        upper_left_lat = float(upper_left[1]) +                    except ValueError: +                        pass                  if hasattr(lower_right, 'x') and hasattr(lower_right, 'y'):                      lower_right_lon, lower_right_lat = lower_right.x, \                                                         lower_right.y +                elif len(lower_right) == 2: +                    lower_right_lon, lower_right_lat = lower_right +                    try: +                        lower_right_lon = float(lower_right[0]) +                        lower_right_lat = float(lower_right[1]) +                    except ValueError: +                        pass          tpl = getMapJS()          tpl += u"</div>\n"\          u"<input type='hidden' name='upper_left_lat' id='upper_left_lat' "\  | 
