
    kh]                        d dl mZ d dlmZmZmZmZmZmZm	Z	m
Z
mZmZmZ d dlmZ d dlmZmZ d dlmZ  G d dej*                        Z G d d	ej.                        Z G d
 dej.                        Z G d dej.                        Z G d dej.                        Z G d dej*                        Z G d dej*                        Z G d dej*                        Z G d dej*                        Z eeedd      Z 	  G d dej*                        Z!	  G d dej*                        Z" G d d ej*                        Z# eee	e#dd!      Z$ G d" d#ej*                        Z% eee
e%dd!      Z& G d$ d%ej*                        Z' eeee'dd!      Z( G d& d'ej*                        Z) eeee)dd!      Z* G d( d)ej*                        Z+ eeee+dd!      Z,y*)+    )forms)CompanyUserClient	CountriesClientFrequentFlyerAirlinesClientPassportAssocClientCompanyClientDocument
ClientVisaClientTravelInsurance)AuthenticationForm)modelformset_factoryinlineformset_factory)authenticatec                        e Zd Z G d d      Zy)UserFormc            	           e Zd ZeZg dZ ej                  dddd       ej                  dddd       ej                  dddd       ej                  dddd      dZ	y	)
UserForm.Meta)usernameemail
contact_nodesignationform-controlT2   )classrequired	maxlengthattrsd      N)
__name__
__module____qualname__r   modelfieldsr   	TextInput
EmailInputwidgets     9D:\Kush\my_value_trip_django\my_value_trip\users\forms.pyMetar      sq    C'TXgi.jk%U%%nRVeh,ij)%//.VZik0lm*5??>W[jm1no	
r-   r/   Nr$   r%   r&   r/   r,   r-   r.   r   r      s    
 
r-   r   c                   .    e Zd Z ej                         Zy)ForgotPasswordFormN)r$   r%   r&   r   
EmailFieldr   r,   r-   r.   r2   r2      s    EEr-   r2   c                        e Zd Z ej                  ej
                        Z ej                  ej
                        Z fdZ xZ	S )ResetPasswordFormwidgetc                     t         |          }|j                  d      }|j                  d      }||k7  rt        j                  d      |S )Nnew_passwordconfirm_passwordzPasswords do not match.supercleangetr   ValidationError)selfcleaned_datap1p2	__class__s       r.   r=   zResetPasswordForm.clean   sN    w}n-018''(ABBr-   )
r$   r%   r&   r   	CharFieldPasswordInputr9   r:   r=   __classcell__rD   s   @r.   r5   r5      s:    "5??%*=*=>L&ue.A.AB r-   r5   c            	            e Zd Z ej                  d ej
                  ddd            Z ej                  d ej                  ddd	d
            Z	 fdZ
 xZS )CustomLoginFormEmailr   zEnter your emailr   placeholderr    )labelr7   PasswordzEnter your passwordid_password)r   rM   idc                     t         |          }|j                  d      }|j                  d      }|r+|r)t        ||      }|st	        j
                  d      ||d<   |S )Nr   password)r   rS   zInvalid email or password.user)r<   r=   r>   r   r   r?   )r@   rA   r   rS   rT   rD   s        r.   r=   zCustomLoginForm.cleanE   sd    w}  )##J/Xeh?D++,HII#'L r-   )r$   r%   r&   r   r3   r*   r   rE   rF   rS   r=   rG   rH   s   @r.   rJ   rJ   :   sp    E73C53C3C)K 4 E uZ8K8K8K,S 9 H
 
r-   rJ   c            	       ^    e Zd Z ej                  dd ej
                  ddd            Zy)	OTPVerificationFormOTP   r   z	Enter OTPrL   r    )rN   
max_lengthr7   N)r$   r%   r&   r   rE   r)   otpr,   r-   r.   rV   rV   R   s/    
%//!OEOO"S = Cr-   rV   c                        e Zd Z ej                   ej
                  ddi            Z ej                   ej
                  ddi            Z G d d      Z fdZ	d	 fd	Z
 xZS )
RegisterFormr   r   r    r6   c                       e Zd ZeZddgZy)RegisterForm.Metar   r   Nr$   r%   r&   r   r'   r(   r,   r-   r.   r/   r^   \   s    g&r-   r/   c                     t         |          }|j                  d      |j                  d      k7  rt        j                  d      |S )N	password1	password2zPasswords do not matchr;   )r@   rA   rD   s     r.   r=   zRegisterForm.clean`   sD    w}K(L,<,<[,II''(@AAr-   c                     t         |   d      }|j                  | j                  d          |r|j                          |S )NFcommitra   )r<   saveset_passwordrA   )r@   re   rT   rD   s      r.   rf   zRegisterForm.savef   s=    w|5|)$++K89IIKr-   T)r$   r%   r&   r   rE   rF   ra   rb   r/   r=   rf   rG   rH   s   @r.   r\   r\   X   sb    ':u':':'>AZ'[\I':u':':'>AZ'[\I' ' r-   r\   c                        e Zd Z G d d      Zy)UserCreateFormc                       e Zd ZeZg dZy)UserCreateForm.Meta)r   r   r   r   rS   Nr_   r,   r-   r.   r/   rl   o   s    Or-   r/   Nr0   r,   r-   r.   rj   rj   n   s    P Pr-   rj   c                   8     e Zd Z G d d      Z fdZd Z xZS )UserUpdateFormc                       e Zd ZeZg dZy)UserUpdateForm.Meta)r   r   r   r   	is_activeNr_   r,   r-   r.   r/   rp      s    Pr-   r/   c                     t        |   |i | | j                  r| j                  j                  | _        y d | _        y N)r<   __init__instancepkinstance_idr@   argskwargsrD   s      r.   rt   zUserUpdateForm.__init__   s4    $)&)/3}}4==++$r-   c                    | j                   j                  d      }|s|S t        j                  j	                  |      j                  | j                  j                        }|j                         rt        j                  d      |S )Nr   r   )rv   z$User with this Email already exists.)rA   r>   r   objectsfilterexcluderu   rv   existsr   r?   )r@   r   qss      r.   clean_emailzUserUpdateForm.clean_email   so    !!%%g.L\\  u -559I9I5J99;''(NOOr-   )r$   r%   r&   r/   rt   r   rG   rH   s   @r.   rn   rn      s    Q QGr-   rn   c                        e Zd Z G d d      Zy)CompanyFormc                       e Zd ZeZdZy)CompanyForm.Meta__all__N)r$   r%   r&   r   r'   r(   r,   r-   r.   r/   r      s    r-   r/   Nr0   r,   r-   r.   r   r      s     r-   r      F)formextra
can_deletec                        e Zd Z ej                  ej                  j                         d ej                  ddi      d      Z	 G d d      Z
 fd	Zd
 Z xZS )
ClientFormzCountry Coder   r   r    rQ   )querysetrN   r7   to_field_namec            
       
   e Zd ZeZdZddgZi d ej                  ddd      d	 ej                  ddd      d
 ej                  ddd      d ej                  ddd      d ej                  ddi      d ej                  ddi      d ej                  ddi      d ej                  ddi      d ej                  ddi      d ej                  ddi      d ej                  ddi      d ej                  ddi      d ej                  ddi      d ej                  ddi      d ej                  ddi      d ej                  ddi      d ej                  ddi       ej                  ddi       ej                  ddi       ej                  ddi       ej                  ddi       ej                  ddi       ej                  ddi      dZy)ClientForm.Metar   
created_by
updated_bydobdater   )typer   r    anniversary_date
created_atzdatetime-local
updated_atpassport_expiry_dater   client_salutationr   form-selectcompanycountry_codegendermarital_statusreference_frompreferred_contact_methodresidential_cityresidential_stateresidential_countryref_preferred_airline_idseat_preference)meal_preferencefare_preferencestar_ratingstay_preferenceroom_preferenceref_frequent_airlineN)r$   r%   r&   r   r'   r(   r   r   	DateInputDateTimeInputSelectr+   r,   r-   r.   r/   r      sy   .
?5??&>)RS
vP^6_ `
 -%--=MXf4gh
 -%--=MXf4gh	

 #OEOO66:J$K
  Wm4L!M
 |u||7M*BC
 LELL/GH
 lell'=)AB
 lell'=1IJ
 lell'=1IJ
 'G];S(T
 G]3K L
  Wm4L!M
 "<5<<w6N#O
  'G];S(T!
" |u||7M2JK#
$  ,u||7M2JK+u||7M2JK'5<<w.FG+u||7M2JK+u||7M2JK$0ELL7O$P/
r-   r/   c                 @   t        |   |i | d| j                  v rFt        j                  j                  d      | j                  d   _        d | j                  d   _        d| j                  v rFt        j                  j                  d      | j                  d   _        d | j                  d   _        d| j                  v rd | j                  d   _        d| j                  v r5| j                  d   j                  j                  j                  d	d
i       y y )Nr   r   c                     | j                   S rs   r|   objs    r.   <lambda>z%ClientForm.__init__.<locals>.<lambda>      		r-   r   c                     | j                   S rs   r|   r   s    r.   r   z%ClientForm.__init__.<locals>.<lambda>  r   r-   r   c                 <    d| j                    d| j                   dS )N+z ())r   namer   s    r.   r   z%ClientForm.__init__.<locals>.<lambda>  s    a 0 01CHH:Q?r-   rq   r   form-check-input)r<   rt   r(   r   r}   order_byr   label_from_instancer7   r!   updaterx   s      r.   rt   zClientForm.__init__   s    $)&) 4;;&151F1Fw1ODKK%.<QDKK%94;;&151F1Fw1ODKK%.<QDKK%9T[[(? KK'; $++%KK$++1188'CU9VW &r-   c                    | j                   j                  d      }| j                   j                  d      }|r|j                  xs d}|j                  xs d}|r4t	        |      |k  r&t        j                  d| d|j                   d      |r4t	        |      |kD  r&t        j                  d| d|j                   d      |S )Ncontact_numberr   r   z Contact number must be at least z digits for .zContact number cannot exceed )rA   r>   
min_lengthrY   lenr   r?   r   )r@   r   countrymin_lenmax_lens        r.   clean_contact_numberzClientForm.clean_contact_number  s    **../?@##''7((-AG((-AG3~.8++6wi|GLL>YZ[  3~.8++3G9LVWX  r-   )r$   r%   r&   r   ModelChoiceFieldr   r}   allr   r   r/   rt   r   rG   rH   s   @r.   r   r      sU    )5))""&&(u||7N";<	L
 
>X(r-   r   c                   4     e Zd Z G d d      Zd fd	Z xZS )FrequentFlyerFormc                   x    e Zd ZeZg dZ ej                  ddi       ej                  ddi      dZ	dddZ
y	)
FrequentFlyerForm.Meta)ref_airlineff_no
ref_clientr   r   r    r   )r   r   r	   zFF No.N)r$   r%   r&   r   r'   r(   r   r   r)   r+   labelsr,   r-   r.   r/   r     sH    #7'5<<w.FG$U__G^+DE

 &
r-   r/   c                     t         |   d      }d| j                  v r| j                  d   }nd }|r|j                          |S )NFrd   airline)r<   rf   rA   )r@   re   ru   r   rD   s       r.   rf   zFrequentFlyerForm.save  sG    7<u<-)))''	2GGMMOr-   rh   )r$   r%   r&   r/   rf   rG   rH   s   @r.   r   r     s    

 

	 	r-   r   c                        e Zd Z G d d      Zy)ClientPassportFormc                       e Zd ZeZg dZ ej                  dddd       ej                  ddd	d
       ej                  ddd      dZ
y)ClientPassportForm.Meta)passport_filepassport_nor   r   z%form-control alpha_numeric valid_pspt10z&this.value = this.value.toUpperCase();)r   r   onkeyupr    r   form-control datetimepicker,{"dateFormat":"d/m/Y", "disableMobile":true})r   r   data-optionsr   .image/jpg,image/jpeg,image/png,application/pdfr   accept)r   r   r   N)r$   r%   r&   r
   r'   r(   r   r)   r   	FileInputr+   r,   r-   r.   r/   r     sh    W*5??@!C2 
 %4EOO6 N; %
 -U__'J4 
r-   r/   Nr0   r,   r-   r.   r   r         
 
r-   r   Tc                        e Zd Z G d d      Zy)AssocClientCompanyFormc                       e Zd ZeZg dZ ej                  ddi       ej                  ddd       ej                  ddi       ej                         dZy	)
AssocClientCompanyForm.Meta)ref_companyr   primary_companyr   r   zform-control select2r    zform-control alpha_numeric50)r   r   r   N)r$   r%   r&   r   r'   r(   r   r   r)   CheckboxInputHiddenInputr+   r,   r-   r.   r/   r     st    "P'5<<//  +5??5!2   3u22+:   ,%++-
r-   r/   Nr0   r,   r-   r.   r   r     s    
 
r-   r   c                        e Zd Z G d d      Zy)OtherDocumentFormc                   r    e Zd ZeZg dZ ej                  ddd       ej                  ddd      d	Z	y
)OtherDocumentForm.Meta)other_documentother_document_namer   zform-select select2z-- Select Document Type --)r   zdata-placeholderr    r   r   r   )document_typedocument_fileN)
r$   r%   r&   r   r'   r(   r   r   r   r+   r,   r-   r.   r/   r     sG    H)U\\.$@1  -U__'J4 	
r-   r/   Nr0   r,   r-   r.   r   r     s    
 
r-   r   c                        e Zd Z G d d      Zy)ClientVisaFormc            
           e Zd ZeZg dZ ej                  ddi       ej                  ddi       ej                  ddd       ej                  dd	d
d       ej                  dd	d
d      dZ
y)ClientVisaForm.Meta)ref_visa_country	visa_typepassport_size_photographvisa_from_datevisa_to_dater   r   r    r   r   r   r   r   r   r   r   r   N)r$   r%   r&   r   r'   r(   r   r   ClearableFileInputr   r+   r,   r-   r.   r/   r     s    
 !-G]3K L%Wm,DE(@(@(@'JH ) .eoo6 N5 
 ,EOO6 N3 
r-   r/   Nr0   r,   r-   r.   r   r     s    
 
r-   r   c                        e Zd Z G d d      Zy)ClientTravelInsuranceFormc                       e Zd ZeZg dZ ej                  ddd       ej                  dddd	       ej                  dddd	      d
Z	y)ClientTravelInsuranceForm.Meta)insurance_documentinsurance_from_dateinsurance_to_dater   r   r   r   r    r   r   r   r   )r  r  r  N)
r$   r%   r&   r   r'   r(   r   r   r   r+   r,   r-   r.   r/   r  .  sh    %a"1%//'J9 # $35??6 N: $
 "16 N8 "
r-   r/   Nr0   r,   r-   r.   r  r  -  r   r-   r  N)-djangor   users.modelsr   r   r   r   r   r	   r
   r   r   r   r   django.contrib.auth.formsr   django.formsr   r   django.contrib.authr   	ModelFormr   Formr2   r5   rJ   rV   r\   rj   rn   r   CompanyFormSetr   r   r   PassportFormSetr   AssocClientCompanyFormSetr   OtherDocumentFormSetr   VisaFormSetr  TravelInsuranceFormSetr,   r-   r.   <module>r     s    p  p  p  p 8 D ,	
u 	
 


 
>ejj 0%** 5?? ,PU__ PLU__ &%//  &	
	:L L^k\ 2
 
* (
	

U__ 
& 2
	
  
 
  -
	
 
U__ 
< $
	

 
* /
	"
 r-   