diff --git a/django_select2/conf.py b/django_select2/conf.py index 090bae80..76376b4c 100644 --- a/django_select2/conf.py +++ b/django_select2/conf.py @@ -8,6 +8,9 @@ class Select2Conf(AppConf): """Settings for Django-Select2.""" + LIB_VERSION = '4.0.3' + """Version of the Select2 library.""" + CACHE_BACKEND = 'default' """ Django-Select2 uses Django's cache to sure a consistent state across multiple machines. @@ -53,7 +56,7 @@ class Select2Conf(AppConf): It has set `select2_` as a default value, which you can change if needed. """ - JS = '//cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js' + JS = f'//cdnjs.cloudflare.com/ajax/libs/select2/{LIB_VERSION}/js/select2.min.js' """ The URI for the Select2 JS file. By default this points to the Cloudflare CDN. @@ -71,7 +74,7 @@ class Select2Conf(AppConf): develop without an Internet connection. """ - CSS = '//cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css' + CSS = f'//cdnjs.cloudflare.com/ajax/libs/select2/{LIB_VERSION}/css/select2.min.css' """ The URI for the Select2 CSS file. By default this points to the Cloudflare CDN. @@ -89,7 +92,7 @@ class Select2Conf(AppConf): develop without an Internet connection. """ - I18N_PATH = '//cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/i18n' + I18N_PATH = f'//cdnjs.cloudflare.com/ajax/libs/select2/{LIB_VERSION}/js/i18n' """ The base URI for the Select2 i18n files. By default this points to the Cloudflare CDN. diff --git a/tests/test_forms.py b/tests/test_forms.py index d871e442..22ec60d1 100644 --- a/tests/test_forms.py +++ b/tests/test_forms.py @@ -14,6 +14,7 @@ from selenium.webdriver.support.wait import WebDriverWait from django_select2.cache import cache +from django_select2.conf import settings from django_select2.forms import ( HeavySelect2MultipleWidget, HeavySelect2Widget, ModelSelect2TagWidget, ModelSelect2Widget, Select2Widget @@ -104,28 +105,28 @@ def test_empty_option(self, db): def test_i18n(self): translation.activate('de') assert tuple(Select2Widget().media._js) == ( - '//cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js', - '//cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/i18n/de.js', + f'//cdnjs.cloudflare.com/ajax/libs/select2/{settings.SELECT2_LIB_VERSION}/js/select2.min.js', + f'//cdnjs.cloudflare.com/ajax/libs/select2/{settings.SELECT2_LIB_VERSION}/js/i18n/de.js', 'django_select2/django_select2.js' ) translation.activate('en') assert tuple(Select2Widget().media._js) == ( - '//cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js', - '//cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/i18n/en.js', + f'//cdnjs.cloudflare.com/ajax/libs/select2/{settings.SELECT2_LIB_VERSION}/js/select2.min.js', + f'//cdnjs.cloudflare.com/ajax/libs/select2/{settings.SELECT2_LIB_VERSION}/js/i18n/en.js', 'django_select2/django_select2.js' ) translation.activate('00') assert tuple(Select2Widget().media._js) == ( - '//cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js', + f'//cdnjs.cloudflare.com/ajax/libs/select2/{settings.SELECT2_LIB_VERSION}/js/select2.min.js', 'django_select2/django_select2.js' ) translation.activate('sr-cyrl') assert tuple(Select2Widget().media._js) == ( - '//cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js', - '//cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/i18n/sr-Cyrl.js', + f'//cdnjs.cloudflare.com/ajax/libs/select2/{settings.SELECT2_LIB_VERSION}/js/select2.min.js', + f'//cdnjs.cloudflare.com/ajax/libs/select2/{settings.SELECT2_LIB_VERSION}/js/i18n/sr-Cyrl.js', 'django_select2/django_select2.js' ) @@ -133,15 +134,15 @@ def test_i18n(self): translation.activate('zh-hans') assert tuple(Select2Widget().media._js) == ( - '//cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js', - '//cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/i18n/zh-CN.js', + f'//cdnjs.cloudflare.com/ajax/libs/select2/{settings.SELECT2_LIB_VERSION}/js/select2.min.js', + f'//cdnjs.cloudflare.com/ajax/libs/select2/{settings.SELECT2_LIB_VERSION}/js/i18n/zh-CN.js', 'django_select2/django_select2.js' ) translation.activate('zh-hant') assert tuple(Select2Widget().media._js) == ( - '//cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js', - '//cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/i18n/zh-TW.js', + f'//cdnjs.cloudflare.com/ajax/libs/select2/{settings.SELECT2_LIB_VERSION}/js/select2.min.js', + f'//cdnjs.cloudflare.com/ajax/libs/select2/{settings.SELECT2_LIB_VERSION}/js/i18n/zh-TW.js', 'django_select2/django_select2.js' ) @@ -150,8 +151,8 @@ class TestSelect2MixinSettings(object): def test_default_media(self): sut = Select2Widget() result = sut.media.render() - assert '//cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js' in result - assert '//cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css' in result + assert f'//cdnjs.cloudflare.com/ajax/libs/select2/{settings.SELECT2_LIB_VERSION}/js/select2.min.js' in result + assert f'//cdnjs.cloudflare.com/ajax/libs/select2/{settings.SELECT2_LIB_VERSION}/css/select2.min.css' in result assert 'django_select2/django_select2.js' in result def test_js_setting(self, settings):