
    'Mni\#                         d dl mZ d dlmZ d dlmZ ddlmZmZ ddl	m
Z
  G d de      Z G d	 d
ej                        Zy)    )forms)UserCreationForm)FileExtensionValidator   )UserCustomerProfile)	COUNTRIESc            	           e Zd Z ej                  ej                  j                   ej                  ddi            Z	 ej                  dd ej                  ddd	      
      Z ej                  d ej                  ddd	            Z ej                  dd ej                  ddd	      
      Z ej                  dd ej                  ddd	      
      Z ej                   d ej"                  ddd	            Z ej                  dd ej                  ddd	      
      Z ej                  d ej                  ddd	            Z ej                  d ej                  ddd	            Z ej                  ed ej.                  ddi            Z ej                  dd ej                  ddd	      
      Z ej                  d ej                  ddd	            ZdddZ eg d      gZ ej<                  de ej>                  e             Z  ej<                  de ej>                  e             Z! ej<                  de ej>                  e             Z" ej<                  de ej>                  e             Z# ej<                  de ej>                  e             Z$ G d! d"      Z% fd#Z& fd$Z'd& fd%	Z( xZ)S )'CustomerRegistrationFormclasszcustomer-type-radioattrs)choiceswidgetd   Ffw-full px-4 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-teal-500z	Job Titler   placeholder)
max_lengthrequiredr      zPhone Number)r   r      Company NamezCompany Legal NamezCompany Email)r   r   2   zVAT/Tax NumberzStreet AddressCityAE)r   initialr   zState/ProvincezZip Codehiddenz.pdf,.jpeg,.jpg,.png)r   accept)pdfjpegjpgpng)allowed_extensions)r   
validatorsr   c                       e Zd ZeZg dZ ej                  ddd       ej                  ddd       ej                  ddd      dZ	y	)
CustomerRegistrationForm.Meta)email
first_name	last_name	password1	password2r   Emailr   r   z
First Namez	Last Name)r(   r)   r*   N)
__name__
__module____qualname__r   modelfieldsr   
EmailInput	TextInputwidgets     $/var/www/alwasay/apps/users/forms.pyMetar'   m   sm    O%U%% B&-  *%// B+1  ) B*0 
r7   r9   c                     t        |   |i | | j                  d   j                  j                  j                  ddd       | j                  d   j                  j                  j                  ddd       y )Nr+   r   Passwordr   r,   zConfirm Password)super__init__r2   r   r   update)selfargskwargs	__class__s      r8   r=   z!CustomerRegistrationForm.__init__   ss    $)&)K ''--44}%6
 	 	K ''--44}-6
 	r7   c                    t         |          }|j                  d      }|t        j                  j
                  k(  rddddd}|j                         D ],  \  }}|j                  |      r| j                  || d       . dd	d
}|j                         D ],  \  }}|j                  |      r| j                  || d       . |S )Ncustomer_typer   zCompany Email IDzCommercial/Trading LicensezVAT Registration Certificate)company_namecompany_emailcommercial_trading_licensevat_registration_certificatez' is required for Business registration.zOwner Passport CopyzNational ID)owner_passport_copynational_idz is required.)r<   cleangetr   CustomerTypeBUSINESSitems	add_error)r?   cleaned_datarD   required_fieldsfieldlabelrequired_docsrB   s          r8   rK   zCustomerRegistrationForm.clean   s    w}$((9O88AAA .!3.J0N	O !0 5 5 7 ]u#''.NN5UG3Z*[\]
 (=,M !. 3 3 5 Cu#''.NN5UG=*ABC r7   c                    t         |   d      }| j                  d   |_        |r|j                          t        j
                  j                  || j                  d   | j                  j                  dd      | j                  d   | j                  j                  dd      | j                  j                  d	d      | j                  j                  d
d      | j                  j                  dd      | j                  d   | j                  d   | j                  d   | j                  j                  dd      | j                  d   | j                  j                  d      | j                  j                  d      | j                  j                  d      | j                  j                  d      | j                  j                  d             |S )NF)commitr(   rD   	job_title phone_numberrE   company_legal_namerF   vat_tax_numberstreet_addresscitycountrystate_provincezip_codebusiness_permitrG   rH   rI   rJ   )userrD   rX   rZ   rE   r[   rF   r\   r]   r^   r_   r`   ra   rb   rG   rH   rI   rJ   )r<   saverQ   usernamer   objectscreaterL   )r?   rW   rc   rB   s      r8   rd   zCustomerRegistrationForm.save   s   w|5|)))'2IIK##**"//@++//R@!..~>!..22>2F#'#4#4#8#89Mr#R"//33ORH#00445ErJ#001AB&&v.)))4#00445ErJ**:6 $ 1 1 5 56G H+/+<+<+@+@A]+^-1->->-B-BCa-b$($5$5$9$9:O$P --11-@% + ( r7   )T)*r.   r/   r0   r   ChoiceFieldr   rM   r   RadioSelectrD   	CharFieldr4   rX   rZ   rE   r[   
EmailFieldr3   rF   r\   r]   r^   r	   Selectr_   r`   ra   
file_attrsr   file_validators	FileField	FileInputrb   rG   rH   rI   rJ   r9   r=   rK   rd   __classcell__)rB   s   @r8   r   r      sS   %E%%,,44 u  1F'GHM
  u}&&
 I #5??u})&
 L #5??u})&
 L )u}/&
  %E$$u}*'
 M %U__u}+&
 N %U__u}+&
 N 5??u}!&
 D  eu||}#
 G %U__u}+&
 N uu}%&
 H $/EFJ-A^_`O%eoouYhY^YhYhoyYz{O!0%Odsdidsds  {E  eF  "G#25??Eofufkfufu  }G  gH  $I )%//5_]l]b]l]ls}]~!%//5_UdUZUdUdkuUvwK
 
$	2 r7   r   c                       e Zd Z ej                   ej
                  ddd            Z ej                   ej                  ddd            Z	y)CustomerLoginFormr   r-   r   r   )r   r;   N)
r.   r/   r0   r   rk   r3   r(   rj   PasswordInputpasswordr6   r7   r8   rs   rs      s\    Eu}"'
 E u"u""}%*
 Hr7   rs   N)djangor   django.contrib.auth.formsr   django.core.validatorsr   modelsr   r   	countriesr	   r   Formrs   r6   r7   r8   <module>r|      s4     6 9 )  t/ tn

 r7   