def currency(value):
    """
    Format a value as currency according to locale.
    """
    set_locale()
    if not value:
        value = 0
    if hasattr(locale, "currency"):
        value = locale.currency(Decimal(value), grouping=True)
        if platform.system() == 'Windows':
            try:
                value = str(value, encoding='iso_8859_1')
            except TypeError:
                pass
    else:
        # based on locale.currency() in python >= 2.5
        conv = locale.localeconv()
        value = [
            conv["currency_symbol"], conv["p_sep_by_space"] and " " or "",
            (("%%.%sf" % conv["frac_digits"]) % value).replace(
                ".", conv["mon_decimal_point"])
        ]
        if not conv["p_cs_precedes"]:
            value.reverse()
        value = "".join(value)
    return value.replace('.00 руб'.encode('utf8'), ' \u20bd'.encode('utf8'))
Пример #2
0
def currency(value):
    """
    Replacement of cartridge's currency filter with international currency sign
    """
    set_locale()
    if not value:
        value = 0
    return locale.currency(Decimal(value), grouping=True, international=True)
Пример #3
0
 def __init__(self, *args, **kwargs):
     set_locale()
     defaults = {
         "null": True,
         "blank": True,
         "max_digits": 10,
         "decimal_places": localeconv()["frac_digits"]
     }
     defaults.update(kwargs)
     super(MoneyField, self).__init__(*args, **defaults)
Пример #4
0
 def render(self, name, value, attrs):
     try:
         value = float(value)
     except (TypeError, ValueError):
         pass
     else:
         set_locale()
         value = ("%%.%sf" % localeconv()["frac_digits"]) % value
         attrs["style"] = "text-align:right;"
     return super(MoneyWidget, self).render(name, value, attrs)
Пример #5
0
 def render(self, name, value, attrs):
     try:
         value = float(value)
     except (TypeError, ValueError):
         pass
     else:
         set_locale()
         value = ("%%.%sf" % localeconv()["frac_digits"]) % value
         attrs["style"] = "text-align:right;"
     return super(MoneyWidget, self).render(name, value, attrs)
Пример #6
0
def currency(value):
    """
    Format a value as currency according to locale.
    """
    set_locale()
    if not value:
        value = 0
    value = locale.currency(Decimal(value), grouping=True)
    if platform.system() == "Windows":
        try:
            value = str(value, encoding=locale.getpreferredencoding())
        except TypeError:
            pass
    return value
Пример #7
0
def currency(value):
    """
    Format a value as currency according to locale.
    """
    set_locale()
    if not value:
        value = 0
    value = locale.currency(Decimal(value), grouping=True)
    if platform.system() == 'Windows':
        try:
            value = str(value, encoding=locale.getpreferredencoding())
        except TypeError:
            pass
    return value
Пример #8
0
def currency(value):
    """
    Format a value as currency according to locale.
    """
    set_locale()
    if not value:
        value = 0
    if hasattr(locale, "currency"):
        value = locale.currency(value)
    else:
        # based on locale.currency() in python >= 2.5
        conv = locale.localeconv()
        value = [conv["currency_symbol"], conv["p_sep_by_space"] and " " or "",
            (("%%.%sf" % conv["frac_digits"]) % value).replace(".",
            conv["mon_decimal_point"])]
        if not conv["p_cs_precedes"]:
            value.reverse()
        value = "".join(value)
    return value
Пример #9
0
def currency(value):
    """
    Format a value as currency according to locale.
    """
    set_locale()
    if not value:
        value = 0
    if hasattr(locale, "currency"):
        value = locale.currency(value, grouping=True)
    else:
        # based on locale.currency() in python >= 2.5
        conv = locale.localeconv()
        value = [
            conv["currency_symbol"], conv["p_sep_by_space"] and " " or "",
            (("%%.%sf" % conv["frac_digits"]) % value).replace(
                ".", conv["mon_decimal_point"])
        ]
        if not conv["p_cs_precedes"]:
            value.reverse()
        value = "".join(value)
    return value
Пример #10
0
def currency(value):
    """
    Format a value as currency according to locale.
    """
    set_locale()
    if not value:
        value = 0
    if hasattr(locale, "currency"):
        value = locale.currency(Decimal(value), grouping=True)
        if platform.system() == 'Windows':
            value = str(value, encoding='iso_8859_1')
    else:
        # based on locale.currency() in python >= 2.5
        conv = locale.localeconv()
        value = [conv["currency_symbol"], conv["p_sep_by_space"] and " " or "",
            (("%%.%sf" % conv["frac_digits"]) % value).replace(".",
            conv["mon_decimal_point"])]
        if not conv["p_cs_precedes"]:
            value.reverse()
        value = "".join(value)
    return value
Пример #11
0
 def __init__(self, *args, **kwargs):
     set_locale()
     defaults = {"null": True, "blank": True, "max_digits": 10, 
         "decimal_places": localeconv()["frac_digits"]}
     defaults.update(kwargs)
     super(MoneyField, self).__init__(*args, **defaults)