def money(decimal): if decimal == "": return "" if type(decimal) is str: decimal = Decimal(decimal) locale.setlocale(locale.LC_ALL, (to_locale(get_language()), "utf-8")) return locale.currency(decimal, True, True)
def _media(self): js = ["js/bootstrap-datetimepicker.js"] language = get_supported_language(get_language()) if language != 'en': js.append("js/locales/bootstrap-datetimepicker.%s.js" % language) return widgets.Media(css={'all': ('css/datetimepicker.css', )}, js=js)
def to_local(self): """ This method have to be called on every request call, because adapt the datetime format to the user. !!! It work only if USE_L10N is set TRUE and localize middleware is active.!!! otherwise get_format use the server format. """ pattern = re.compile(r'(?<!\w)(' + '|'.join(dateConversiontoJavascript.keys()) + r')\b') self.format = get_format('DATETIME_INPUT_FORMATS')[0] if hasattr(self, 'widgets') and self.widgets[0]: self.widgets[0].format = self.format self.option = (pattern.sub(lambda x: dateConversiontoJavascript[x.group()], self.format),) + self.option[1:] self.language = get_language()
def to_local(self): """ This method have to be called on every request call, because adapt the datetime format to the user. !!! It work only if USE_L10N is set TRUE and localize middleware is active.!!! otherwise get_format use the server format. """ pattern = re.compile(r'(?<!\w)(' + '|'.join(dateConversiontoJavascript.keys()) + r')\b') self.format = get_format('TIME_INPUT_FORMATS')[0] if hasattr(self, 'widgets') and self.widgets[0]: self.widgets[0].format = self.format self.option = (pattern.sub(lambda x: dateConversiontoJavascript[x.group()], self.format),) + self.option[1:] self.language = get_language()
def __init__(self, attrs=None, options=None, usel10n=None, bootstrap_version=None): if bootstrap_version in [2,3]: self.bootstrap_version = bootstrap_version else: # default 2 to mantain support to old implemetation of django-datetime-widget self.bootstrap_version = 2 if attrs is None: attrs = {'readonly': ''} self.options = options self.is_localized = False self.format = None # We want to have a Javascript style date format specifier in the options dictionary and we # want a Python style date format specifier as a member variable for parsing the date string # from the form data if usel10n is True: # If we're doing localisation, get the local Python date format and convert it to # Javascript data format for the options dictionary self.is_localized = True # Get format from django format system 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.format ) # Set the local language self.options['language'] = get_supported_language(get_language()) else: # 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()], format ) super(PickerWidgetMixin, self).__init__(attrs, format=self.format) final_attrs = self.build_attrs(attrs) self.id = final_attrs.get('id', uuid.uuid4().hex)
def __init__(self, attrs=None, options=None, usel10n=None): if attrs is None: attrs = {} self.options = options self.options['language'] = get_language().split('-')[0] # 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 date_format = self.options['format'] self.format = DATE_FORMAT_TO_PYTHON_REGEX.sub( lambda x: DATE_FORMAT_JS_PY_MAPPING[x.group()], date_format) super(PickerWidgetMixin, self).__init__(attrs, format=self.format)
def _media(self): js = ["js/bootstrap-datetimepicker.js"] #language = self.options.get('language', 'en') language = get_supported_language(get_language()) self.options['language'] = language if language != 'en': js.append("js/locales/bootstrap-datetimepicker.%s.js" % language) self.options['format'] = toJavascript_re.sub( lambda x: dateConversiontoJavascript[x.group()], get_format(self.format_name)[0]) return widgets.Media(css={'all': ('css/datetimepicker.css', )}, js=js)
def __init__(self, attrs=None, options=None, usel10n=None, bootstrap_version=None): if bootstrap_version in [2,3]: self.bootstrap_version = bootstrap_version else: # default 2 to mantain support to old implemetation of django-datetime-widget self.bootstrap_version = 2 if attrs is None: attrs = {'readonly': ''} self.options = options self.is_localized = False self.format = None # We want to have a Javascript style date format specifier in the options dictionary and we # want a Python style date format specifier as a member variable for parsing the date string # from the form data if usel10n is True: # If we're doing localisation, get the local Python date format and convert it to # Javascript data format for the options dictionary self.is_localized = True # Get format from django format system 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.format ) # Set the local language self.options['language'] = get_supported_language(get_language()) else: # 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()], format ) super(PickerWidgetMixin, self).__init__(attrs, format=self.format)
def __init__(self, project, year, month, start_date, end_date, make_link): super(FieldHTMLCalendar, self).__init__( locale=(to_locale(get_language()), "utf-8") ) self.project = project self.year = year self.month = month self.today = date.today() self.make_link = make_link plans = ( DailyPlan.objects.filter( jobsite__project=project, day__lt=end_date, day__gt=start_date ) .values("day") .annotate(plans=Count("day")) ) self.plans = dict([(p["day"], p["plans"]) for p in plans])
def options(self): options = GLOBAL_OPTIONS.copy() options.update(self.custom_options) #Overrides options lang with django discover lang system if options['django_lang'] == True: options['lang'] = get_language() if self.allow_file_upload: options['fileUpload'] = reverse_lazy( 'redactor_upload_file', kwargs={'upload_to': self.upload_to} ) if self.allow_image_upload: options['imageUpload'] = reverse_lazy( 'redactor_upload_image', kwargs={'upload_to': self.upload_to} ) return options
def ubrdecimal(number, max_significant=4, min_significant=2): if number == "" or number is None: return "" if type(number) is str: number = Decimal(number) number = round(number, max_significant) lang = get_language() radix = get_format("DECIMAL_SEPARATOR", lang, use_l10n=True) grouping = get_format("NUMBER_GROUPING", lang, use_l10n=True) thousand_sep = get_format("THOUSAND_SEPARATOR", lang, use_l10n=True) # sign sign = "" str_number = "{:f}".format(number) if str_number[0] == "-": sign = "-" str_number = str_number[1:] # decimal part if "." in str_number: int_part, dec_part = str_number.split(".") dec_part = dec_part.rstrip("0").ljust(min_significant, "0") else: int_part, dec_part = str_number, "" if dec_part: dec_part = radix + dec_part # grouping int_part_gd = "" for cnt, digit in enumerate(int_part[::-1]): if cnt and not cnt % grouping: int_part_gd += thousand_sep[::-1] int_part_gd += digit int_part = int_part_gd[::-1] return sign + int_part + dec_part
def _media(self): js = ["js/bootstrap-datetimepicker.js"] #language = self.options.get('language', 'en') language = get_supported_language(get_language()) self.options['language'] = language if language != 'en': js.append("js/locales/bootstrap-datetimepicker.%s.js" % language) self.options['format'] = toJavascript_re.sub( lambda x: dateConversiontoJavascript[x.group()], get_format(self.format_name)[0] ) return widgets.Media( css={ 'all': ('css/datetimepicker.css',) }, js=js )
def render(self, name, value, attrs=None, renderer=None): final_attrs = self.build_attrs(attrs) rendered_widget = super(PickerWidgetMixin, self).render(name, value, final_attrs, renderer) language = get_supported_language(get_language()) self.options['language'] = language if self.usel10n or not self.format: self.format = get_format(self.format_name)[0] self.options['format'] = toJavascript_re.sub( lambda x: dateConversiontoJavascript[x.group()], self.format) #if not set, autoclose have to be true. self.options.setdefault('autoclose', True) # Build javascript options out of python dictionary options_list = [] for key, value in iter(self.options.items()): options_list.append("%s: %s" % (key, quote(key, value))) js_options = ",\n".join(options_list) # 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' 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 "", glyphicon=self.glyphicon, options=js_options))
def _media(self): js = ( 'redactor/jquery.redactor.init.js', 'redactor/redactor{0}.js'.format('' if settings.DEBUG else '.min'), # Loads proper lang js 'redactor/langs/{0}.js'.format(get_language() if self.options['django_lang'] else GLOBAL_OPTIONS.get('lang', 'en')), ) if 'plugins' in self.options: plugins = self.options.get('plugins') for plugin in plugins: js = js + ( 'redactor/plugins/{0}.js'.format(plugin), ) css = { 'all': ( 'redactor/css/redactor.css', 'redactor/css/django_admin.css', ) } return forms.Media(css=css, js=js)