Django

Code

Show
Ignore:
Timestamp:
07/04/07 07:11:04 (2 years ago)
Author:
mtredinnick
Message:

Merged Unicode branch into trunk (r4952:5608). This should be fully
backwards compatible for all practical purposes.

Fixed #2391, #2489, #2996, #3322, #3344, #3370, #3406, #3432, #3454, #3492, #3582, #3690, #3878, #3891, #3937, #4039, #4141, #4227, #4286, #4291, #4300, #4452, #4702

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk

    • Property svnmerge-integrated set to /django/trunk:1-5600
  • django/trunk/django/contrib/localflavor/it/util.py

    r5018 r5609  
     1from django.utils.encoding import smart_str, smart_unicode 
     2 
    13def ssn_check_digit(value): 
    24    "Calculate Italian social security number check digit." 
    35    ssn_even_chars = { 
    4         '0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9, 
    5         'A': 0, 'B': 1, 'C': 2, 'D': 3, 'E': 4, 'F': 5, 'G': 6, 'H': 7, 'I': 8, 'J': 9, 
    6         'K': 10, 'L': 11, 'M': 12, 'N': 13, 'O': 14, 'P': 15, 'Q': 16, 'R': 17, 'S': 18, 
    7         'T': 19, 'U': 20, 'V': 21, 'W': 22, 'X': 23, 'Y': 24, 'Z': 25 
     6        '0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, 
     7        '9': 9, 'A': 0, 'B': 1, 'C': 2, 'D': 3, 'E': 4, 'F': 5, 'G': 6, 'H': 7, 
     8        'I': 8, 'J': 9, 'K': 10, 'L': 11, 'M': 12, 'N': 13, 'O': 14, 'P': 15, 
     9        'Q': 16, 'R': 17, 'S': 18, 'T': 19, 'U': 20, 'V': 21, 'W': 22, 'X': 23, 
     10        'Y': 24, 'Z': 25 
    811    } 
    912    ssn_odd_chars = { 
    10         '0': 1, '1': 0, '2': 5, '3': 7, '4': 9, '5': 13, '6': 15, '7': 17, '8': 19, '9': 21, 
    11         'A': 1, 'B': 0, 'C': 5, 'D': 7, 'E': 9, 'F': 13, 'G': 15, 'H': 17, 'I': 19, 'J': 21, 
    12         'K': 2, 'L': 4, 'M': 18, 'N': 20, 'O': 11, 'P': 3, 'Q': 6, 'R': 8, 'S': 12, 
    13         'T': 14, 'U': 16, 'V': 10, 'W': 22, 'X': 25, 'Y': 24, 'Z': 23 
     13        '0': 1, '1': 0, '2': 5, '3': 7, '4': 9, '5': 13, '6': 15, '7': 17, '8': 
     14        19, '9': 21, 'A': 1, 'B': 0, 'C': 5, 'D': 7, 'E': 9, 'F': 13, 'G': 15, 
     15        'H': 17, 'I': 19, 'J': 21, 'K': 2, 'L': 4, 'M': 18, 'N': 20, 'O': 11, 
     16        'P': 3, 'Q': 6, 'R': 8, 'S': 12, 'T': 14, 'U': 16, 'V': 10, 'W': 22, 
     17        'X': 25, 'Y': 24, 'Z': 23 
    1418    } 
    1519    # Chars from 'A' to 'Z' 
     
    1822    ssn = value.upper() 
    1923    total = 0 
    20     for i in range(0,15): 
     24    for i in range(0, 15): 
    2125        try: 
    2226            if i % 2 == 0: 
     
    3135def vat_number_check_digit(vat_number): 
    3236    "Calculate Italian VAT number check digit." 
    33     normalized_vat_number = str(vat_number).zfill(10) 
     37    normalized_vat_number = smart_str(vat_number).zfill(10) 
    3438    total = 0 
    3539    for i in range(0, 10, 2): 
     
    3842        quotient , remainder = divmod(int(normalized_vat_number[i]) * 2, 10) 
    3943        total += quotient + remainder 
    40     return str((10 - total % 10) % 10) 
     44    return smart_unicode((10 - total % 10) % 10)