ó
ø¢TQc           @@ sÔ   d  Z  d d l m Z m Z d d l m Z d d l m Z d d l m	 Z	 d d l
 m Z m Z m Z d d l m Z d e f d	 „  ƒ  YZ d
 e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d S(   u   
AR-specific Form helpers.
i    (   t   absolute_importt   unicode_literals(   t   PROVINCE_CHOICES(   t   EMPTY_VALUES(   t   ValidationError(   t
   RegexFieldt	   CharFieldt   Select(   t   ugettext_lazyt   ARProvinceSelectc           B@ s   e  Z d  Z d d „ Z RS(   ui   
    A Select widget that uses a list of Argentinean provinces/autonomous cities
    as its choices.
    c         C@ s    t  t |  ƒ j | d t ƒd  S(   Nt   choices(   t   superR	   t   __init__R   (   t   selft   attrs(    (    s<   ../Django//lib/python/django/contrib/localflavor/ar/forms.pyR      s    N(   t   __name__t
   __module__t   __doc__t   NoneR   (    (    (    s<   ../Django//lib/python/django/contrib/localflavor/ar/forms.pyR	      s   t   ARPostalCodeFieldc           B@ s9   e  Z d  Z i e d ƒ d 6Z d d d „ Z d „  Z RS(   uÂ   
    A field that accepts a 'classic' NNNN Postal Code or a CPA.

    See:
        http://www.correoargentino.com.ar/cpa/que_es
        http://www.correoargentino.com.ar/cpa/como_escribirlo
    u3   Enter a postal code in the format NNNN or ANNNNAAA.u   invalidi   i   c         O@ s&   t  t |  ƒ j d | | | | Ž d  S(   Nu(   ^\d{4}$|^[A-HJ-NP-Za-hj-np-z]\d{4}\D{3}$(   R   R   R   (   R   t
   max_lengtht
   min_lengtht   argst   kwargs(    (    s<   ../Django//lib/python/django/contrib/localflavor/ar/forms.pyR   #   s    c         C@ s’   t  t |  ƒ j | ƒ } | t k r( d St | ƒ d	 k rP t |  j d ƒ ‚ n  t | ƒ d k rŽ d | d j ƒ  | d d !| d j ƒ  f S| S(
   Nu    i   i   u   invalidu   %s%s%si    i   i   (   i   i   (   R   R   t   cleanR   t   lenR   t   error_messagest   upper(   R   t   value(    (    s<   ../Django//lib/python/django/contrib/localflavor/ar/forms.pyR   '   s    ,(   R   R   R   t   _t   default_error_messagesR   R   (    (    (    s<   ../Django//lib/python/django/contrib/localflavor/ar/forms.pyR      s
   t
   ARDNIFieldc           B@ sF   e  Z d  Z i e d ƒ d 6e d ƒ d 6Z d d d „ Z d „  Z RS(	   uQ   
    A field that validates 'Documento Nacional de Identidad' (DNI) numbers.
    u!   This field requires only numbers.u   invalidu"   This field requires 7 or 8 digits.u
   max_digitsi
   i   c         O@ s#   t  t |  ƒ j | | | | Ž d  S(   N(   R   R   R   (   R   R   R   R   R   (    (    s<   ../Django//lib/python/django/contrib/localflavor/ar/forms.pyR   :   s    c         C@ s—   t  t |  ƒ j | ƒ } | t k r( d S| j ƒ  sI | j d d ƒ } n  | j ƒ  sk t |  j d ƒ ‚ n  t | ƒ d k r“ t |  j d ƒ ‚ n  | S(   uY   
        Value can be a string either in the [X]X.XXX.XXX or [X]XXXXXXX formats.
        u    u   .u   invalidi   i   u
   max_digits(   i   i   (	   R   R   R   R   t   isdigitt   replaceR   R   R   (   R   R   (    (    s<   ../Django//lib/python/django/contrib/localflavor/ar/forms.pyR   >   s    (   R   R   R   R   R   R   R   (    (    (    s<   ../Django//lib/python/django/contrib/localflavor/ar/forms.pyR   1   s   t   ARCUITFieldc           B@ sq   e  Z d  Z i e d ƒ d 6e d ƒ d 6e d ƒ d 6Z d d d „ Z d „  Z d	 „  Z d
 „  Z	 d d „ Z
 RS(   uŸ   
    This field validates a CUIT (CÃ³digo Ãšnico de IdentificaciÃ³n Tributaria). A
    CUIT is of the form XX-XXXXXXXX-V. The last digit is a check digit.
    u;   Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format.u   invalidu   Invalid CUIT.u   checksumu2   Invalid legal type. Type must be 27, 20, 23 or 30.u
   legal_typec         O@ s&   t  t |  ƒ j d | | | | Ž d  S(   Nu   ^\d{2}-?\d{8}-?\d$(   R   R"   R   (   R   R   R   R   R   (    (    s<   ../Django//lib/python/django/contrib/localflavor/ar/forms.pyR   Y   s    c         C@ sž   t  t |  ƒ j | ƒ } | t k r( d S|  j | ƒ \ } } | d  d	 k rc t |  j d ƒ ‚ n  |  j | ƒ | k rŽ t |  j d ƒ ‚ n  |  j | | ƒ S(
   ui   
        Value can be either a string in the format XX-XXXXXXXX-X or an
        11-digit number.
        u    i   u   27u   20u   23u   30u
   legal_typeu   checksum(   u   27u   20u   23u   30(	   R   R"   R   R   t   _canonR   R   t   _calc_cdt   _format(   R   R   t   cd(    (    s<   ../Django//lib/python/django/contrib/localflavor/ar/forms.pyR   ]   s    c         C@ s$   | j  d d ƒ } | d  | d f S(   Nu   -u    iÿÿÿÿ(   R!   (   R   t   cuit(    (    s<   ../Django//lib/python/django/contrib/localflavor/ar/forms.pyR#   l   s    c      
   C@ s   d } t  g  t | ƒ D]  \ } } | t | | ƒ ^ q ƒ } d | d } | d k rb d } n | d	 k rw d
 } n  t | ƒ S(   Ni   i   i   i   i   i   i   i    i
   i	   (
   i   i   i   i   i   i   i   i   i   i   (   t   sumt	   enumeratet   intt   str(   R   R'   t   multst   idxt   mt   tmpt   result(    (    s<   ../Django//lib/python/django/contrib/localflavor/ar/forms.pyR$   p   s    9		c         C@ s<   | d  k r# | d } | d  } n  d | d  | d | f S(   Niÿÿÿÿu   %s-%s-%si   (   R   (   R   R'   t   check_digit(    (    s<   ../Django//lib/python/django/contrib/localflavor/ar/forms.pyR%   |   s    
N(   R   R   R   R   R   R   R   R   R#   R$   R%   (    (    (    s<   ../Django//lib/python/django/contrib/localflavor/ar/forms.pyR"   N   s   			N(   R   t
   __future__R    R   t*   django.contrib.localflavor.ar.ar_provincesR   t   django.core.validatorsR   t   django.formsR   t   django.forms.fieldsR   R   R   t   django.utils.translationR   R   R	   R   R   R"   (    (    (    s<   ../Django//lib/python/django/contrib/localflavor/ar/forms.pyt   <module>   s   