[1.9.x] Fixed #20415 -- Ensured srid isn't localized in OpenLayers JavaScript.

Backport of 19d1cb1451 from master
This commit is contained in:
Tim Graham 2016-01-27 09:25:49 -05:00
parent 61452616ba
commit efd8554815
4 changed files with 13 additions and 3 deletions

View File

@ -1,4 +1,5 @@
<style type="text/css">{% block map_css %}{% load i18n static %}{% get_current_language_bidi as LANGUAGE_BIDI %}
{% load i18n l10n static %}
<style type="text/css">{% block map_css %}{% get_current_language_bidi as LANGUAGE_BIDI %}
#{{ id }}_map { width: {{ map_width }}px; height: {{ map_height }}px; }
#{{ id }}_map .aligned label { float: inherit; }
#{{ id }}_div_map { position: relative; vertical-align: top; float: {{ LANGUAGE_BIDI|yesno:"right,left" }}; }
@ -25,7 +26,7 @@
id: '{{ id }}',
map_id: '{{ id }}_map',
map_options: map_options,
map_srid: {{ map_srid }},
map_srid: {{ map_srid|unlocalize }},
name: '{{ name }}'
};
{% endblock %}

View File

@ -34,3 +34,6 @@ Bugfixes
* Fixed a regression in Django 1.8.5 that broke copying a ``SimpleLazyObject``
with ``copy.copy()`` (:ticket:`26122`).
* Fixed the ``contrib.gis`` map widgets when using
``USE_THOUSAND_SEPARATOR=True`` (:ticket:`20415`).

View File

@ -88,3 +88,6 @@ Bugfixes
* Always included ``geometry_field`` in the GeoJSON serializer output regardless
of the ``fields`` parameter (:ticket:`26138`).
* Fixed the ``contrib.gis`` map widgets when using
``USE_THOUSAND_SEPARATOR=True`` (:ticket:`20415`).

View File

@ -4,7 +4,7 @@ from django.contrib.gis import forms
from django.contrib.gis.gdal import HAS_GDAL
from django.contrib.gis.geos import GEOSGeometry
from django.forms import ValidationError
from django.test import SimpleTestCase, skipUnlessDBFeature
from django.test import SimpleTestCase, override_settings, skipUnlessDBFeature
from django.utils import six
from django.utils.html import escape
@ -152,6 +152,7 @@ class SpecializedFieldTest(SimpleTestCase):
self.assertTrue(form_instance.is_valid())
rendered = form_instance.as_p()
self.assertIn('new MapWidget(options);', rendered)
self.assertIn('map_srid: 4326,', rendered)
self.assertIn('gis/js/OLMapWidget.js', str(form_instance.media))
def assertTextarea(self, geom, rendered):
@ -161,6 +162,8 @@ class SpecializedFieldTest(SimpleTestCase):
self.assertIn('required', rendered)
self.assertIn(geom.wkt, rendered)
# map_srid in operlayers.html template must not be localized.
@override_settings(USE_L10N=True, USE_THOUSAND_SEPARATOR=True)
def test_pointfield(self):
class PointForm(forms.Form):
p = forms.PointField()