diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2023-10-18 11:08:42 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2023-10-18 11:08:42 +0200 |
commit | 249b6c73e645674d8ca699be25a138bceacd477d (patch) | |
tree | 4ca21e1e2403bb7a7b792e3e8ef982ce781e77df | |
parent | 971e97c0fa0cf78d3e20dbec6208e64fba99e6bf (diff) | |
download | Ishtar-249b6c73e645674d8ca699be25a138bceacd477d.tar.bz2 Ishtar-249b6c73e645674d8ca699be25a138bceacd477d.zip |
🐛 JS: fix calendar localisation
-rw-r--r-- | bootstrap_datepicker/widgets.py | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/bootstrap_datepicker/widgets.py b/bootstrap_datepicker/widgets.py index c00b9f1ef..b84006056 100644 --- a/bootstrap_datepicker/widgets.py +++ b/bootstrap_datepicker/widgets.py @@ -45,7 +45,10 @@ class DatePicker(DateTimeInput): 'zh-tw': 'zh-TW', } if len(lang) > 2: - lang = lang_map.get(lang, 'en-us') + if lang in lang_map: + lang = lang_map[lang] + else: + lang = lang.split("-")[0] if lang not in ('en', 'en-us'): yield 'js/locales/bootstrap-datepicker.%s.min.js' % ( lang) @@ -67,16 +70,16 @@ class DatePicker(DateTimeInput): ) @classmethod - def conv_datetime_format_py2js(cls, format): + def conv_datetime_format_py2js(cls, frmat): for js, py in cls.format_map: - format = format.replace(py, js) - return format + frmat = frmat.replace(py, js) + return frmat @classmethod - def conv_datetime_format_js2py(cls, format): + def conv_datetime_format_js2py(cls, frmat): for js, py in cls.format_map: - format = format.replace(js, py) - return format + frmat = frmat.replace(js, py) + return frmat html_template = """ <div%(div_attrs)s> @@ -98,24 +101,24 @@ class DatePicker(DateTimeInput): })(); </script>''' - def __init__(self, attrs=None, format=None, options=None, div_attrs=None, + def __init__(self, attrs=None, frmat=None, options=None, div_attrs=None, icon_attrs=None): if not icon_attrs: icon_attrs = {'class': 'fa fa-calendar fa-2'} if not div_attrs: div_attrs = {'class': 'input-group date'} - if format is None and options and options.get('format'): - format = self.conv_datetime_format_js2py(options.get('format')) - super(DatePicker, self).__init__(attrs, format) + if frmat is None and options and options.get('format'): + frmat = self.conv_datetime_format_js2py(options.get('format')) + super().__init__(attrs, frmat) if 'class' not in self.attrs: self.attrs['class'] = 'form-control' self.div_attrs = div_attrs and div_attrs.copy() or {} self.icon_attrs = icon_attrs and icon_attrs.copy() or {} self.picker_id = self.div_attrs.get('id') or None self.options = options and options.copy() or {} - if format and not self.options.get('format') and not self.attrs.get( + if frmat and not self.options.get('format') and not self.attrs.get( 'date-format'): - self.options['format'] = self.conv_datetime_format_py2js(format) + self.options['format'] = self.conv_datetime_format_py2js(frmat) def format_value(self, value): if not self.options.get('format'): |