
    	h9                        d dl mZmZmZ ddlmZmZmZmZ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d	lmZmZmZmZ d d
lmZ d dlmZ 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 d dl'm(Z(m)Z) d dl*m+Z+ d dl,m-Z- d dl.Z.d dl/m0Z0 d dl1m2Z2 d dl3m4Z4  e eddg            d        Z5 e eddg            d        Z6 e eddg            d        Z7 e eddg            d        Z8 e eddg            d        Z9 e eddg            d        Z: e eddg            d        Z; e eddg            d         Z8 e eddg            d0d!       Z<d" Z= ed#g      d$        Z> e eddg            d%        Z?d& Z@ e eddg            d'        ZA e eddg            d(        ZB e eddg            d)        ZC e eddg            d*        ZD ed#g      d+        ZE e eddg            d,        ZF e eddg            d-        ZG e eddg            d.        ZH e eddg            d/        ZIy)1    )renderredirectget_object_or_404   )	Chat_DataOptions
ColumnList	TableListRelatedOptionTable	MapTables)	Paginator)check_user_role)user_passes_test)r   	EmptyPagePageNotAnInteger)PageNumberPagination)ChatFormTableListFormColumnListFormMapFormapps)JsonResponse)api_view)Responsestatus)ChatDataSerializerOptionsSerializer)
connectiontransaction)Products)messagesN)	send_mail)EMAIL_HOST_USER)UserLocationzSuper Adminz	NBC Adminc                 l   t         j                  j                  d      }t        |d      }| j                  j                  d      }	 |j                  |      }|dd}t        | d|      S # t        t        f$ r |j                  d      }Y 4t        $ r |j                  |j                        }Y Yw xY w)N-created_date   pager   active)	chat_datachat_activezchat_data_list.html)r   objectsorder_byr   GETgetget_pager   	TypeErrorr   	num_pagesr   )requestchat	paginatorr*   r,   contexts         /E:\Akash\Saasvaap\Navya-Bakers\chatbot\views.py	chat_listr:      s    %%o6D$"I;;??6"D<&&t,	
 &h?G'0':: i( *&&q)	 <&&y':':;	<   A+ + B3#B32B3c                    t         j                  j                  |      }t         j                  j                  |      j                         }|r!t	        j
                  | d       t        d      S |r|j                          t        d      S )Npkrelated_chatz-Couldn't delete chat related to another chat!	chat-list)r   r.   filterfirstr#   warningdeleter   )r5   chat_idr6   querysets       r9   chat_deleterH   *   sw    ##w#/D  ''W'=CCEH!PQ K   KKMK      c           	      	   g }| j                   dk(  rt        | j                        }| j                  j                  d      }| j                  j                  d      }| j                  j                  d      }| j                  j                  d      }	 |r t        j
                  j                  |      nd }| j                  j                  dd       }d }	|r!	 t        j
                  j                  |      }	|r.t        j
                  j                  |      j                         nd }
	 |r t        j
                  j                  |      nd }|d	k(  rd }
d }d }	|j                         r|j                  d
      }|
|_        ||_        |	|_        ||_        | j                  j                  d      }g }i }|dk(  rd}t%        | j                  j'                               D ]x  }|j)                  d      s| j                  j                  t+        |            dk(  rd||<   d}|j-                  || j                  j                  t+        |            d       z |dk(  r!t/        |      }||dd||d}t1        | d|      S |j                          g }|rE|D ]@  }t2        j
                  j5                  |d         }|j-                  |j6                         B |j8                  j;                  |       |j                          t#        d      S |j-                  |j<                         | j                  j                  d      }i }g }|dk(  rt%        | j                  j'                               D ]v  }|j)                  d      s| j                  j                  t+        |            dk(  rd||<   |j-                  || j                  j                  t+        |            d       x t/        |      }||dd||d}t1        | d|      S t               }||ddd}t1        | d|      S # t        j                  $ r d }Y w xY w# t        j                  t        f$ r d }	Y nw xY w# t        j                  $ r d }Y 3w xY w)NPOST	chat_typeoption_tableoption_columnr   idr@   rF   Welcome MessageFcommitoption_typeCustomr   dynamic_input Field Required!r   namevaluer+   True)errors	chat_formr-   option_flagoption_countoption_listzchat_add.htmlr\   option_valuerA   False)r^   r_   r-   r`   )methodr   rK   r1   r	   r.   DoesNotExistr   
ValueErrorr
   rB   rC   is_validsaverM   rN   r@   r   listkeys
startswithstrappendlenr   r   createrP   optionssetr^   )r5   r^   formrL   option_table_idoption_column_idredirect_datarN   related_chat_idr@   rM   r6   rU   dynamic_field_list
error_dictflagira   r8   option_id_listjoptions                         r9   chat_addr   6   s=   F~~%LL$$[1	!,,**>:"<<++O<((4	!K[J..226F2GaeM ",,**>4@ $(0044_4M P_y((//?/CIIKdh	!K[J..226F2GaeM
 ))L ML==?99E9*D ,D!.D ,D)DM ",,**=9K!#Jh&gll//12A||O4"<<++CF3r9,=JqM#$D*11!W\\EUEUVYZ[V\E]2^_ 3 19#&'9#:L(!%#+#)$0#5G "'?GDDIIKN!+A/77>>AgJ>WF"))&))4 , LL^,IIK K(( MM$++&!,,**=9KJ!#h&gll//12A||O4"<<++CF3r9,=JqM*11!W\\EUEUVYZ[V\E]2^_	 3
 12L %!'%+1G '?G<<z 	G '?G44{ && 	! M	!  **J7 $#$ && 	! M	!s6   $P.  Q
 -$Q, .QQ
Q)(Q),RRc                 :   | j                   j                  d      }|st        dg dd      S t        j                  j                  |      j                  dd      }t        j                  j                  |	      }d}|rd
}t        t        |      |dd      S )Ntable_idMissing table_iderrorcolumnsFsafe	table__idrP   column_nametable_name__idTr   redirect_flag	r0   r1   r   r	   r.   rB   valuesr   rk   r5   r   r   	map_tabler   s        r9   load_column_listr      s    {{z*H &8RHuUU  ''(';BB4WG!!((((CIM DMMRY^__rI   c                    | j                   j                  d      }| j                   j                  dd       }|st        ddd      S t        j                  j                  |      j                         }|st        ddd	      S |j                  d
k(  r"t        j                  j                         D cg c]:  }|j                  r,|j                  j                  |j                  j                  f< }}g }|j                  j                         D ]  }|rJ|j                  t        j                  |      k(  r(|j                  |j                  |j                  d       |j                  |j                  f|vsj|j                  |j                  |j                  d        t        dd
|dd      S |j                  dk(  rt        ddd      S t        dt!        |j"                        d      S c c}w )Nrow_id	option_idSuccessNone)r   typerQ   ErrorzChat not found!r   messagerV   option_namerd   )r   r   rr   Fr   Table)r0   r1   r   r   r.   rB   rC   rU   allrelated_option_idrP   rd   rr   uuidUUIDro   rn   rM   )r5   r   r   r6   r|   related_option_idsoptions_to_renderr~   s           r9   related_option_hider      s   [[__X&FT2Iy&ABB##F#399;Dw;LMNN 8#'//335N5 ^_9:9L9L  !2255q7J7J7W7WX5 	 N
 !!#A44499Y//%,,()annMO ann%-??!(($%DD!..IK $ y(O`ahmnn			W	$y'BCCy#d>O>O:PQRR1Ns   6?G6c                    | j                   j                  d      }| j                   j                  d      }| j                   j                  d      }|dk(  rF|dk(  r@t        j                  j	                  |      j                         }|j                  dk(  r|j                  }nd}	 g }	 t        j                         D ]  }|j                  j                         D ]  }|j                         d	k(  s|j                  j                  j                  j                  d
      d   |k(  sM|j!                  |j                  j                  j#                         j                  d
      d            |rt%        dt'        |      id      S t%        dg id      S |dk(  r	 t        j*                  d      j                         }	g }
d}|	D ]G  }|
j!                  t-        |j                  j                        j                  d
      d          |dz    I |
rt%        dt'        |
      id      S t%        dg id      S y # t(        $ r t%        dg id      cY S w xY w# t(        $ r t%        dg id      cY S w xY w)NchoicerL   r@   YesRelatedrQ   r   default
ForeignKey_r   tablesFr   Noproducts)r0   r1   r   r.   rB   rC   rU   rM   r   
get_models_meta
get_fieldsget_internal_typerelated_modeldb_tablesplitro   lowerr   rk   StopIterationget_app_configrn   )r5   r   rL   r@   r,   table
table_listmodelwy
app_modelstable_list_productscounts               r9   r   r     sM   [[__X&F,I;;??>2L9	1%%,,\,BHHJ	  G+**EE
	<*++002B++-=++11::@@EaHEQ&--ekk.B.B.H.H.J.P.PQT.UVW.XY 3 + #XtJ/?$@).0 0 $XrN?? 
4	<,,Z8CCEJ"$E##**,,-33C8;=	 $ ##Xt4G/H$I).0 0 $XrN?? 
  	<2U;;	<"  	<2U;;	<s?   .AI 65I ,A"I I $BI 1I III:9I:c           	      0   g }t        t        |      }| j                  j                         }|j                  |d<   t
        j                  j                  |j                  |j                        }t        t
        j                  j                  |j                  |j                        j                  dd            }| j                  dk(  r4t        ||      }| j                  j                  dd       }| j                  j                  d	d       }	| j                  j                  d
d       }
| j                  j                  dd       }| j                  j                  dd       }| j                  j                  dd       }|r.t        j                  j                  |      j                         nd }|	r.t         j                  j                  |	      j                         nd }|
r.t"        j                  j                  |
      j                         nd }|dk(  rd }d }d }|j%                         r|j'                  d      }||_        ||_	        ||_        ||_        | j                  j                  d      }g }i }g }|dk(  rd}t        | j                  j-                               D ]  }|j/                  d      s|j1                  d      d   }t3        |      dkD  r|j5                  |       | j                  j                  t7        |            dk(  rd||<   d}|j5                  || j                  j                  t7        |            d        |dk(  rt3        |      }i d|d|d|dd d!|d"t         j                  j9                         d#|j                  r|j                  j:                  ndd$|j(                  r|j(                  j<                  ndd%|j                  r|j                  j:                  ndd&|j                  r*t"        j                  j                  |j                  '      ng d(|j>                  r|j>                  ndd)|d*d+d,|d-|d.|}tA        | d/|      S |j'                          g }tC        |jD                  j9                         D cg c]  }t7        |j:                         c}      }tC        |      }t        ||z
        }|D ][  }tF        j                  j                  |      }|jD                  jI                  |j                                |jK                          ] |r|D ]  } | d0   j1                  d      d   }!t3        |!      dk  rdtF        j                  jM                  | d1   2      }"|j5                  |"j:                         |jD                  jO                  |"j:                         tF        j                  j                  |!      }#| d1   |#_(        |#j'                           |j'                          t+        d3      S | j                  j                  d      }g }i }|dk(  rt        | j                  j-                               D ]v  }|j/                  d      s| j                  j                  t7        |            dk(  rd||<   |j5                  || j                  j                  t7        |            d       x t3        |      }i d|d|d|dd d!|d"t         j                  j9                         d#|j                  r|j                  j:                  ndd$|j(                  r|j(                  j<                  ndd%|j                  r|j                  j:                  ndd&|j                  r*t"        j                  j                  |j                  '      ng d(|j>                  r|j>                  ndd)|d*d+d,|d-|d.|}nt        |      }|j>                  }i }g }|dk(  rSt        |jD                  j9                               D ]-  }|j5                  d|j:                   |jP                  d       / t3        |      }i d|d|d|dd d!|d"t         j                  j9                         d#|j                  r|j                  j:                  ndd$|j(                  r|j(                  j<                  ndd%|j                  r|j                  j:                  ndd&|j                  r*t"        j                  j                  |j                  '      ng d(|j>                  r|j>                  ndd)|d*d+d,|d-|d.|}tA        | d/|      S c c}w )4NrQ   rL   )r   columnrd   T)flatrK   instancerM   rN   r@   r   r   rO   rR   FrS   rU   rV   r   rW   dynamic_input_r      rX   rY   rZ   r^   rt   rr   r-   r+   r,   r   ru   rx   rv   option_column_listr   option_type_valueexisting_optionsr`   r]   ra   rb   rF   zchat_edit.htmlr[   r\   rc   rA   ))r   r   rK   copyrL   r   r.   rB   rM   rN   rk   values_listrf   r   r1   rC   r
   r	   ri   rj   r@   r   rl   rm   r   rp   ro   rn   r   rP   rF   rU   r   rs   rr   r   removerE   rq   addrd   )$r5   rF   r^   r,   	post_datarr   r   rt   rL   ru   rv   rx   r   rw   r@   rM   rN   r6   rU   ry   rz   existing_list_postr{   r|   rP   ra   r8   r}   existing_option_listdynamic_field_setfields_to_removedatar~   id_r   related_datas$                                       r9   	chat_editr   G  s	   F!)W=I!!#I&00Ikoo$$9+A+A)JaJa$bGY%;%;ID[D[\hhiwnr 	i 	tu ~~ 	I6LL$$[$7	!,,**>4@"<<++OTB!,,**>4@LL$$%8$?	((T: Udy((///HNNPimO^y((//?/CIIKdhRb
**115E1FLLNhl ))L ML==?99E9*D ,D!.D ,D)DM ",,**=9K!#J!#h&gll//12A||O4WW%56q9r719.55b9"<<++CF3r9,=JqM#$D*11!W\\EUEUVYZ[V\E]2^_ 3 19#&'9#:L * "7 &x	
 $Y !)"3"3"7"7"9 *	H^H^9+A+A+D+Ddf *YMcMc9+A+A+I+Iik +)JaJaI,C,C,F,Fgi -=F=S=S /9.@.@.G.G"+"8"8 /H /:Y[ ,iF[F[Y-B-Bac +,< &v '  &'9!" "7#G& "'+;WEE		!# (+@P@P@R+S@R1SY@R+S'T$$'(:$;!#'(<?P(P#Q 
 *A-55<<<BDLL''

5KKM * &/ioo.>?Bs8A:%7%?%?%F%FTUV]T^%F%_F*11&))< LL,,VYY7+=+E+E+I+Is+I+SL89'
L5(--/ 0 IIKK((!,,**=9K!#Jh&gll//12A||O4"<<++CF3r9,=JqM*11!W\\EUEUVYZ[V\E]2^_	 3
 12L* 7 x	
 Y )++//1 "	@V@V9#9#9#<#<\^ "YE[E[9#9#9#A#Aac #)BYBYI$;$;$>$>_a %1:1G1G '1&8&8&?&?,, '@ '.MO $i>S>SY%:%:Y[ #$4 v   1!" 7#G&  +++
(")++//12"))^ADD63JUVUcUc*de 3-.
j
D
 w
 8	

 
 i''++-
 I<R<Ry5588XZ
 AWAWy55==]_
 i>U>U	 7 7 : :[]
 !]f]s]s*"4"4";";)BXBX";"Yy{
  ):O:O!6!6UW
  0
 6
 L
 -
  w!
& '+W55w ,Ts   3fc                 :   | j                   j                  d      }|st        dg dd      S t        j                  j                  |      j                  dd      }t        j                  j                  |	      }d}|rd
}t        t        |      |dd      S )z3 Load columns dynamically based on selected table. r   r   r   Fr   r   rP   r   r   Tr   r   r   s        r9   r   r     s     {{z*H &8RHuUU  ''(';BB4WG!!(((AIMDM=QX]^^rI   c                    t         j                  j                  |      j                         }d}|r|j                  }d}|r|j
                  }d}|r|j
                  }t         j                  j                         }t         j                  j                         D cg c];  }|j                  s|j                  j                  |j                  j                  f= }}g }	g }
g }|D ]  }|j                  dk(  r|	j                  |j
                         |j                  dk(  r|j                  |j
                         |j                  dk(  r|	j                  |j
                         |j                  s|j                  j                  dk(  r&|
j                  |j                  j
                         |j                  j                  dk(  s|
j                  |j                  j
                          t        t        |	      t        |
      z
        }g }t         j                  j                  d      }|D ]^  }d}|j                  j                         D ]  }|j                  |j                  f|vsd}! |sD|j                  |j
                         ` t        t        |      t        |      z
        }||z   }|j                  |       g }|rt!        j"                  |      g}t        t        |      t        |      z
        }t        t         j                  j                  |	      j%                  d
d            }t'        dt        |      id      S c c}w ) Fetch Related Chat List rQ   Nr   rV   rR   )rU   TF)chat_id__inrF   	chat_namer,   r   )r   r.   rB   rC   r@   rF   r   r   rP   rd   rU   ro   rL   rk   rs   rr   r   r   r   r   )r5   rF   r6   r@   chat_id_addremove_chat_idrelated_options_without_customr|   r   related_field_ids	field_idscustom_field_idsidstable_field_idsfields_to_remove_customr:   r{   r~   custom_fieldsfieldsr   
field_listchat_list_results                          r9   related_chat_listr     s    $$w$7==?DL((K"** N &/%6%6%:%:%<" _h^o^o^s^s^u  N^uYZyz  zM  zM1..1113F3F3S3ST^u  N I .??g%$$S[[1??h&##CKK0==--$$S[[1++w6  !1!1!9!9:!!++/@@  !1!1!9!9: .( 301C	NBCO !!!((X(>IAann%-?? ! #**1995  -.5L1MMNM_,F
MM+F))G$'c&kCK/0J I--44:4NUUV_almn d+;&<=EJJI Ns   M/.Mc                 x    t        j                         D ]#  }|j                  j                         | k(  s!|c S  y N)r   r   __name__
capitalize)
model_namer   s     r9   get_model_by_namer     s2    "NN&&(J6L # rI   rK   c                    ddl m} 	 | j                  j                  r9t        j
                  j                  | j                        j                         }nI| j                  j                  d      }t        j
                  j                  |      j                         }d}|r|j                  r|j                  }d}| j                  j                  dd       }| j                  j                  d	d       }| j                  j                  d
d       }| j                  j                  dd       }	t               }
| j                  j                  dd      |
_        |dk(  r|t        j
                  j                  d      j                         }|r.t        d|j                  |j                   |j"                  d      S t        dddt$        j&                        S |st        dddt$        j(                        S t        j
                  j                  |      }t        j
                  j                  |      j                         }|st+        ddd      S |	dk(  r|j                  |      }|j                         }|r|j,                  }	nt+        ddd      S g }|D ]B  }|j.                  dk(  r;t        d|j                  |j.                  |j                   |j"                  d      c S |	d k(  r|j0                  r|j2                  nd }|j4                  r|j6                  nd }d!}|j8                  d"k(  r8t:        j
                  j                  |#      j                         j<                  }d }d }|j,                  d k(  r|j0                  r|j2                  nd }g }d}d }	 t>        j
                  j                  |$      j                         }t>        j
                  j                  |$      j                         }|stA        d%| d&      |jB                  }d }|r|jB                  }d!jE                  d' |jG                  d(      D              }d }|r'd!jE                  d) |jG                  d*      D              }tH        j
                  j                  |$      j                         }|stA        d+| d&      |jJ                  } |jL                  }!tO        |      }"|"stA        d,| d-      |"jP                  jR                  D #cg c]  }#|#jT                   }$}#dd.l+m,}% |"jP                  j[                         D #cg c]&  }#t]        |#|%      r|#j^                  s|#jT                  ( }&}#| |$vs|!|$vrtA        d/|  d0|! d1| d2      d!}'|r|"jP                  j[                         D ]g  }(|(ja                         d3k(  s|(jb                  jP                  jd                  jG                  d(      d4   |jg                         k(  s[|(jT                  }' n 	 |dk(  rd5|&v r_ |"j
                  j                  d@i |'|i})|)j                  g6      })ti        |)jk                  |!|             }|
jm                  ||       }nti         |"j
                  j                  d@i |'|ijk                  |!|             }|
jm                  ||       }nd7|$v r^ |"j
                  j                  d@i |'|i})|)j                  d8      })ti        |)jk                  |!|             }|
jm                  ||       }nIti         |"j
                  j                  d@i |'|ijk                  |!|             }|
jm                  ||       }n|dk(  rd5|&v rK|"j
                  j                  g6      })ti        |)jk                  |!|             }|
jm                  ||       }nti        |"j
                  jk                  |!|             }|
jm                  ||       }nd7|$v rJ|"j
                  j                  d8      })ti        |)jk                  |!|             }|
jm                  ||       }n7ti        |"j
                  jk                  |!|             }|
jm                  ||       }|rd||j                  |j                   |j.                  |j"                  |j,                  |jp                  r|jp                  j                  nd |D +cg c]&  }+|+j                  !      |+j                   d9      d:( c}+|j8                  d"k(  rdnd|j8                  d"k(  r|nd d;},nd|j                  |j                   |j.                  |j"                  |j,                  |jp                  r|jp                  j                  nd |D +cg c]&  }+|+j                  !      |+j                   d9      d:( c}+|j8                  d"k(  rdnd|j8                  r|nd d<
},|js                  |,       	 |
ju                  |      c S |	dk(  sy	 ti        |jv                  jy                               }-|-D .cg c]  }.|.jz                  |.j|                  d: }/}.|
jm                  |/|       }/|js                  d|j                  |j                   |j.                  |j,                  |j"                  |jp                  r|jp                  j                  nd |/d>       E 	 |
ju                  |      S c c}#w c c}#w #  g }Y xY w# t@        $ r}*d}to        |*      }Y d }*~*d }*~*ww xY wc c}+w c c}+w # t@        $ r}}*t+        dto        |*      |j                  |j                   |j.                  |j,                  |j"                  |jp                  r|jp                  j                  nd d=      cY d }*~*c S d }*~*ww xY wc c}.w # t@        $ r}}*t+        dto        |*      |j                  |j                   |j.                  |j,                  |j"                  |jp                  r|jp                  j                  nd d=      cY d }*~*c S d }*~*ww xY w#  t+        dd?d      cY S xY w)ANr   r   )useranonymous_id)r   zLong DistanceShopr   rx   rd   rU   	page_size   welcomerR   )rL   T)r   rF   r   r   FzNo Welcome Message found)r   r   r   z)Missing 'related_chat_id' in request bodyr?   rQ   zChat not found! rV   )r   zInvalid related chat id!zEnd Message)r   rF   rL   r   r   r   rX   r   r   rO   zTable with UUID z
 not foundc              3   <   K   | ]  }|j                           y wr   r   .0words     r9   	<genexpr>z#chatbot_data_api.<locals>.<genexpr>  s     *_I^4??+<I^   r   c              3   <   K   | ]  }|j                           y wr   r   r   s     r9   r   z#chatbot_data_api.<locals>.<genexpr>  s     4oSm4T__5FSmr  -zColumn with UUID zModel 'z' not found in  app.)ManyToManyFieldzColumn 'z' or 'z' does not exist in model ''r   r   
sales_unit)sales_unit__inlong_distance_availability)r  zField Not Found)rP   r\   )r   r   rF   r   rL   r   rU   r@   rr   r   redirect_name)
r   rF   r   rL   r   rU   r@   rr   r   r	  )r   r   rF   r   rL   rU   r   r@   )r   rF   r   rL   rU   r   r@   rr   zpage not found )?django.appsr   r   is_authenticatedr&   r.   rB   rC   r   r1   shopr   r   r   r   rF   r   r   r   HTTP_404_NOT_FOUNDHTTP_400_BAD_REQUESTr   rU   rL   rM   ru   rN   rv   r   r   map_namer
   	Exception
table_namejoinr   r	   r   	column_idr   r   r   r[   django.db.modelsr  r   
isinstanceauto_createdr   r   r   r   rk   r   paginate_querysetrn   r@   ro   get_paginated_responserr   r   rP   rd   )0r5   r   user_locationr   
order_typeshop_id	data_typerx   filter_option_valuerU   r7   welcome_messagerG   current_chatqueryset_dataserialized_datar6   
table_uuidcolumn_uuidr	  prev_table_uuidprev_column_uuidoptions_datafailure_flagfailure_reason	table_objprev_table_objr  prev_table_namemodel_class_nameprev_model_class_name
column_objr   r  table_modelfieldmodel_fieldsr  
m2m_fieldsforeign_columnr   field_filtereitemdata_to_appendrr   r|   rb   s0                                                   r9   chatbot_data_apir9    s    "||$$$,,333FLLN ||''7$,,33% 4 

%' 	 !J++$$

   .Ill&&'8$?O!,,**>4@,,""=$7K$&I!,,**;:I I#++22=N2OUUW".66!0!:!:.66	  &@A&JcJc
 	

 &QR..
 	
   ''_'EH$$++o+FLLNLu8JKLLh??7J?KNN$M#//u7QRSSO>>]*"#||!%!%#||  '!151B1B--J373E3E$//4K
 M}}% ) 1 1 8 8* 8 U [ [ ] f f"O# ''72BNB[B[,">">aeL L!N[( &--44
4CIIK	!*!2!2!9!9!9!O!U!U!W #&6zl*$MNN '11
"&!&4&?&?O $&77*_IYIYZ]I^*_#_ (,%"-/WW4oSbShShilSm4o-o) (//66+6FLLN
!#&7}J$OPP(44&00	 00@A"#g.>-??S$TUU 9D8I8I8P8PQ8Pu

8PQ = "-!2!2!=!=!?!?!%9%BTBT JJ!?   l2i|6S#h{m6)Lghxgyyz${|| "$ ))//::<//1\A!//55>>DDSI ! #&5&;&;&= > 24 % =*%/+z9/I{/B/B/I/I/r^]pLq/r/;/B/BU\T]/B/^/3L4G4G	S^4_/`/8/J/J<Y`/a/34NK4G4G4N4N4wR`buQv4w4~4~  @I  KV  5W  0X/8/J/J<Y`/a  <|K/I{/B/B/I/I/r^]pLq/r/;/B/B^b/B/c/3L4G4G	S^4_/`/8/J/J<Y`/a/34NK4G4G4N4N4wR`buQv4w4~4~  @I  KV  5W  0X/8/J/J<Y`/a "V+':5*5*=*=*D*DW^V_*D*`L+/0C0CI{0[+\L+4+F+F|U\+]L ,00C0C0J0J9Va0b+cL+4+F+F|U\+]L7<G+6+>+>+E+Eae+E+fL+/0C0CIDO1Q ,RL+4+F+F|U\+]L+/ + 3 3 : :9[ Q,SL+4+F+F|U\+]LB #+#||!%!%#||#'#3#3AEARARD$5$5$=$=X\ , . , txtxx	':TXXk[lEm n , .(,(>E7;}}7MmSW"$ ##||!%!%#||#'#3#3AEARARD$5$5$=$=X\ , . , txtxx	':TXXk[lEm n , .(,(>E6:mm]"" "">3 77HH  H$ 0 0 23PWXPW1qttq~~ GPWX'99+wO&&"&#'<<%)^^%)^^'+'7'7#'<<EIEVEV(9(9(A(A\`#.
y tJ//@@]  R
j*')d  (#!$Q( .  .  #"'!$Q#'<<%)^^%)^^'+'7'7#'<<EIEVEV(9(9(A(A\`
& 
 
( Y  #"'!$Q#'<<%)^^%)^^'+'7'7#'<<EIEVEV(9(9(A(A\`
& 
 
&Ju7GHIIs   %E&lk8$l+k=-AlAllEl3Dl(+l0+l5?l:'o o!Bo'q 8
ll	l	l-l((l-:	o A0n;3o ;o o	qA0q	q	qq#c                 J   t         j                  j                  |      }t         j                  j                         D cg c];  }|j                  s|j                  j
                  |j                  j                  f= }}|j                  }g }|j                         D ]m  }|j                  j
                  |j                  j                  f|vs2|j                  |j                  j
                  |j                  j                  d       o t        d|id      S c c}w )r   rQ   r   rr   Fr   )
r   r.   rB   r   r   rP   rd   rr   ro   r   )r5   rF   r,   r|   r   rr   r   s          r9   related_option_listr;    s    !!(((9I^g^o^o^s^s^u  N^uYZyz  zM  zM1..1113F3F3S3ST^u  NG[[]!!1#6#6#C#C
DL^
^$$A4G4G4J4J[\[n[n[{[{%|}  $56UCC Ns   D .D c                     | j                   j                  d      }t        j                  j	                  |      j                         }|rt        ddi      S t        ddi      S )Nr   )related_option_id__idr   relatedznot related)r0   r1   r   r.   rB   rC   r   )r5   r   rG   s      r9   check_relatedr?    sY    'I  ''	'KQQSHXy122X}566rI   c                 l   t         j                  j                  d      }t        |d      }| j                  j                  d      }	 |j                  |      }|dd}t        | d|      S # t        t        f$ r |j                  d      }Y 4t        $ r |j                  |j                        }Y Yw xY w)Nr(   
   r*   r   r+   r   r-   zchat_table_list.html)r	   r.   r/   r   r0   r1   r2   r   r3   r   r4   r   r5   r   r7   r*   r8   s        r9   chat_tablesrD    s    ((9F&"%I;;??6"D9##D)  9G'17;; i( '##A& 9##I$7$789r;   c                 R   g }t        t        |      }t        t        |      }| j                  dk(  rt	        | j
                  |      }t        | j
                  |      }|j                         rT|j                         rD|j                         }|j                  d      }||_	        |j                          t        d      S |j                  |j                         |j                  |j                         nt	        |      }t        |      }|||dd	}	t        | d
|	      S )Nr=   r   rK   r   FrS   chat_table_listr+   r^   
table_formcolumn_formr-   zchat_table_edit.html)r   r
   r	   rf   r   rK   r   ri   rj   r   r   ro   r^   r   )
r5   r   r^   r   r   rH  rI  
table_datacolumn_datar8   s
             r9   chat_tables_editrL  -  s    FiH5Ez8<F~~"7<<%@
$W\\fE [%9%9%;#*J%**E*:K)K-.. MM*++,MM+,,-"E2
$v6z+fnoG'17;;rI   c                    g }| j                   dk(  rt        | j                        }t        | j                        }|j	                         rT|j	                         rD|j                         }|j                  d      }||_        |j                          t        d      S |j                  |j                         |j                  |j                         nt               }t               }g }|||dd}t        | d|      S )NrK   FrS   rF  r+   rG  zchat_table_add.html)rf   r   rK   r   ri   rj   r   r   ro   r^   r   )r5   r^   rH  rI  rJ  rK  r8   s          r9   chat_tables_addrN  G  s    F~~"7<<0
$W\\2 [%9%9%;#*J%**E*:K)K-..MM*++,MM+,,-"_
$&  "	G '0'::rI   c                     t         j                  j                  |      }t        j                  j                  |      }|r"|r |j	                          |j	                          t        d      S )Nr=   r   rF  )r
   r.   rB   r	   rE   r   )r5   r   r   r   s       r9   table_chat_deleterP  g  sW    $$$1E&&x&8F%&&rI   c                 >   | j                   dk(  r	 | j                  j                  dd      }d}| j                  j                  rd| j                  j
                   d| j                  j                   d}| j                  j                  r| j                  j                  }nd}d	| d
d| dz   }t        ||t        |gd       t        ddd      S t        ddd      S t        ddd      S # t        $ r"}t        ddt        |      d      cY d }~S d }~ww xY w)NrK   msgrX   zakhilraj3200@gmail.comzUser Query (r  )r   zUser enquiry recieved from z please check: 

r  F)fail_silentlyTzEmail send successfully!r   zuser not authenticatedzmessage send failed!)r   r   r   zPost method required!)rf   r   r1   r   r  emailphone_number
first_namer$   r%   r   r  rn   )r5   rR  admin_user_mail_idsubject	user_namer   r6  s          r9   send_user_queryr[  r  s'   ~~	g,,""5"-C!9||,,(););(<Agll>W>W=XXYZ<<** ' 7 7I &I8CVW\]^a]bbcZddWo8J7K[` $t@Z$[\\#uAY$Z[[ u9PQRR  	g5=S^abc^d eff	gs$   CC1 C1 1	D:DDDc                 l   t         j                  j                  d      }t        |d      }| j                  j                  d      }	 |j                  |      }|dd}t        | d|      S # t        t        f$ r |j                  d      }Y 4t        $ r |j                  |j                        }Y Yw xY w)Nr(   rA  r*   r   r+   rB  zmap_table_list.html)r   r.   r/   r   r0   r1   r2   r   r3   r   r4   r   rC  s        r9   
map_tablesr]    s    ''8F&"%I;;??6"D9##D)  9G'0':: i( '##A& 9##I$7$789r;   c                 @   g }t        t        |      }| j                  dk(  r^t        | j                  |      }|j                         r|j                         }t        d      S |j                  |j                         nt        |      }||dd}t        | d|      S )Nr=   rK   r   chat_table_map_listr+   r^   map_table_formr-   zmap_table_edit.html)r   r   rf   r   rK   ri   rj   r   ro   r^   r   )r5   r   r^   r   ra  map_table_datar8   s          r9   map_table_editrc    s    F!)9I~~ 	B""$+002N122MM.//0 )4>RZ[G'0'::rI   c                    g }| j                   dk(  r\t        | j                        }|j                         r|j	                         }t        d      S |j                  |j                         nt               }g }||dd}t        | d|      S )NrK   r_  r+   r`  zmap_table_add.html)	rf   r   rK   ri   rj   r   ro   r^   r   )r5   r^   ra  rJ  r8   s        r9   map_table_addre    s    F~~ .""$',,.J122MM.//0  (G '/99rI   c                 |    t         j                  j                  |      }|r|j                          t	        d      S )NrO   r_  )r   r.   rB   rE   r   )r5   r   r   s      r9   map_table_deleterg    s6    !!((H(5I)**rI   r   )Jdjango.shortcutsr   r   r   modelsr   r   r	   r
   r   r   django.core.paginatorr   adminportal.viewsr   django.contrib.auth.decoratorsr   r   r   rest_framework.paginationr   formsr   r   r   r   r  r   django.httpr   rest_framework.decoratorsr   rest_framework.responser   rest_frameworkr   serializersr   r   	django.dbr    r!   products.modelsr"   django.contribr#   r   django.core.mailr$   NavyaBackers.settingsr%   accounts.modelsr&   r:   rH   r   r   r   r   r   r   r   r9  r;  r?  rD  rL  rN  rP  r[  r]  rc  re  rg  r
  rI   r9   <module>rz     s8   @ @ \ \ + - ; H H : C C  $ . , ! > $ - $ #  & 1 (
 /=+">?@; A; /=+">?@! A! /=+">?@I5 AI5X /=+">?@` A`R /=+">?@&S A&SR /=+">?@,< A,<^ /=+">?@|6 A|6~ /=+">?@_ A_$ /=+">?@gK AgKT 
6(cJ cJf /=+">?@D AD7 /=+">?@< A<" /=+">?@< A<2 /=+">?@; A;> /=+">?@' A' 
6(S S6 /=+">?@; A;" /=+">?@; A;$ /=+">?@: A:0 /=+">?@+ A+rI   