From 229666289d3aafbb4668820a7ecf243dd4a7fc72 Mon Sep 17 00:00:00 2001
From: Tim Graham <timograham@gmail.com>
Date: Wed, 27 Jan 2016 09:25:49 -0500
Subject: [PATCH] [1.8.x] Fixed #20415 -- Ensured srid isn't localized in
 OpenLayers JavaScript.

Backport of 19d1cb14519186902d7e27813bf2643fe3f7cfa3 from master
---
 django/contrib/gis/templates/gis/openlayers.html | 5 +++--
 docs/releases/1.8.9.txt                          | 3 +++
 tests/gis_tests/test_geoforms.py                 | 5 ++++-
 3 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/django/contrib/gis/templates/gis/openlayers.html b/django/contrib/gis/templates/gis/openlayers.html
index cbefb3a9f2..0356a9dd77 100644
--- a/django/contrib/gis/templates/gis/openlayers.html
+++ b/django/contrib/gis/templates/gis/openlayers.html
@@ -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 %}
diff --git a/docs/releases/1.8.9.txt b/docs/releases/1.8.9.txt
index 0009de0bdb..d1fabefbd3 100644
--- a/docs/releases/1.8.9.txt
+++ b/docs/releases/1.8.9.txt
@@ -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`).
diff --git a/tests/gis_tests/test_geoforms.py b/tests/gis_tests/test_geoforms.py
index bcbb5f0804..d7fb631c34 100644
--- a/tests/gis_tests/test_geoforms.py
+++ b/tests/gis_tests/test_geoforms.py
@@ -2,7 +2,7 @@ from unittest import skipUnless
 
 from django.contrib.gis.gdal import HAS_GDAL
 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
 
@@ -154,6 +154,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):
@@ -163,6 +164,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()