
    	hH(                         d dl mZ d dlmZmZmZmZmZ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y)    )forms)	Chat_Data	TableList
ColumnListOptionsRelatedOptionTable	MapTablesc            	           e Zd Z G d d      Z ej
                  d ej                  ddd      d	      Z ej                  g d
 ej                  ddd            Z
 ej
                   ej                  dddd      d      Z ej                  ej                  j!                          ej                  ddd      d      Z ej                  g dd ej                  ddd            Z ej                  ej                  j!                         dd ej                  ddi            Z ej                  ej                  j!                          ej                  ddd      d      Z ej                  ej                  j!                          ej                  ddd      d      Z ej                  ddg ej                  d d!d      d"d#      Z fd$Zd% Zd& Z fd'Z xZS )(ChatFormc                       e Zd ZeZg dZy)ChatForm.Meta)	chat_name	chat_typerelated_chatoption_tableoption_columnmessageoption_typerelated_option_idN)__name__
__module____qualname__r   modelfields     /E:\Akash\Saasvaap\Navya-Bakers\chatbot\forms.pyMetar      s     Lr   r   z	Chat Nameform-controlzEnter Chat NameclassplaceholderattrsTlabelwidgetrequired) z	---------)Welcome Messager+   )Relatedr,   )End Messager-   zform-control form-selectr   r!   id)choicesr'      2   )rowscolsr!   )r'   r(   r   Fquerysetr'   r(   ))r*   z-------)Customr7   )Tabler8   r   )r0   r(   r'   zSelect an optionr!   )r6   r(   empty_labelr'   r   r   )Nor:   )Yesr;   z'form-control form-select redirect_classredirectr:   )r0   r'   initialr(   c                    t        t        | 
  |i | dgt        j                  j                         D cg c]  }|j                  |j                  f c}z   | j                  d   _	        | j                  j                  dk(  rdnd| j                  d   _        d| j                  v rYdgt        j                  j                         D cg c]  }|j                  |j                  f c}z   | j                  d   _	        y y c c}w c c}w )Nr)   r   r;   r:   r<   r   )superr   __init__r   objectsallr/   column_namer   r0   instancer<   r=   r   pkr   )selfargskwargscolchat	__class__s        r   r@   zChatForm.__init__M   s    h&770A/B1;1C1C1G1G1IF
1I#SVVS__%1IF
 0
O$, 48==3I3IU3R%X\J' T[[(3D2E6?6G6G6K6K6MI6Md$..)6MI 3DKK'/ )'F
(Is   DD	c                     | j                   j                  dd       }| j                   j                  dd       }|dk(  r|st        j                  d      |S )Nr   r   r,   zPlease select a option type!)cleaned_datagetr   ValidationError)rF   r   r   s      r   clean_option_typezChatForm.clean_option_typej   sU    %%))+t<	''++M4@	!++,JKKr   c                    | j                   j                  dd       }|dk(  rgt        j                  j	                  d      j                  | j                  j                        j                         rt        j                  d      |S )Nr   r+   )r   chat_idz!Only one welcome message allowed!)rM   rN   r   rA   filterexcluderD   rS   existsr   rO   )rF   r   s     r   clean_chat_typezChatForm.clean_chat_type   sw    %%))+t<	))  ''2C'DLLUYUbUbUjUjLkrrt++,OPPr   c                    t         
|          }|j                  d      }| j                  j                  dd       }| j                  j                  dd       }| j                  j                  dd       }| j                  j                  dd       }| j                  j                  dd       }| j                  j                  d      }|dk(  r-|d	k(  r(|s| j	                  dd
       |s| j	                  dd       |dk(  s|dk(  rq|s| j	                  dd       |S t
        j                  j                  |j                        j                         }	|	j                  dk(  r|s| j	                  dd       |S )Ncoder   r   r   r   r   r   r,   r8   zPlease select option column!zPlease select option table!r-   z%Please select a related chat message!rR   r7   zPlease select a related option!)r?   cleanrN   rM   	add_errorr   rA   rT   rS   firstr   )rF   rM   rY   r   r   r   r   r   r   	chat_datarK   s             r   rZ   zChatForm.clean   s`   w}'%%))+t<	''++M4@))--otD((,,^TB --112EtL((,,^<	!g%$NN?3QR#NN>3PQ 	!Y-%?~/VW  '..55@T@T5U[[]	((H4,':<]^ r   )r   r   r   r   r   	CharField	TextInputr   ChoiceFieldSelectr   Textarear   ModelChoiceFieldr   rA   rB   r   r   r   r   r   r   r   r   r<   r@   rP   rW   rZ   __classcell__)rK   s   @r   r   r      s   L L  u~N_%`aI "!!
 u||,Fk"Z[I eoou~~Q^$TUG
 *5))""&&(u||,Fn"]^L $%##Ku||,Fm"\]K
 /..#++//1&u||7N";<	 *5))""&&(u||N."QRL +E**##%5<<oNOM !u  u||EZX
 H:P r   r   c                   r    e Zd Z G d d      Z ej
                  d ej                  ddd      d	      Zy
)TableListFormc                       e Zd ZeZdgZy)TableListForm.Meta
table_nameN)r   r   r   r   r   r   r   r   r   r   rh      s    !r   r   z
Table Namer   zEnter Table Namer    r#   Tr%   N)r   r   r   r   r   r^   r_   ri   r   r   r   rf   rf      s8    " " !u~N`%abJr   rf   c                       e Zd Z G d d      Z ej
                  d ej                  ddd      d	      Z ej
                  d
 ej                  ddd      d	      Zy)ColumnListFormc                       e Zd ZeZddgZy)ColumnListForm.MetarC   	column_idN)r   r   r   r   r   r   r   r   r   r   rm      s    .r   r   zColumn(Name)r   zEnter Name Columnr    r#   Tr%   z
Column(ID)zEnter ID ColumnN)	r   r   r   r   r   r^   r_   rC   rn   r   r   r   rk   rk      sd    / / "%//u~Na%bcK  u~N_%`aIr   rk   c                       e Zd Z G d d      Z ej
                  d ej                  ddd      d	      Z ej                  e	j                  j                          ej                  dd
d      d      Zd Zy)MapFormc                       e Zd ZeZddgZy)MapForm.Metamap_nameri   N)r   r   r   r	   r   r   r   r   r   r   rr      s    \,r   r   zMap Namer   zEnter Map Namer    r#   Tr%   r   r.   Fr5   c                    | j                   j                  dd       }d}	 | j                  j                  }d}t        j
                  j                  |      }|r^|| j                  j                  k(  r,t        t        |            dkD  r,t        j                  d      |rt        j                  d      |S |rt        j                  d      |S #  d}d}Y xY w)Nri   FTr*   )ri      z.Table is already mapped Please check map list!)rM   rN   rD   ri   r	   rA   rT   lenlistr   rO   )rF   ri   	edit_flagexisting_table_namevalid_checks        r   clean_table_namezMapForm.clean_table_name   s    &&**<>
		"&--":":I &&---DT]]555tK()A-//0`aa//0`aa  ++,\]] -	"$Is   C CN)r   r   r   r   r   r^   r_   rs   rc   r   rA   rB   ra   ri   r{   r   r   r   rp   rp      sy    - - uu~N^%_`H (''""&&(u||N."QRJr   rp   N)djangor   chatbot.modelsr   r   r   r   r   r	   	ModelFormr   rf   rk   rp   r   r   r   <module>r      sQ     c cxu x~	EOO 	U__ &/eoo /r   