misc: fix pylint issues in date/time widgets
This commit is contained in:
parent
bb09199d96
commit
9e69ed2032
|
@ -1,29 +1,22 @@
|
|||
# Bootstrap django-datetime-widget is a simple and clean widget for DateField,
|
||||
# Timefiled and DateTimeField in Django framework. It is based on Bootstrap
|
||||
# datetime picker, supports both Bootstrap 3 and Bootstrap 2
|
||||
# datetime picker, supports both Bootstrap 3 and Bootstrap 2
|
||||
#
|
||||
# https://github.com/asaglimbeni/django-datetime-widget
|
||||
#
|
||||
# License: BSD
|
||||
# Initial Author: Alfredo Saglimbeni
|
||||
|
||||
__author__ = 'Alfredo Saglimbeni'
|
||||
|
||||
from datetime import datetime
|
||||
import json
|
||||
import re
|
||||
import uuid
|
||||
|
||||
from django.forms import forms, widgets
|
||||
from django.forms.widgets import MultiWidget, DateTimeInput, DateInput, TimeInput
|
||||
from django.forms.widgets import DateTimeInput, DateInput, TimeInput
|
||||
from django.utils.formats import get_format, get_language
|
||||
from django.utils.safestring import mark_safe
|
||||
from django.utils.six import string_types
|
||||
|
||||
try:
|
||||
from django.forms.widgets import to_current_timezone
|
||||
except ImportError:
|
||||
to_current_timezone = lambda obj: obj # passthrough, no tz support
|
||||
|
||||
|
||||
# This should be updated as more .po files are added to the datetime picker javascript code
|
||||
supported_languages = set([
|
||||
'ar',
|
||||
|
@ -75,7 +68,7 @@ def get_supported_language(language_country_code):
|
|||
return 'en'
|
||||
|
||||
|
||||
dateConversiontoPython = {
|
||||
DATE_FORMAT_JS_PY_MAPPING = {
|
||||
'P': '%p',
|
||||
'ss': '%S',
|
||||
'ii': '%M',
|
||||
|
@ -87,10 +80,10 @@ dateConversiontoPython = {
|
|||
'yyyy': '%Y',
|
||||
}
|
||||
|
||||
toPython_re = re.compile(r'\b(' + '|'.join(dateConversiontoPython.keys()) + r')\b')
|
||||
DATE_FORMAT_TO_PYTHON_REGEX = re.compile(r'\b(' + '|'.join(DATE_FORMAT_JS_PY_MAPPING.keys()) + r')\b')
|
||||
|
||||
|
||||
dateConversiontoJavascript = {
|
||||
DATE_FORMAT_PY_JS_MAPPING = {
|
||||
'%M': 'ii',
|
||||
'%m': 'mm',
|
||||
'%I': 'HH',
|
||||
|
@ -102,7 +95,7 @@ dateConversiontoJavascript = {
|
|||
'%S': 'ss'
|
||||
}
|
||||
|
||||
toJavascript_re = re.compile(r'(?<!\w)(' + '|'.join(dateConversiontoJavascript.keys()) + r')\b')
|
||||
DATE_FORMAT_TO_JS_REGEX = re.compile(r'(?<!\w)(' + '|'.join(DATE_FORMAT_PY_JS_MAPPING.keys()) + r')\b')
|
||||
|
||||
|
||||
BOOTSTRAP_INPUT_TEMPLATE = {
|
||||
|
@ -168,7 +161,7 @@ def quote(key, value):
|
|||
return "'%s'" % value
|
||||
|
||||
if key in quoted_bool_options and isinstance(value, bool):
|
||||
return {True:'true',False:'false'}[value]
|
||||
return json.dumps(value)
|
||||
|
||||
return value
|
||||
|
||||
|
@ -180,7 +173,7 @@ class PickerWidgetMixin(object):
|
|||
|
||||
def __init__(self, attrs=None, options=None, usel10n=None, bootstrap_version=None):
|
||||
|
||||
if bootstrap_version in [2,3]:
|
||||
if bootstrap_version in [2, 3]:
|
||||
self.bootstrap_version = bootstrap_version
|
||||
else:
|
||||
# default 2 to mantain support to old implemetation of django-datetime-widget
|
||||
|
@ -206,8 +199,8 @@ class PickerWidgetMixin(object):
|
|||
self.format = get_format(self.format_name)[0]
|
||||
|
||||
# Convert Python format specifier to Javascript format specifier
|
||||
self.options['format'] = toJavascript_re.sub(
|
||||
lambda x: dateConversiontoJavascript[x.group()],
|
||||
self.options['format'] = DATE_FORMAT_TO_JS_REGEX.sub(
|
||||
lambda x: DATE_FORMAT_PY_JS_MAPPING[x.group()],
|
||||
self.format
|
||||
)
|
||||
|
||||
|
@ -219,8 +212,8 @@ class PickerWidgetMixin(object):
|
|||
# If we're not doing localisation, get the Javascript date format provided by the user,
|
||||
# with a default, and convert it to a Python data format for later string parsing
|
||||
format = self.options['format']
|
||||
self.format = toPython_re.sub(
|
||||
lambda x: dateConversiontoPython[x.group()],
|
||||
self.format = DATE_FORMAT_TO_PYTHON_REGEX.sub(
|
||||
lambda x: DATE_FORMAT_JS_PY_MAPPING[x.group()],
|
||||
format
|
||||
)
|
||||
|
||||
|
@ -243,14 +236,14 @@ class PickerWidgetMixin(object):
|
|||
# Use provided id or generate hex to avoid collisions in document
|
||||
id = final_attrs.get('id', uuid.uuid4().hex)
|
||||
|
||||
clearBtn = quote('clearBtn', self.options.get('clearBtn', 'true')) == 'true'
|
||||
clear_button = quote('clearBtn', self.options.get('clearBtn', 'true')) == 'true'
|
||||
|
||||
return mark_safe(
|
||||
BOOTSTRAP_INPUT_TEMPLATE[self.bootstrap_version]
|
||||
% dict(
|
||||
id=id,
|
||||
rendered_widget=rendered_widget,
|
||||
clear_button=CLEAR_BTN_TEMPLATE[self.bootstrap_version] if clearBtn else "",
|
||||
clear_button=CLEAR_BTN_TEMPLATE[self.bootstrap_version] if clear_button else "",
|
||||
glyphicon=self.glyphicon,
|
||||
options=js_options
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue