diff --git a/.pytest_cache/v/cache/lastfailed b/.pytest_cache/v/cache/lastfailed new file mode 100644 index 00000000..512c7494 --- /dev/null +++ b/.pytest_cache/v/cache/lastfailed @@ -0,0 +1,4 @@ +{ + "django_google_maps/tests/test_geolocation_field.py": true, + "django_google_maps/tests/test_widget.py": true +} \ No newline at end of file diff --git a/.pytest_cache/v/cache/nodeids b/.pytest_cache/v/cache/nodeids new file mode 100644 index 00000000..ac107d8d --- /dev/null +++ b/.pytest_cache/v/cache/nodeids @@ -0,0 +1,19 @@ +[ + "django_google_maps/tests/test_geopt_field.py::GeoPtFieldTests::test_allows_GeoPt_instantiated_with_empty_string", + "django_google_maps/tests/test_geopt_field.py::GeoPtFieldTests::test_is_not_equal_when_comparison_is_not_GeoPt_object", + "django_google_maps/tests/test_geopt_field.py::GeoPtFieldTests::test_len_returns_len_of_unicode_value", + "django_google_maps/tests/test_geopt_field.py::GeoPtFieldTests::test_raises_error_when_attribute_error_on_split", + "django_google_maps/tests/test_geopt_field.py::GeoPtFieldTests::test_raises_error_when_type_error_on_split", + "django_google_maps/tests/test_geopt_field.py::GeoPtFieldTests::test_raises_exception_when_value_is_out_of_lower_range", + "django_google_maps/tests/test_geopt_field.py::GeoPtFieldTests::test_raises_exception_when_value_is_out_of_upper_range", + "django_google_maps/tests/test_geopt_field.py::GeoPtFieldTests::test_returns_float_value_when_valid_value", + "django_google_maps/tests/test_geopt_field.py::GeoPtFieldTests::test_sets_lat_lon_on_initialization", + "django_google_maps/tests/test_geopt_field.py::GeoPtFieldTests::test_splits_geo_point_on_comma", + "django_google_maps/tests/test_geopt_field.py::GeoPtFieldTests::test_two_GeoPts_with_different_lat_should_not_be_equal", + "django_google_maps/tests/test_geopt_field.py::GeoPtFieldTests::test_two_GeoPts_with_different_lon_should_not_be_equal", + "django_google_maps/tests/test_geopt_field.py::GeoPtFieldTests::test_two_GeoPts_with_same_lat_lon_should_be_equal", + "django_google_maps/tests/test_geopt_field.py::GeoPtFieldTests::test_uses_empty_string_as_unicode_representation_for_empty_GeoPt", + "django_google_maps/tests/test_geopt_field.py::GeoPtFieldTests::test_uses_lat_comma_lon_as_unicode_representation", + "django_google_maps/tests/test_typename.py::TypeNameTests::test_class_object", + "django_google_maps/tests/test_typename.py::TypeNameTests::test_simple_type_returns_type_name_as_string" +] \ No newline at end of file diff --git a/django_google_maps/tests/test_widget.py b/django_google_maps/tests/test_widget.py index 8e8c9c3f..34b61323 100644 --- a/django_google_maps/tests/test_widget.py +++ b/django_google_maps/tests/test_widget.py @@ -1,9 +1,21 @@ +import locale + from django import test from django.conf import settings from django_google_maps.widgets import GoogleMapsAddressWidget class WidgetTests(test.TestCase): + def setUp(self): + if hasattr(settings, 'GOOGLE_MAPS_DEFAULT_LANGUAGE'): + self.GOOGLE_MAPS_DEFAULT_LANGUAGE = settings.GOOGLE_MAPS_DEFAULT_LANGUAGE + + else: + if locale.getdefaultlocale(): + self.GOOGLE_MAPS_DEFAULT_LANGUAGE = locale.getdefaultlocale()[0] + else: + self.GOOGLE_MAPS_DEFAULT_LANGUAGE = 'en' + def test_render_returns_xxxxxxx(self): widget = GoogleMapsAddressWidget() results = widget.render('name', 'value', attrs={'a1': 1, 'a2': 2}) @@ -20,8 +32,9 @@ def test_render_returns_blank_for_value_when_none(self): expected += '
' self.assertHTMLEqual(expected, results) - def test_maps_js_uses_api_key(self): + def test_maps_js_uses_api_key_and_default_language(self): widget = GoogleMapsAddressWidget() - google_maps_js = "https://maps.google.com/maps/api/js?key={}&libraries=places".format( - settings.GOOGLE_MAPS_API_KEY) + google_maps_js = "https://maps.google.com/maps/api/js?key={}&libraries=places&language={}".format( + settings.GOOGLE_MAPS_API_KEY, + self.GOOGLE_MAPS_DEFAULT_LANGUAGE) self.assertEqual(google_maps_js, widget.Media().js[1]) diff --git a/django_google_maps/widgets.py b/django_google_maps/widgets.py index e2183d29..6c3b75a8 100644 --- a/django_google_maps/widgets.py +++ b/django_google_maps/widgets.py @@ -1,6 +1,18 @@ +import locale + from django.conf import settings from django.forms import widgets +if hasattr(settings, 'GOOGLE_MAPS_DEFAULT_LANGUAGE'): + GOOGLE_MAPS_DEFAULT_LANGUAGE = settings.GOOGLE_MAPS_DEFAULT_LANGUAGE + +else: + if locale.getdefaultlocale(): + GOOGLE_MAPS_DEFAULT_LANGUAGE = locale.getdefaultlocale()[0] + + else: + GOOGLE_MAPS_DEFAULT_LANGUAGE = 'en' + class GoogleMapsAddressWidget(widgets.TextInput): """a widget that will place a google map right after the #id_address field""" @@ -13,7 +25,7 @@ class Media: } js = ( 'https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js', - 'https://maps.google.com/maps/api/js?key={}&libraries=places'.format( - settings.GOOGLE_MAPS_API_KEY), + 'https://maps.google.com/maps/api/js?key={}&libraries=places&language={}'.format( + settings.GOOGLE_MAPS_API_KEY, GOOGLE_MAPS_DEFAULT_LANGUAGE), settings.STATIC_URL + 'django_google_maps/js/google-maps-admin.js', ) diff --git a/settings.py b/settings.py index e7bf170d..86e3fa8f 100644 --- a/settings.py +++ b/settings.py @@ -150,3 +150,4 @@ GOOGLE_MAPS_API_KEY = 'SAMPLE_KEY' +GOOGLE_MAPS_DEFAULT_LANGUAGE = 'DEFAULT_LANGUAGE'