
    =d                       d dl mZ d dlmZ d dl d dlmZmZm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 d
dlmZ d dlZd
dl d dlmZ d dlmZ d dlmZ d dlmZ d dlZd dlZd dlZd dl Z d dl!m"Z" d dl#m$Z$ d dl% d dl&m&Z& d dl'm(Z( d dl)m*Z* d dl+ d dl,m-Z. d dl/ d dl)m0Z0 d dl)m1Z1 d dl2Z2d dl3m4Z4 d dlm5Z5 d Z6d Z7d Z8d Z9d Z:d  Z;d! Z<d" Z= G d# d$e      Z> G d% d&e      Z? G d' d(e      Z@ G d) d*e      ZA G d+ d,e      ZB G d- d.e      ZC G d/ d0e      ZD G d1 d2e      ZE G d3 d4e      ZF G d5 d6e      ZG G d7 d8e      ZH G d9 d:e      ZI G d; d<e      ZJ G d= d>e      ZK G d? d@e      ZL G dA dBe      ZM G dC dDe      ZN G dE dFe      ZO G dG dHe      ZP G dI dJe      ZQ G dK dLe      ZR G dM dNe      ZS G dO dPe      ZT G dQ dRe      ZU G dS dTe      ZV G dU dVe      ZW G dW dXe      ZX G dY dZe      ZY G d[ d\e      ZZ G d] d^e      Z[ G d_ d`e      Z\ G da dbe      Z] G dc dde      Z^ G de dfe      Z_ G dg dhe      Z` G di dje      Za G dk dle      Zb G dm dne      Zc G do dpe      Zd G dq dre      Ze G ds dte      Zf G du dve      Zg G dw dxe      Zh G dy dze      Zi G d{ d|e      Zj G d} d~e      Zk G d de      Zl G d de      Zm G d de      Zn G d de      Zo G d de      Zp G d de      Zq G d de      Zr G d de      Zs G d de      Zt G d de      Zu G d de      Zv G d de      Zw G d de      Zx G d de      Zy G d de      Zz G d de      Z{ G d de      Z| G d de      Z} G d de      Z~ G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Zy)    )request)View)*)authenticateloginlogout)renderredirect)User)get_user_model)JsonResponse)HttpResponse   )formsN)render_to_string)mail)messages)settings)login_required)method_decorator)datetime)	Paginator)Q)django_pbkdf2_sha256)Sum)Countwraps)HttpResponseForbiddenc                       fd}|S )Nc                 2     t                fd       }|S )Nc                 f    | j                   j                        s
t               S  | g|i |S N)userhas_permr   )r   argskwargsperm	view_funcs      ,/var/www/html/Beni/beni/admin_panel/views.pywrapperz7user_has_permission.<locals>.decorator.<locals>.wrapper$   s3    <<((.,..W6t6v66    r   )r)   r+   r(   s   ` r*   	decoratorz&user_has_permission.<locals>.decorator#   s!    	y		7 
	7 r,    )r(   r-   s   ` r*   user_has_permissionr/   "   s     r,   c                    | j                   j                  dd      }| j                   j                  d      }t        j                  j                  |      }|j	                  |      dk(  rd}t        |d      S t        d      S )	Nemail passwordr1   Fz!Please enter the correct passwordsafetrue)GETgetr   objectscheck_passwordr   r   )r   textr3   r$   messages        r*   checkLoginPasswordr>   .   so    ;;??72&D{{z*H<<##$#/D8$-5G//V$$r,   c                     | j                   j                  d      }t        j                  j	                  |      j                         }|rt        d      S d}t        |d      S )Nr1   r4   r7   z)This email does not exist in our databaseFr5   )r8   r9   r   r:   filterfirstr   r   r   r<   postr=   s       r*   
checkEmailrD   8   sT    ;;??7#D<<T*002DV$$=G//r,   c                     | j                   j                  d      }t        j                  j	                  |d      j                         }|dk7  rt        d      S d}t        |d      S )	Nr1   r   r1   is_superuserr   r7   (This email already exist in our databaseFr5   )r8   r9   r   r:   r@   countr   r   rB   s       r*   checkAddEmailrJ   A   sZ    ;;??7#D<<Tq9??ADqyV$$<G//r,   c                 $   | j                   j                  d      }| j                   j                  d      }t        j                  j	                  |d      j                  |      j                         }|rd}t        |d      S t        d	      S )
Nuser_idr1   r   rF   idrH   Fr5   r7   )	r8   r9   r   r:   r@   excluderA   r   r   )r   rL   r<   rC   r=   s        r*   checkEditEmailrP   J   sv    kkooi(G;;??7#D<<Tq9AAWAMSSUD<G//V$$r,   c                     | j                   j                  d      }t        j                  j                  | j                  j
                        }|j                  |      dk(  rd}t        |d      S t        d      S )Nold_passwordr4   Fz%Does not match with the old password.r5   r7   )	r8   r9   r   r:   r$   r1   r;   r   r   )r   rR   r$   r=   s       r*   adminCheckPasswordrS   U   se    ;;??>2L<<##',,*<*<#=D<(E19G//V$$r,   c                     dd l dd ldj                  fdt        d      D              } | dj                  fdt        d      D              z  } t	        |       } j
                  |       dj                  |      }|S )Nr   r2   c              3   V   K   | ]   } j                   j                         " y wr#   )choiceascii_letters.0xrandomstrings     r*   	<genexpr>z/randomStringFunctionForImage.<locals>.<genexpr>`   s#     JAMFMM&"6"67   &)   c              3   V   K   | ]   } j                   j                         " y wr#   )rV   digitsrX   s     r*   r]   z/randomStringFunctionForImage.<locals>.<genexpr>a   s!     D8a]V]]6==18r^      )r[   r\   joinrangelistshuffle)str1sam_listfinalStringr[   r\   s      @@r*   randomStringFunctionForImagerj   ^   sf    77JqJKDBGGD58DEEDDzHFNN8''(#Kr,   c                  :   dd l } dd l}d}g d}g d}||z   } | j                  |      } | j                  |      }||z   }t        |dz
        D ];  }	| | j                  |      z   }|j                  d|      }
 | j                  |
       = d}
D ]  }	||	z   }	 |S )Nr   B   )
0123456789)abcdefghijkmnopqrstuvwrZ   yzrb   r   r2   )r[   arrayrV   rd   rf   )r[   r   MAX_LENDIGITSLOCASE_CHARACTERSCOMBINED_LIST
rand_digit
rand_lower	temp_passrZ   temp_pass_listtokens               r*   gernateTokenr   h   s    
< P++fmmF#fmm-.*$
!
Q-&--66);;sI..&..   

Q195 r,   c                       e Zd Zd Zd Zy)adminSignInc                     t        |d      S )Nadmin_login.htmlr	   selfr   s     r*   r9   zadminSignIn.get}   s    g011r,   c                    t        j                  |j                        }|j                         r|j                  j                  d      }|j                  j                  d      }t        ||      }|rQt        ||       |j                  j                  dk(  r!t        j                  |d       t        d      S t        d      S t        |d      S t        |d	d
|i      S )Nr1   r3   r1   r3   r   z#You account is temporarily disable./admin-signin/admin-dashboardr   admin_loginform)r   admin_signinPOSTis_validcleaned_datar9   r   r   r$   statusr   errorr
   r	   )r   r   r   r1   r3   r$   s         r*   rC   zadminSignIn.post   s    ))',,7==?((,,W5E((,,Z8H#%(CD'4(||**a/ w0UV'88'(:;; g'9::'=64.AAr,   N__name__
__module____qualname__r9   rC   r.   r,   r*   r   r   |   s    2Br,   r   c                       e Zd Zd Zd Zy)adminForgetPwc                     t        |d      S )Nadmin_forget_pw.htmlr   r   s     r*   r9   zadminForgetPw.get   s    g455r,   c           	      ~   t        j                  |j                        }|j                         rz|j                  j                  d      }t        j                  j                  |      j                         }dj                  t        d      D cg c]6  }t        j                  t        j                  t        j                   z         8 c}      }dt#        |j$                        z   dz   |z   }t#        t&        j(                        |z   }||_        |j-                          d}	t/        dd	|i      }
|
}t1        d
t&        j2                         t&        j2                  }|}t5        j6                  |	|||g|
      }t1        d|       t9        j:                  |d       t=        d      S t?        |dd|i      S c c}w )Nr1   r4   r2      z/forgot-admin//zForgot Passwordzforget_password_email.htmllinkseeeeehtml_messagez+++++++++++++z/A link has been successfully sent to your mail.r   r   r   ) r   adminforgetpasswordr   r   r   r9   r   r:   r@   rA   rc   rd   r[   rV   r\   rW   ra   strr1   r   BASE_URLforgot_password_linksaver   printEMAIL_HOST_USERr   	send_mailr   successr
   r	   )r   r   r   r1   user_objr   ran_numbaselinkcompletelinksubjectr   plain_message
from_emailtohellos                  r*   rC   zadminForgetPw.post   sm   ((6==?&&**73E||**5*9??AHgg\abd\ef\eWXv}}V-A-AFMM-QR\efgG(3x~~+>>DwNHx001H<L,4H)MMO'G+,H6S_J`aL(M(8334!11JBNN7M:tZfgE/%(W&WXO,,'#9FD>JJ! gs   ;F:Nr   r.   r,   r*   r   r      s    6Kr,   r   c                       e Zd Zd Zd Zy)forgetPasswordVerificationc                    t        | j                  j                        }|j                  d      d   }t        j
                  j                  |      j                         }|j                  dk(  rt        |d      S t        j
                  j                  ||      j                         }|rd}nd}t        |d	d
|i      S )Nr   r4   
LinkExpiryzlink_expire.html)r1   r   TFforget_admin.htmlvalid)
r   r   pathsplitr   r:   r@   rA   r   r	   )r   r   r   
user_emaillink_expiryr   r   s          r*   r9   zforgetPasswordVerification.get   s    4<<$$%ZZ_R(
ll))*)=CCE++|;'"455<<&&zRV&W]]_EEg175/BBr,   c                    t        j                  |j                        }|j                         r|j                  j                  d      }|j                  j                  d      }t        | j                  j                        }|j                  d      d   }t        j                  j                  |      j                         }|rI|j                  |       d|_        |j!                          t#        j$                  |d       t'        d      S t#        j(                  |d	       t'        d      S t+        |d
d|i      S )Nnew_passwordconfirm_new_passwordr   r4   r   zPassword changed successfullyr   zSomething went wrongr   r   )r   forgetverificationr   r   r   r9   r   r   r   r   r   r:   r@   rA   set_passwordr   r   r   r   r
   r   r	   )r   r   r   r   r   r   r   r   s           r*   rC   zforgetPasswordVerification.post   s    ''5==?,,00@L#'#4#4#8#89O#P t||(()DC,J||**:*>DDFH%%l30<-  *IJ00w(>?00'#6GGr,   Nr   r.   r,   r*   r   r      s    CHr,   r   c                   <    e Zd Z e ed            d        Zd Zy)adminProfiler   	login_urlc                     t         j                  j                  |j                  j                        j                         }t        |dd|i      S )NrM   admin_profile.htmlr   )r   r:   r@   r$   rN   rA   r	   )r   r   r   s      r*   r9   zadminProfile.get   s?    <<&&',,//&:@@Bg2Jx3HIIr,   c                    t        j                  |j                        }|j                         r|j                  j                  d      }|j                  j                  d      }|j                  j                  d      }|j                  j                  d      }t        j                  j                  |j                  j                        j                  ||||       |j                  j                  d      rt        |j                  j                  d            }t        t        j                         dz   |z   }t        j                  j                  |j                  j"                  d	
      j                  t        |             t%        j&                  |d       t)        d      S t+        |dd|i      S )N	full_nameisd_codephone_numberr1   rM   )r   r   r   r1   avatarr   TrF   r   zProfile Updated successfullyz/admin-profiler   r   )r   profileformr   r   r   r9   r   r:   r@   r$   rN   updateFILESuploadTheImagesr   r   r   r1   r   r   r
   r	   )r   r   r   r   r   r   r1   fileUrls           r*   rC   zadminProfile.post   s`     .==?))--k:I((,,Z8H,,00@L$$((1ELL7<<??3::YX`nz  BG:  H}}  *'(9(9((CDH--.s27:##',,*<*<D#QXX`cdk`lXmW&DE,-- '"6t}EEr,   Nr   r   r   r   r   r9   rC   r.   r,   r*   r   r      s'    n?@J AJFr,   r   c                   6    e Zd Z e ed            d        Zy)adminDashboardr   r   c                    t         j                  j                  ddd      j                         }t        j                  j                  d      j                         }t
        j                  j                  dd      j                         }t        j                  j                  d      }d}|D ]  }|t        |j                        z  } ddlm	} dd l
}	|	j                  j                         j                  }
g d}g }g }g }|D ]  }t         j                  j                  dddd	|
      j                         }|j                  |       t
        j                  j                  dd|
|      j                         }|j                  |       t        j                  j                  d|
|      j                         }|j                  |        t        |d|||||||d      S )Nr   T)is_buyerend_date__isnullis_profile_completedisPaidr   r   r   )
TruncMonth)0102030405060708091011122023)r   r   r   start_date__yearstart_date__month)r   r   r  r	  )r   created_at__yearcreated_at__monthzadmin_dashboard.html)total_customertotal_orderstotal_storetotal_earnings	customersstoresorders)r   r:   r@   rI   	orderPackStoresfloattotalAmountdjango.db.models.functionsr   r   nowyearappendr	   )r   r   r  r  r  r  totalearningr   r   current_year
month_list
user_countstore_count
order_datamnth	all_users	all_store
all_orderss                      r*   r9   zadminDashboard.get   s   ,,aef,gmmo ((//t/<BBDnn++TYZ+[aac"**111>%GU7..//E & 	:((,,.33g


D++Qdew}  RV+  W  ]  ]  _Ii(--t[\nz  OS-  T  Z  Z  \Iy)"**11|os1tzz|Jj)  g4~eq  AL  ^c  pz  DO  Yc  6d  e  	er,   Nr   r   r   r   r   r9   r.   r,   r*   r   r      s!    n?@e Aer,   r   c                   <    e Zd Z e ed            d        Zd Zy)adminResetPasswordr   r   c                     t        |d      S )Nadmin_reset_password.htmlr   r   s     r*   r9   zadminResetPassword.get  s    g9::r,   c                    t        j                  |j                        }|j                         r|j                  j	                  d      }t
        j                  j	                  |j                  j                        }|j                  |       |j                          t        |       t        j                  |d       t        d      S t        |dd|i      S )NconfirmPasswordr4   z)You have successfully reset your passwordr   r*  r   )r   change_password_formr   r   r9   r   r:   r$   r1   r   r   r   r   infor
   r	   )r   r   r   r3   r$   s        r*   rC   zadminResetPassword.post  s    ))',,7==?||''(9:H||''gll.@.@'ADh'IIK7OMM'#NOO,,'#>OOr,   Nr   r.   r,   r*   r(  r(  
  s%    n?@; A;Pr,   r(  c                   6    e Zd Z e ed            d        Zy)logoutAdminr   r   c                 Z    t        |       t        j                  |d       t        d      S )NzLogout Succesfullyr   )r   r   r   r
   r   s     r*   r9   zlogoutAdmin.get  s%    w"67((r,   Nr&  r.   r,   r*   r0  r0    s    n?@) A)r,   r0  c                   <    e Zd Z e ed            d        Zd Zy)privacyPolicyr   r   c                 8   t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]x  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        j                  j                  d      j                         }t        |dd	|i      c S  t        j                  |d
       t        d      S )NrM   r         rb            r_   	   
      roler   rb   Privacy_Policy	page_typeprivacy_policy.htmlprivacy_obj You do not have access for this.r   r   r:   r@   r$   rN   rA   rG   RolesPermissionr?  
permissionContentPagesr	   r   r   r
   )r   r   role_user_idget_permissionr   user_varrD  s          r*   r9   zprivacyPolicy.get%  s    ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}*2299DT9U[[]g&;];<WXX   NN7$FG.//r,   c                    t        j                  |j                        }|j                         rt        j
                  j                  d      j                         }|rt        j
                  j                  |j                        j                  |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      d       t        j                  |d	       t        d      S t        j
                  j                  |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      d       t        j                  |d
       t        d      S t!        |dd|i      S )Nr@  rA  rM   english_page_titleenglish_contentarabic_page_titlearabic_contentrN  rO  rP  rQ  rB  z#Privacy policy updated successfullyz#Privacy policy created successfullyz/privacy-policyrC  r   r   contentpages_formr   r   rI  r:   r@   rA   rN   r   r   r9   r   r   creater
   r	   r   r   r   datas       r*   rC   zprivacyPolicy.post9  s2   &&w||4==?''..9I.JPPRD$$++tww+7>>RVRcRcRgRgh|R}  OS  O`  O`  Od  Od  ev  Ow  JN  J[  J[  J_  J_  `s  Jt  DH  DU  DU  DY  DY  Zj  Dk  vF>  G  )NO -.. $$++t?P?P?T?TUi?j{  |M  |M  |Q  |Q  Rc  |d  w{  wH  wH  wL  wL  M`  wa  qu  qB  qB  qF  qF  GW  qX  cs+  t  )NO-..'"7FFr,   Nr   r.   r,   r*   r3  r3  $  s%    n?@0 A0&Gr,   r3  c                   <    e Zd Z e ed            d        Zd Zy)termsConditionsr   r   c                 8   t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]x  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        j                  j                  d      j                         }t        |dd	|i      c S  t        j                  |d
       t        d      S )NrM   r5  r>  r   rb   Terms_and_conditionsrA  terms_conditions.html	terms_objrE  r   rF  )r   r   rJ  rK  r   rL  r]  s          r*   r9   ztermsConditions.getH  s    ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}(0077BX7Y__a	g&={9>UVV   NN7$FG.//r,   c                    t        j                  |j                        }|j                         rt        j
                  j                  d      j                         }|rt        j
                  j                  |j                        j                  |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      d       t        j                  |d	       t        d      S t        j
                  j                  |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      d       t        j                  |d
       t        d      S t!        |dd|i      S )Nr[  rA  rM   rN  rO  rP  rQ  rR  z)Terms and Conditions updated successfullyz)Terms and Conditions created successfullyz/terms-and-conditionsr\  r   rS  rV  s       r*   rC   ztermsConditions.post[  s2   &&w||4==?''..9O.PVVXD$$++tww+7>>RVRcRcRgRgh|R}  OS  O`  O`  Od  Od  ev  Ow  JN  J[  J[  J_  J_  `s  Jt  DH  DU  DU  DY  DY  Zj  Dk  vL>  M  )TU 344 $$++t?P?P?T?TUi?j{  |M  |M  |Q  |Q  Rc  |d  w{  wH  wH  wL  wL  M`  wa  qu  qB  qB  qF  qF  GW  qX  cy+  z  )TU344'"96$-HHr,   Nr   r.   r,   r*   rY  rY  G  s%    n?@0 A0$Ir,   rY  c                   <    e Zd Z e ed            d        Zd Zy)returnPolicyr   r   c                 8   t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]x  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        j                  j                  d      j                         }t        |dd	|i      c S  t        j                  |d
       t        d      S )NrM   r5  r>  r   rb   Return_PolicyrA  return_policy.html
refund_objrE  r   rF  )r   r   rJ  rK  r   rL  rd  s          r*   r9   zreturnPolicy.getj  s    ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1})1188?8SYY[
g&:L;TUU   NN7$FG.//r,   c                    t        j                  |j                        }|j                         rt        j
                  j                  d      j                         }|rt        j
                  j                  |j                        j                  |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      d       t        j                  |d	       t        d      S t        j
                  j                  |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      d       t        j                  |d
       t        d      S t!        |dd|i      S )Nrb  rA  rM   rN  rO  rP  rQ  rR  z"Return policy updated successfullyz"Return policy created successfullyz/return-policyrc  r   rS  rV  s       r*   rC   zreturnPolicy.post}  s1   &&w||4==?''...IOOQD$$++tww+7>>RVRcRcRgRgh|R}  OS  O`  O`  Od  Od  ev  Ow  JN  J[  J[  J_  J_  `s  Jt  DH  DU  DU  DY  DY  Zj  Dk  vE>  F  )MN
 ,-- $$++t?P?P?T?TUi?j{  |M  |M  |Q  |Q  Rc  |d  w{  wH  wH  wL  wL  M`  wa  qu  qB  qB  qF  qF  GW  qX  cr+  s  )MN,--'"6t}EEr,   Nr   r.   r,   r*   r`  r`  i  s%    n?@0 A0$Fr,   r`  c                   6    e Zd Z e ed            d        Zy)helpSupportListr   r   c           
         t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]+  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s<t        j                  j                         j                         }t        j                  j                  d      j                         }t        j                  j                  d      j                         }t        j                  j                         }	t        |	d	      }
|j                  j                  d
      }|
j!                  |      }t#        |d||||d      c S  t%        j&                  |d       t)        d      S )NrM   r5  r>  r   r;  Tr   Fr_   pagezhelp_support_list.html)help_objr  resolvedpendingrE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  HelpSupportallrI   r   r8   r9   get_pager	   r   r   r
   )r   r   rJ  rK  r   rL  r  rl  rm  rk  	paginatorpage_number	rooms_objs                r*   r9   zhelpSupportList.get  st   ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}#++//1779&..55t5DJJL%--44e4DJJL&..224%h2	%kkoof5%..{;	g&>9]bnv  BI  @J  K  K   NN7$FG.//r,   Nr&  r.   r,   r*   rg  rg        n?@0 A0r,   rg  c                   <    e Zd Z e ed            d        Zd Zy)sendSupportr   r   c                 8   t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]x  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        j                  j                  |      j                         }t        |dd|i      c S  t        j                  |d       t        d	      S )
NrM   r5  r>  r   r;  send_support.htmlhelprE  r   r   r:   r@   r$   rN   rA   rG   rG  r?  rH  rn  r	   r   r   r
   )r   r   rN   rJ  rK  r   rL  ry  s           r*   r9   zsendSupport.get  s    ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}#++22b29??Ag&96$-HH   NN7$FG.//r,   c                 h   t        j                  |j                        }|j                         r|j                  j                  d      }|j                  j                  d      }|j                  j                  d      }t        d|||d      }|}t        j                  }	|}
t        j                  |||	|
g|       t        j                  j                  |      j                  |t        j                          d	       t#        j$                  |d
       t'        d      S t)        |dd|i      S )Nr1   r   replyzsupport_email.html)
reply_textr1   r   r   rM   T)r|  
reply_dater   zsend successfullyz/help-support-listrx  r   )r   sendsupportformr   r   r   r9   r   r   r   r   r   rn  r:   r@   r   r   r  r   r   r
   r	   )r   r   rN   r   r1   r   r|  r   r   r   r   s              r*   rC   zsendSupport.post  s   $$W\\2==?&&**73E''++I6G%%))'2E+,@QV_dovBwxL(M!11JBNN7M:tR^_&&"&-445hllndh4iW&9:011'"5vdmDDr,   Nr   r.   r,   r*   rv  rv    s%    n?@0 A0$Er,   rv  c                   6    e Zd Z e ed            d        Zy)viewSupportr   r   c                 8   t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]x  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        j                  j                  |      j                         }t        |dd|i      c S  t        j                  |d       t        d	      S )
NrM   r5  r>  r   r;  zview_support.htmlsup_objrE  r   rz  )r   r   rN   rJ  rK  r   rL  r  s           r*   r9   zviewSupport.get  s    ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}%--444;AACg&99W:MNN   NN7$FG.//r,   Nr&  r.   r,   r*   r  r        n?@0 A0r,   r  c                   6    e Zd Z e ed            d        Zy)userListingr   r   c           
         t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s<t        j                  j                  d      j                  d      }|j                  j                  d	      }|j                  j                  d
      }t        j                         j!                  d      }	|r9t        j                  j                  ||dz   |	z   gdd      j                  d      }|j                  j                  d      }
|
rTt        j                  j                  t#        |
      t#        |
      z  t#        |
      z  d      j                  d      }t%        |d      }|j                  j                  d      }|j'                  |      }t)        |d||||
d      c S  t+        j,                  |d       t/        d      S )NrM   r5  r>  r   r8  T)user__end_date__isnull-id
start_dateend_date%H:%M:%S r   )user__start_date__rangeuser__is_superuserr  search)first_name__icontains)last_name__icontains)user__phone_number__icontainsr_   rj  zuser_lisiting.html)	buyer_objsearch_start
search_endsearch_postrE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  Buyerorder_byr8   r9   r   r  strftimer   r   rp  r	   r   r   r
   )r   r   rJ  rK  r   rL  page_objr  r  timer  rq  rr  r  s                 r*   r9   zuserListing.get  s,   ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1} ==//t/LUUV[\&{{|<$[[__Z8
||~..z:$}}33\[ehk[kmq[qLr  IJ  dh3   i   r   r  sx   yH%kkooh7$}}33AK4XYZp{Y|4|}~  ^i  ~j  5j  BF3   G   P   P  QV   WH%h2	%kkoof5%..{;	g&:	am  |F  U`  <a  b  b%  ( NN7$FG.//r,   Nr&  r.   r,   r*   r  r        n?@0 A0r,   r  c                   6    e Zd Z e ed            d        Zy)
userStatusr   r   c                    t         j                  j                  |j                  d         }|j                  d   |_        |j                          |j                  dk(  r:t        j                  |d       t        |j                  j                  d            S t        j                  |d       t        |j                  j                  d            S Nmain_idrM   r   rn   zUser is activatedHTTP_REFERERzUser is deactivatedr   r:   r9   r   r   r   r   r   r   METAr   r   r   pubs      r*   rC   zuserStatus.post      \\%%7<<	+B%C\\(+

::W&9: 0 0 @AANN7$9: 0 0 @AAr,   Nr   r   r   r   r   rC   r.   r,   r*   r  r    !    n?@	B A	Br,   r  c                   6    e Zd Z e ed            d        Zy)
deleteUserr   r   c                    t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t         j                  j                  |      j                  t        j                                t        j                  |d       t        d      c S  t        j                   |d	       t        d
      S )NrM   r5  r>  r   r8  r  Deleted successfully/user-lisitingrE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  r   r   r  r   r   r
   r   r   r   rN   rJ  rK  r   rL  s          r*   r9   zdeleteUser.get  s    ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}##r#*118<<>1J  *@A 011   NN7$FG.//r,   Nr&  r.   r,   r*   r  r        n?@0 A0r,   r  c                   <    e Zd Z e ed            d        Zd Zy)addUserr   r   c                    t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]G  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        |d      c S  t        j                  |d       t        d      S )	NrM   r5  r>  r   r8  add_user.htmlrE  r   r   r:   r@   r$   rN   rA   rG   rG  r?  rH  r	   r   r   r
   r   r   rJ  rK  r   rL  s         r*   r9   zaddUser.get%  s    ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}go66   NN7$FG.//r,   c                    t        j                  |j                        }|j                         rt        j
                  j                  |j                  j                  d      |j                  j                  d      dd      }|r!t        j                  |d       t        d      S t        j
                  j                  |j                  j                  d      |j                  j                  d      |j                  j                  d      dd      }t               }|j                  |       t        t!                     }||_        |j%                          t&        j
                  j                  |j(                  |j                  j                  d	      |j                  j                  d
      |j                  j                  d             |j*                  j                  d      rSt-        |j*                  j                  d            }t        t.        j0                        dz   |z   }t        |      |_        |j%                          t5        d|j6                  dz   |j8                  z   |d      }|}	t.        j:                  }
|j                  j                  d      }d}t=        j>                  ||	|
|g|       t        j@                  |d       t        d      S tC        |dd|i      S )Nr   r   T)r   r   r   r   z/This phone number is alreay registered with us.z	/add-userr1   r   r   r1   r   r   
first_name	last_namedobrL   r  r  r  r   r   znew_user.html-)r   r3   zRegistered Successfullyr   zUser created successfullyr  r  r   )"r   adduserformr   r   r   r:   r@   r   r9   r   warningr
   rU  rj   r   r   r   r   r   r  rN   r   uploadTheProfiler   r   r   r   r   r   r   r   r   r   r	   )r   r   r   check_numberr   r3   theTokenr   r   r   r   r   r   s                r*   rC   zaddUser.post7  s}     .==?<<..9J9J9N9Nz9Zimizizi~i~  @N  jO  [_  w{.  |L  *[\,,++,,00<!..22>B((,,W5'+ , -H 45H!!(+(H#HNMMOMM  ((,,\:))--k:##''. ! 0 }}  *():):8)DEH--.s27: #GMMO+OHL]L]^aLabjbwbwLw  DL  =M  NL(M!11J""&&w/B/GNN7M:tR^_W%@A,--'/6$-@@r,   Nr   r.   r,   r*   r  r  $  s%    n?@0 A0"&Ar,   r  c                   <    e Zd Z e ed            d        Zd Zy)editUserr   r   c                    t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t         j                  j                  |      j                         }t        j                  j                  |j                        j                         }t        |d||d      c S  t        j                  |d	       t        d
      S )NrM   r5  r>  r   r8  rL   edit_user.html)r   r  rE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  r  r	   r   r   r
   )	r   r   rN   rJ  rK  r   rL  r   r  s	            r*   r9   zeditUser.getb  s   ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}<<..".5;;=!MM000EKKM	g&68Xa7bcc   NN7$FG.//r,   c                    t        j                  |j                        }|j                         rt        j
                  j                  |      j                  |j                  j                  d      |j                  j                  d      |j                  j                  d      dd      }t        j
                  j                  |      j                  ||j                  j                  d      |j                  j                  d	      |j                  j                  d
             |j                  j                  d      r|t        |j                  j                  d            }t        t        j                        dz   |z   }t        j
                  j                  |      j                  t        |             t!        j"                  |d       t%        d      S t'        |dd|i      S )NrM   r   r   r1   Tr  r  r  r  r  r  r   r   r   zUser updated successfullyr  r  r   )r   r  r   r   r   r:   r@   r   r   r9   r  r   r  r   r   r   r   r   r
   r	   )r   r   rN   r   r   r   s         r*   rC   zeditUser.postv  s     .==?++r+299,,00<!..22>B((,,W5'+ : -H MM  2 .55r((,,\:))--k:##''. 6 0 }}  *():):8)DEH--.s27:##r#*113w<1HW%@A,--'"2F4=AAr,   Nr   r.   r,   r*   r  r  a  s%    n?@0 A0&Br,   r  c                   6    e Zd Z e ed            d        Zy)
faqlistingr   r   c                    t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;|j                  j                  d      }t        j                  j                         j                  d      }t        |d      }|j                  j                  d	      }	|j!                  |	      }
t#        |d
|
|d      c S  t%        j&                  |d       t)        d      S )NrM   r5  r>  r   r<  r  r  r_   rj  zfaq_listing.html)faq_objdata_objrE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  r8   r9   Faqro  r  r   rp  r	   r   r   r
   )r   r   rJ  rK  r   rL  r  r  rq  rr  r  s              r*   r9   zfaqlisting.get  s   ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO2~%kkooh7;;??,55e< &h2	%kkoof5#,,[9g&8GW_9`aa   NN7$FG.//r,   Nr&  r.   r,   r*   r  r    rt  r,   r  c                   <    e Zd Z e ed            d        Zd Zy)addFaqr   r   c                    t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]G  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        |d      c S  t        j                  |d       t        d      S )	NrM   r5  r>  r   r<  add_faq.htmlrE  r   r  r  s         r*   r9   z
addFaq.get  s    ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO2~gn55   NN7$FG.//r,   c                    t        j                  |j                        }|j                         r|j                  j                  d      }|j                  j                  d      }|j                  j                  d      }|j                  j                  d      }t        j                  j                  ||||       t        j                  |d       t        d      S t        |dd	|i      S )
Nenglish_titlerO  arabic_titlerQ  r  rO  r  rQ  zFAQ created successfully/faq-listingr  r   )r   faqformr   r   r   r9   r  r:   rU  r   r   r
   r	   )r   r   r   r  rO  r  rQ  s          r*   rC   zaddFaq.post  s    }}W\\*==?!..22?CM"//334EFO,,00@L!..223CDNKK]?ht  ES  TW%?@N++'.&??r,   Nr   r.   r,   r*   r  r    s%    n?@0 A0 @r,   r  c                   <    e Zd Z e ed            d        Zd Zy)editFaqr   r   c                 8   t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]x  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        j                  j                  |      j                         }t        |dd|i      c S  t        j                  |d       t        d	      S )
NrM   r5  r>  r   r<  edit_faq.htmlr  rE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  r  r	   r   r   r
   )r   r   rN   rJ  rK  r   rL  r  s           r*   r9   zeditFaq.get  s    ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO2~++,,,399;goy6IJJ   NN7$FG.//r,   c                    t        j                  |j                        }|j                         r|j                  j                  d      }|j                  j                  d      }|j                  j                  d      }|j                  j                  d      }t        j                  j                  |      j                  ||||       t        j                  |d       t        d      S t        |d	d
|i      S )Nr  rO  r  rQ  rM   r  zFAQ updated successfullyr  r  r   )r   r  r   r   r   r9   r  r:   r@   r   r   r   r
   r	   )r   r   rN   r   r  rO  r  rQ  s           r*   rC   zeditFaq.post  s    }}W\\*==?!..22?CM"//334EFO,,00@L!..223CDNKK"%,,=Yh  wC  Sa,  bW%?@N++'/6$-@@r,   Nr   r.   r,   r*   r  r    s%    n?@0 A0$Ar,   r  c                   6    e Zd Z e ed            d        Zy)	deleteFaqr   r   c                 \   t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        j                  j                  |      j                          t        j                  |d       t        d      c S  t        j                  |d       t        d	      S )
NrM   r5  r>  r   r<  r  r  rE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  r  deleter   r   r
   r   r  s          r*   r9   zdeleteFaq.get  s    ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO2~""b")002  *@A//   NN7$FG.//r,   Nr&  r.   r,   r*   r  r    r  r,   r  c                   <    e Zd Z e ed            d        Zd Zy)contactManagementr   r   c                 4   t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]v  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        j                  j                         j                         }t        |dd|i      c S  t        j                  |d       t        d	      S )
NrM   r5  r>  r   r7  contact_manage.htmlr   rE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  Contactmanagero  r	   r   r   r
   )r   r   rJ  rK  r   rL  r   s          r*   r9   zcontactManagement.get  s    ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}(00446<<>g&;Z<QRR   NN7$FG.//r,   c                 V   t        j                  |j                        }|j                         rt        j
                  j                         j                         }|r^t        j
                  j                  |j                        j                  |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d	      |j                  j                  d
      |j                  j                  d      
       t        j                  |d       t!        d      S t        j
                  j                  |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d	      |j                  j                  d
      |j                  j                  d             t        j                  |d       t!        d      S t#        |dd|i      S )NrM   r   whatsapp_numberr1   instagram_urltwitter_urlyoutube_urlfacebook_urlcontact_descriptioncontact_description_araddress)
r   r  r1   r  r  r  r  r  r  r  z$Contact details updated successfullyr   )r   r   r  r1   r  r  r  r  r  r  r  z$Contact details created successfullyz/contact-managementr  r   )r   contactformr   r   r  r:   ro  rA   r@   rN   r   r   r9   r   r   rU  r
   r	   rV  s       r*   rC   zcontactManagement.post  s     .==? ((,,.446D%%,,,8??!%!2!2!6!6~!F$($5$5$9$9:K$L++//8"&"3"3"7"7"H $ 1 1 5 5m D $ 1 1 5 5m D!%!2!2!6!6~!F*.*;*;*?*?@U*V-1->->-B-BC[-\"//33I> @    )OP  122 %%,,!..22:>!%!2!2!6!6~!F$($5$5$9$9:K$L++//8"&"3"3"7"7"H $ 1 1 5 5m D $ 1 1 5 5m D!%!2!2!6!6~!F*.*;*;*?*?@U*V-1->->-B-BC[-\"//33I> -    )OP122'"7FFr,   Nr   r.   r,   r*   r  r    s%    n?@0 A0"#Gr,   r  c                   6    e Zd Z e ed            d        Zy)mainCategoriesListr   r   c                 4   t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        j                  j                  d      }|j                  j                  d      }|r6t        j                  j                  t        |      t        |	      z        }t        |d
      }|j                  j                  d      }	|j                  |	      }
t!        |d|
|d      c S  t#        j$                  |d       t'        d      S )NrM   r5  r>  r   Tr   r   category_name_english__icontainscategory_name_arabic__icontainsr_   rj  zmain_categories_list.htmlmain_objr  rE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  MainCategoriesr8   r9   r   r   rp  r	   r   r   r
   r   r   rJ  rK  r   rL  r  r  rq  rr  r  s              r*   r9   zmainCategoriesList.get;  sQ    ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}*2299T9R%kkooh7-55<<Q`k=lmn  P[  n\  >\   ]H%h2	%kkoof5$--k:g&AhepBqrr   NN7$FG.//r,   Nr&  r.   r,   r*   r  r  :      n?@0 A0r,   r  c                   <    e Zd Z e ed            d        Zd Zy)addMainCategoryr   r   c                    t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]G  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        |d      c S  t        j                  |d       t        d      S )NrM   r5  r>  r   add_maincategory.htmlrE  r   r  r  s         r*   r9   zaddMainCategory.getW  s    ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}g&=>>   NN7$FG.//r,   c                    t        j                  |j                        }|j                         r&t        j
                  j                  |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d            }|j                  j                  d      rSt        |j                  j                  d            }t        t        j                        dz   |z   }t        |      |_        |j                          t!        j"                  |d       t%        d	      S t'        |d
d|i      S )Ncategory_name_englishcategory_content_englishcategory_name_arabiccategory_content_arabicr  r  r  r  category_iconr   z!Main category created succesfully/main-categories-listr  r   )r   addmaincategorformr   r   r  r:   rU  r   r9   r   uploadTheCategoryr   r   r   r
  r   r   r   r
   r	   r   r   r   r  r   s        r*   rC   zaddMainCategory.posti  s   ''5==?%--44&*&7&7&;&;<S&T)-):):)>)>?Y)Z'+'8'8'<'<=S'T*.*;*;*?*?@Y*Z	 5 \H
 }}  1)'--*;*;O*LMH--.s27:'*7|&MMOW%HI344'"96$-HHr,   Nr   r.   r,   r*   r  r  V  s%    n?@0 A0"Ir,   r  c                   <    e Zd Z e ed            d        Zd Zy)editMainCategoryr   r   c                 8   t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]x  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        j                  j                  |      j                         }t        |dd|i      c S  t        j                  |d       t        d      S )	NrM   r5  r>  r   edit_maincategory.htmlr  rE  r   r   r:   r@   r$   rN   rA   rG   rG  r?  rH  r  r	   r   r   r
   r   r   rN   rJ  rK  r   rL  r  s           r*   r9   zeditMainCategory.get}  s    ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1})1188B8?EEGg&>
8?TUU   NN7$FG.//r,   c                    t        j                  |j                        }|j                         rOt        j
                  j                  |      j                  |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d             |j                  j                  d      r|t        |j                  j                  d            }t        t        j                        dz   |z   }t        j
                  j                  |      j                  t        |      	       t        j                   |d
       t#        d      S t%        |dd|i      S )NrM   r  r  r  r  r	  r
  r   r
  z"Main category updated successfullyr  r  r   )r   r  r   r   r  r:   r@   r   r   r9   r   r  r   r   r   r   r   r
   r	   r   r   rN   r   r   s        r*   rC   zeditMainCategory.post  s;   ''5==?""))R)077&*&7&7&;&;<S&T)-):):)>)>?Y)Z'+'8'8'<'<=S'T*.*;*;*?*?@Y*Z	 8  }}  1)'--*;*;O*LMH--.s27:&&---4;;#g,;WW%IJ344'":F4=IIr,   Nr   r.   r,   r*   r  r  |  s%    n?@0 A0&Jr,   r  c                   6    e Zd Z e ed            d        Zy)changeMainStatusr   r   c                    t         j                  j                  |j                  d         }|j                  d   |_        |j                          |j                  dk(  r:t        j                  |d       t        |j                  j                  d            S t        j                  |d       t        |j                  j                  d            S )Nr  rM   r   rn   zMain category is activatedr  zMain category is deactivated)r  r:   r9   r   r   r   r   r   r   r  r   r  s      r*   rC   zchangeMainStatus.post  s    #++//W\\)5L/M\\(+

::W&BC 0 0 @AANN7$BC 0 0 @AAr,   Nr  r.   r,   r*   r  r    r  r,   r  c                   6    e Zd Z e ed            d        Zy)deleteMaincategoryr   r   c                    t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        j                  j                  |      j                  t        j                                t        j                  |d       t!        d      c S  t        j"                  |d       t!        d	      S )
NrM   r5  r>  r   r  r  r  rE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  r  r   r   r  r   r   r
   r   r  s          r*   r9   zdeleteMaincategory.get  s    ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}&&---4;;X\\^;T  *@A 788   NN7$FG.//r,   Nr&  r.   r,   r*   r  r    r  r,   r  c                   6    e Zd Z e ed            d        Zy)subCategoriesListr   r   c                 r   t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s<t        j                  j                  d      j                  d      }|j                  j                  d      }|rEt        j                  j                  t        |	      t        |
      z        j                  d      }t        |d      }|j                  j                  d      }	|j!                  |	      }
t#        |d|
|d      c S  t%        j&                  |d       t)        d      S )NrM   r5  r>  r   Tr  r  r  r  r  r_   rj  zsub_categories_list.htmlr  rE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  Subcategoriesr  r8   r9   r   r   rp  r	   r   r   r
   r  s              r*   r9   zsubCategoriesList.get  st   ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1})1188D8QZZ[`a%kkooh7,44;;A_j<klm  OZ  m[  =[   \   e   e  fk   lH%h2	%kkoof5$--k:g&@XdoApqq   NN7$FG.//r,   Nr&  r.   r,   r*   r  r    rt  r,   r  c                   <    e Zd Z e ed            d        Zd Zy)addSubCategoryr   r   c                    t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]j  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        j                  j                  d      }t        |dd|i      c S  t        j                  |d	       t        d
      S )NrM   r5  r>  r   Tr  add_subcategory.htmlmainrE  r   r  )r   r   rJ  rK  r   rL  r&  s          r*   r9   zaddSubCategory.get  s    ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}%--44d4Kg&<fT]KK   NN7$FG.//r,   c           	         t         j                  j                  d      }t        j                  |j
                        }|j                         rnt         j                  j                  |j                  j                  d            j                         }t        j                  j                  ||j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d      	      }|j                  j                  d
      rSt        |j                  j                  d
            }t        t        j                         dz   |z   }t        |      |_        |j%                          t'        j(                  |d       t+        d      S t-        |d||d      S )NTr  main_categoryrM   r  r  r  r  maincategoryr  r  r  r  r
  r   zSub category added successfully/sub-categories-listr%  )r   r&  )r  r:   r@   r   addsubcategorformr   r   r   r9   rA   r!  rU  r   r  r   r   r   r
  r   r   r   r
   r	   )r   r   r&  r   r  r  r   s          r*   rC   zaddSubCategory.post  sl   %%,,d,C&&w||4==?$,,33t7H7H7L7L_7]3^ddfG$,,33&&*&7&7&;&;<S&T)-):):)>)>?Y)Z'+'8'8'<'<=S'T*.*;*;*?*?@Y*Z 4 \H }}  1)'--*;*;O*LMH--.s27:'*7|&MMOW%FG233'"8T9RSSr,   Nr   r.   r,   r*   r#  r#    s%    n?@0 A0$Tr,   r#  c                   <    e Zd Z e ed            d        Zd Zy)editSubCategoryr   r   c                 z   t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        j                  j                  d      }t        j                  j                  |      j                         }t        |d||d      c S  t        j                  |d	       t        d
      S )NrM   r5  r>  r   Tr  edit_subcategory.html)r  r&  rE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  r  r!  r	   r   r   r
   )	r   r   rN   rJ  rK  r   rL  r&  r  s	            r*   r9   zeditSubCategory.get  s    ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}%--44d4K(007727>DDFg&=(Z^>_``   NN7$FG.//r,   c           	         t        j                  |j                        }|j                         rt        j
                  j                  |j                  j                  d            j                         }t        j
                  j                  |      j                  |j                  |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d             |j                  j                  d      r|t        |j                  j                  d            }t        t         j"                        d	z   |z   }t        j
                  j                  |      j                  t        |      
       t%        j&                  |d       t)        d      S t+        |dd|i      S )Nr(  rM   r  r  r  r  r)  r
  r   r  z!Sub category updated successfullyr+  r0  r   )r   r,  r   r   r  r:   r@   r   r9   rA   r!  r   rN   r   r  r   r   r   r   r   r
   r	   )r   r   rN   r   r  r   s         r*   rC   zeditSubCategory.post%  su   &&w||4==?$,,33t7H7H7L7L_7]3^ddfG!!((B(/66&zz&*&7&7&;&;<S&T)-):):)>)>?Y)Z'+'8'8'<'<=S'T*.*;*;*?*?@Y*Z 7  }}  1)'--*;*;O*LMH--.s27:%%,,,3::W:VW%HI233'"96$-HHr,   Nr   r.   r,   r*   r.  r.    s%    n?@0 A0(Ir,   r.  c                   6    e Zd Z e ed            d        Zy)changeSubStatusr   r   c                    t         j                  j                  |j                  d         }|j                  d   |_        |j                          |j                  dk(  r:t        j                  |d       t        |j                  j                  d            S t        j                  |d       t        |j                  j                  d            S )Nr  rM   r   rn   zSubcategory is activatedr  zSubcategory is deactivated)r!  r:   r9   r   r   r   r   r   r   r  r   r  s      r*   rC   zchangeSubStatus.post=  s    "**..GLL4K.L\\(+

::W&@A 0 0 @AANN7$@A 0 0 @AAr,   Nr  r.   r,   r*   r3  r3  <  r  r,   r3  c                   6    e Zd Z e ed            d        Zy)deleteSubcategoryr   r   c                    t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        j                  j                  |      j                  t        j                                t        j                  |d       t!        d      c S  t        j"                  |d       t!        d	      S )
NrM   r5  r>  r   r  r  r+  rE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  r!  r   r   r  r   r   r
   r   r  s          r*   r9   zdeleteSubcategory.getJ  s    ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}%%,,,3::HLLN:S  *@A 677   NN7$FG.//r,   Nr&  r.   r,   r*   r6  r6  I  r  r,   r6  c                   6    e Zd Z e ed            d        Zy)
stonesListr   r   c                 4   t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        j                  j                  d      }|j                  j                  d      }|r6t        j                  j                  t        |      t        |	      z        }t        |d
      }|j                  j                  d      }	|j                  |	      }
t!        |d|
|d      c S  t#        j$                  |d       t'        d      S )NrM   r5  r>  r   Tr  r  )stone_name_english__icontains)stone_name_arabic__icontainsr_   rj  zstone_listing.htmlr  rE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  Stonesr8   r9   r   r   rp  r	   r   r   r
   r  s              r*   r9   zstonesList.get_  K   ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}"NN11T1J%kkooh7%~~44QU`5abc  BM  cN  6N   OH%h2	%kkoof5$--k:g&:x^i;jkk   NN7$FG.//r,   Nr&  r.   r,   r*   r9  r9  ^  rt  r,   r9  c                   <    e Zd Z e ed            d        Zd Zy)	addStonesr   r   c                    t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]G  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        |d      c S  t        j                  |d       t        d      S )NrM   r5  r>  r   add_stone.htmlrE  r   r  r  s         r*   r9   zaddStones.gety      ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}g&677   NN7$FG.//r,   c                    t        j                  |j                        }|j                         r&t        j
                  j                  |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d            }|j                  j                  d      rSt        |j                  j                  d            }t        t        j                        dz   |z   }t        |      |_        |j                          t!        j"                  |d       t%        d	      S t'        |d
d|i      S )Nstone_name_englishstone_name_arabicstone_content_englishstone_content_arabicrE  rF  rG  rH  
stone_iconr   zStone created succesfully/stones-listrB  r   )r   
stonesformr   r   r=  r:   rU  r   r9   r   r  r   r   r   rJ  r   r   r   r
   r	   r  s        r*   rC   zaddStones.post  s   -==?~~,,#'#4#4#8#89M#N$($5$5$9$9:M$N&*&7&7&;&;<S&T%)%6%6%:%:;Q%R	 - TH
 }}  .)'--*;*;L*IJH--.s27:$'L#MMOW%@AN++'"2F4=AAr,   Nr   r.   r,   r*   r@  r@  x  %    n?@0 A0"Br,   r@  c                   <    e Zd Z e ed            d        Zd Zy)
editStonesr   r   c                 8   t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]x  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        j                  j                  |      j                         }t        |dd|i      c S  t        j                  |d       t        d      S )	NrM   r5  r>  r   edit_stone.htmlr  rE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  r=  r	   r   r   r
   r  s           r*   r9   zeditStones.get      ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}!>>00B07==?g&7H8MNN   NN7$FG.//r,   c                    t        j                  |j                        }|j                         rOt        j
                  j                  |      j                  |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d             |j                  j                  d      r|t        |j                  j                  d            }t        t        j                        dz   |z   }t        j
                  j                  |      j                  t        |      	       t        j                   |d
       t#        d      S t%        |dd|i      S )NrM   rE  rF  rG  rH  rI  rJ  r   )rJ  zStone updated successfullyrK  rQ  r   )r   rL  r   r   r=  r:   r@   r   r   r9   r   r  r   r   r   r   r   r
   r	   r  s        r*   rC   zeditStones.post  s6   -==?NN!!R!(//#'#4#4#8#89M#N$($5$5$9$9:M$N&*&7&7&;&;<S&T%)%6%6%:%:;Q%R	 0  }}  .)'--*;*;L*IJH--.s27:%%%,33s7|3LW%ABN++'"3VDMBBr,   Nr   r.   r,   r*   rO  rO    %    n?@0 A0$Cr,   rO  c                   6    e Zd Z e ed            d        Zy)changeStoneStatusr   r   c                    t         j                  j                  |j                  d         }|j                  d   |_        |j                          |j                  dk(  r:t        j                  |d       t        |j                  j                  d            S t        j                  |d       t        |j                  j                  d            S )Nr  rM   r   rn   zStone status is activatedr  zStone status is deactivated)r=  r:   r9   r   r   r   r   r   r   r  r   r  s      r*   rC   zchangeStoneStatus.post      ^^''W\\)-D'E\\(+

::W&AB 0 0 @AANN7$AB 0 0 @AAr,   Nr  r.   r,   r*   rV  rV    r  r,   rV  c                   6    e Zd Z e ed            d        Zy)deleteStonecategoryr   r   c                    t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        j                  j                  |      j                  t        j                                t        j                  |d       t!        d      c S  t        j"                  |d       t!        d	      S 
NrM   r5  r>  r   r  r  rK  rE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  r=  r   r   r  r   r   r
   r   r  s          r*   r9   zdeleteStonecategory.get      ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}%%%,33X\\^3L  *@A//   NN7$FG.//r,   Nr&  r.   r,   r*   rZ  rZ    r  r,   rZ  c                   6    e Zd Z e ed            d        Zy)	brandListr   r   c                 4   t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        j                  j                  d      }|j                  j                  d      }|r6t        j                  j                  t        |      t        |	      z        }t        |d
      }|j                  j                  d      }	|j                  |	      }
t!        |d|
|d      c S  t#        j$                  |d       t'        d      S )NrM   r5  r>  r   Tr  r  )brand_name_english__icontains)brand_name_arabic__icontainsr_   rj  zbrand_listing.htmlr  rE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  Brandsr8   r9   r   r   rp  r	   r   r   r
   r  s              r*   r9   zbrandList.get  r>  r,   Nr&  r.   r,   r*   r_  r_    rt  r,   r_  c                   <    e Zd Z e ed            d        Zd Zy)addBrandr   r   c                    t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]G  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        |d      c S  t        j                  |d       t        d      S )NrM   r5  r>  r   add_brand.htmlrE  r   r  r  s         r*   r9   zaddBrand.get  rC  r,   c                    t        j                  |j                        }|j                         r&t        j
                  j                  |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d            }|j                  j                  d      rSt        |j                  j                  d            }t        t        j                        dz   |z   }t        |      |_        |j                          t!        j"                  |d       t%        d	      S t'        |d
d|i      S )Nbrand_name_englishbrand_name_arabicbrand_content_englishbrand_content_arabicri  rj  rk  rl  
brand_iconr   zBrand created succesfully/brand-listrg  r   )r   	brandformr   r   rc  r:   rU  r   r9   r   r  r   r   r   rn  r   r   r   r
   r	   r  s        r*   rC   zaddBrand.post  s   w||,==?~~,,#'#4#4#8#89M#N"&"3"3"7"78K"L&*&7&7&;&;<S&T%)%6%6%:%:;Q%R	 - TH
 }}  .)'--*;*;L*IJH--.s27:$'L#MMOW%@AM**'"2F4=AAr,   Nr   r.   r,   r*   re  re    rM  r,   re  c                   <    e Zd Z e ed            d        Zd Zy)	editBrandr   r   c                 8   t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]x  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        j                  j                  |      j                         }t        |dd|i      c S  t        j                  |d       t        d      S )	NrM   r5  r>  r   edit_brand.htmlr  rE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  rc  r	   r   r   r
   r  s           r*   r9   zeditBrand.get*  rR  r,   c                    t        j                  |j                        }|j                         rOt        j
                  j                  |      j                  |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d             |j                  j                  d      r|t        |j                  j                  d            }t        t        j                        dz   |z   }t        j
                  j                  |      j                  t        |      	       t        j                   |d
       t#        d      S t%        |dd|i      S )NrM   ri  rj  rk  rl  rm  rn  r   )rn  zBrand updated successfullyro  rt  r   )r   rp  r   r   rc  r:   r@   r   r   r9   r   r  r   r   r   r   r   r
   r	   r  s        r*   rC   zeditBrand.post=  s4   w||,==?NN!!R!(//#'#4#4#8#89M#N"&"3"3"7"78K"L&*&7&7&;&;<S&T%)%6%6%:%:;Q%R	 0  }}  .)'--*;*;L*IJH--.s27:%%%,33s7|3LW%ABM**'"3VDMBBr,   Nr   r.   r,   r*   rr  rr  )  rT  r,   rr  c                   6    e Zd Z e ed            d        Zy)changeBrandStatusr   r   c                    t         j                  j                  |j                  d         }|j                  d   |_        |j                          |j                  dk(  r:t        j                  |d       t        |j                  j                  d            S t        j                  |d       t        |j                  j                  d            S )Nr  rM   r   rn   zBrand status is activatedr  zBrand status is deactivated)rc  r:   r9   r   r   r   r   r   r   r  r   r  s      r*   rC   zchangeBrandStatus.postR  rX  r,   Nr  r.   r,   r*   rw  rw  Q  r  r,   rw  c                   6    e Zd Z e ed            d        Zy)deleteBrandcategoryr   r   c                    t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        j                  j                  |      j                  t        j                                t        j                  |d       t!        d      c S  t        j"                  |d       t!        d	      S r\  )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  rc  r   r   r  r   r   r
   r   r  s          r*   r9   zdeleteBrandcategory.get_  r]  r,   Nr&  r.   r,   r*   rz  rz  ^  r  r,   rz  c                   6    e Zd Z e ed            d        Zy)serviceListr   r   c                 4   t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        j                  j                  d      }|j                  j                  d      }|r6t        j                  j                  t        |	      t        |
      z        }t        |d      }|j                  j                  d      }	|j                  |	      }
t!        |d|
|d      c S  t#        j$                  |d       t'        d      S )NrM   r5  r>  r   r9  Tr  r  )english_service_name__icontains)arabic_service_name__icontainsr_   rj  zservice_listing.htmlr  rE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  Servicesr8   r9   r   r   rp  r	   r   r   r
   )r   r   rJ  rK  r   rL  r  r  rq  rr  service_objs              r*   r9   zserviceList.gett  sO   ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}$,,33t3L%kkooh7'//66qYd7efg  HS  gT  8T   UH%h2	%kkoof5'00=g&<cn=opp   NN7$FG.//r,   Nr&  r.   r,   r*   r}  r}  s  rt  r,   r}  c                   <    e Zd Z e ed            d        Zd Zy)
addServicer   r   c                    t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]G  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        |d      c S  t        j                  |d       t        d      S )	NrM   r5  r>  r   r9  add_service.htmlrE  r   r  r  s         r*   r9   zaddService.get  s    ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}g&899   NN7$FG.//r,   c                    t        j                  |j                        }|j                         r&t        j
                  j                  |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d            }|j                  j                  d      rSt        |j                  j                  d            }t        t        j                        dz   |z   }t        |      |_        |j                          t!        j"                  |d       t%        d	      S t'        |d
d|i      S )Nenglish_service_namearabic_service_nameenglish_service_contentarabic_service_contentr  r  r  r  service_iconr   zService created succesfully/service-listr  r   )r   serviceformr   r   r  r:   rU  r   r9   r   r  r   r   r   r  r   r   r   r
   r	   r  s        r*   rC   zaddService.post  s     .==?''..%)%6%6%:%:;Q%R$($5$5$9$9:O$P(,(9(9(=(=>W(X)-):):)>)>?W)X	 / ZH
 }}  0)'--*;*;N*KLH--.s27:&)'l%MMOW%BCO,,'"4fT]CCr,   Nr   r.   r,   r*   r  r    s%    n?@0 A0"Dr,   r  c                   <    e Zd Z e ed            d        Zd Zy)editServicer   r   c                 8   t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]x  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        j                  j                  |      j                         }t        |dd|i      c S  t        j                  |d       t        d	      S )
NrM   r5  r>  r   r9  edit_service.htmlr  rE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  r  r	   r   r   r
   r  s           r*   r9   zeditService.get  s    ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}#++22b29??Ag&9:h:OPP   NN7$FG.//r,   c                    t        j                  |j                        }|j                         rOt        j
                  j                  |      j                  |j                  j                  d      |j                  j                  d      |j                  j                  d      |j                  j                  d             |j                  j                  d      r|t        |j                  j                  d            }t        t        j                        dz   |z   }t        j
                  j                  |      j                  t        |      	       t        j                   |d
       t#        d      S t%        |dd|i      S )NrM   r  r  r  r  r  r  r   )r  zService updated successfullyr  r  r   )r   r  r   r   r  r:   r@   r   r   r9   r   r  r   r   r   r   r   r
   r	   r  s        r*   rC   zeditService.post  s:     .==?##r#*11%)%6%6%:%:;Q%R$($5$5$9$9:O$P(,(9(9(=(=>W(X)-):):)>)>?W)X	 2  }}  0)'--*;*;N*KLH--.s27:  ''2'.553w<5PW%CDO,,'"5vdmDDr,   Nr   r.   r,   r*   r  r    s%    n?@0 A0&Er,   r  c                   6    e Zd Z e ed            d        Zy)changeServiceStatusr   r   c                    t         j                  j                  |j                  d         }|j                  d   |_        |j                          |j                  dk(  r:t        j                  |d       t        |j                  j                  d            S t        j                  |d       t        |j                  j                  d            S )Nr  rM   r   rn   zService status is activatedr  zService status is deactivated)r  r:   r9   r   r   r   r   r   r   r  r   r  s      r*   rC   zchangeServiceStatus.post  s    %%))w||I/F)G\\(+

::W&CD 0 0 @AANN7$CD 0 0 @AAr,   Nr  r.   r,   r*   r  r    r  r,   r  c                   6    e Zd Z e ed            d        Zy)deleteServicecategoryr   r   c                    t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        j                  j                  |      j                  t        j                                t        j                  |d       t!        d      c S  t        j"                  |d	       t!        d
      S )NrM   r5  r>  r   r9  r  r  r  rE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  r  r   r   r  r   r   r
   r   r  s          r*   r9   zdeleteServicecategory.get  s    ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}  ''2'.55x||~5N  *@A00   NN7$FG.//r,   Nr&  r.   r,   r*   r  r    r  r,   r  c                   6    e Zd Z e ed            d        Zy)storeRequestListingr   r   c                 V   t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s<t        j                  j                         j                  d      }|j                  j                  d      }|r9t        j                  j                  t        |            j!                  d	      }t#        |d
      }|j                  j                  d      }	|j%                  |	      }
t'        |d|
|d      c S  t)        j*                  |d       t-        d      S )NrM   r5  r>  r   r6  r  r  email__icontainsri  r_   rj  zstore_request_list.html)	store_objr  rE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  StoreRequestsro  r  r8   r9   r   rO   r   rp  r	   r   r   r
   )r   r   rJ  rK  r   rL  
store_datar  rq  rr  r  s              r*   r9   zstoreRequestListing.get  sJ   ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}*22668AA%H
%kkooh7!.!6!6!=!=aQ\>]!^!f!fno!f!pJ%j!4	%kkoof5%..{;	g&?Yep@qrr   NN7$FG.//r,   Nr&  r.   r,   r*   r  r    rt  r,   r  c                   6    e Zd Z e ed            d        Zy)viewStoreRequestr   r   c                 8   t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]x  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        j                  j                  |      j                         }t        |dd|i      c S  t        j                  |d       t        d	      S )
NrM   r5  r>  r   r6  zview_request_list.htmlr  rE  r   r   r:   r@   r$   rN   rA   rG   rG  r?  rH  r  r	   r   r   r
   r   r   rN   rJ  rK  r   rL  r  s           r*   r9   zviewStoreRequest.get  s    ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1})1188B8?EEG	g&>I?VWW   NN7$FG.//r,   Nr&  r.   r,   r*   r  r    r  r,   r  c                   <    e Zd Z e ed            d        Zd Zy)disapproveStoreRequestr   r   c                 8   t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]x  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        j                  j                  |      j                         }t        |dd|i      c S  t        j                  |d       t        d	      S )
NrM   r5  r>  r   r6  disapprove_store_request.htmlr  rE  r   r  r  s           r*   r9   zdisapproveStoreRequest.get-  s    ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1})1188B8?EEG	g&E{S\F]^^   NN7$FG.//r,   c                 F   t        j                  |j                        }|j                         rt        j
                  j                  |      j                         }|j                  j                  d      }t        j
                  j                  |      j                  d|       t        dd|i      }|}t        j                  }|j                  }	d}
t        j                   |
|||	g|       t#        j$                  |d       t'        d	      S t)        |d
d|i      S )NrM   r=   r6  )r   r=   zstore_disapproved_mail.htmlzStore Request Disapprovedr   zDisapproved Successfully/store-request-listingr  r   )r   disapprovestoreformr   r   r  r:   r@   rA   r   r9   r   r   r   r   r1   r   r   r   r   r
   r	   )r   r   rN   r   r  r=   r   r   r   r   r   s              r*   rC   zdisapproveStoreRequest.post@  s    ((6==?%--444;AACI''++I6G!!((B(/66a6P+,I9U\J]^L(M!11JB1GNN7M:tR^_W%?@455'"A6$-PPr,   Nr   r.   r,   r*   r  r  ,  s%    n?@0 A0$Qr,   r  c                   6    e Zd Z e ed            d        Zy)approveStoreRequestr   r   c                    t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s<t        j                  j                  |      j                         }t               }t        j                  |      }	t         j                  j                  |j                  |j                   |j"                  |	d      }
t$        j                  j                  |
j                         t'        d||j                  |j                   d	      }|}t(        j*                  }|j"                  }d
}t-        j.                  ||||g|       t        j                  j                  |      j1                  d       t3        j4                  |d       t7        d      c S  t3        j8                  |d       t7        d      S )NrM   r5  r>  r   r6  )r   r   r1   r3   	is_sellerr  zstore_approved.html)r3   r   r   z#Store Request Approved Successfullyr   ri  zStored Approved Successfullyr  rE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  r  randomStringFunctionForPwhandlerhashrU  r   mobile_numberr1   r  r   r   r   r   r   r   r   r   r
   r   )r   r   rN   rJ  rK  r   rL  	store_reqstring_passwordr3   r   r   r   r   r   r   s                   r*   r9   zapproveStoreRequest.getR  s   ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1})1188B8?EEG	#<#>"<<8<<..):L:L\e\s\s  {D  {J  {J  T\  gh.  i%%hkk%:/0ERamvmm  PY  Pg  Pg  Gh   i ,%55
__?wzB4Vbc%%,,,3::A:F  )GH 899'  * NN7$FG.//r,   Nr&  r.   r,   r*   r  r  Q  s    n?@0 A0r,   r  c                   6    e Zd Z e ed            d        Zy)storeListingr   r   c           
         t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s<t        j                  j                  dd      j                  d      }|j                  j                  d	      }|j                  j                  d
      }t        j                         j!                  d      }	|r8t        j                  j                  ||dz   |	z   gd      j                  d      }|j                  j                  d      }
|
rat        j                  j                  t#        |
      t#        |
      z  t#        |
      z  t#        |
      z  d      j                  d      }t%        |d      }|j                  j                  d      }|j'                  |      }t)        |d||||
d      c S  t+        j,                  |d       t/        d      S )NrM   r5  r>  r   r6  Tr   r  r  r  r  r  start_date__ranger   r  )store_name_english__icontains)store_name_arabic__icontains)store_email__icontains)store_number__icontainsr  r_   rj  zstore_listing.html)r  r  r  r  rE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  r  r  r8   r9   r   r  r  r   r   rp  r	   r   r   r
   )r   r   rJ  rK  r   rL  r  r  r  r  r  rq  rr  r  s                 r*   r9   zstoreListing.getr  sS   ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}"NN11T_c1dmmnst&{{|<$[[__Z8
||~..z:%~~44V`cfVfhlVlGm  BF4   G   P   P  QV   WH%kkooh7%~~44QU`5abc  BM  cN  6N  OP  hs  Ot  6t  uv  OZ  u[  6[  mq4   r   {   {  |A   BH%h2	%kkoof5%..{;	g&:	am  |F  U`  <a  b  b%  ( NN7$FG.//r,   Nr&  r.   r,   r*   r  r  q  r  r,   r  c                   6    e Zd Z e ed            d        Zy)getStoreDetailsr   r   c                 ~    t         j                  j                  |d      j                         }t	        |dd|i      S )NTrN   r   zstore_details.htmlr  )r  r:   r@   rA   r	   )r   r   rN   r  s       r*   r9   zgetStoreDetails.get  s9    NN))R4)HNNP	g2K	3JKKr,   Nr&  r.   r,   r*   r  r    s!    n?@L ALr,   r  c                   6    e Zd Z e ed            d        Zy)changeStoreStatusr   r   c                    t         j                  j                  |j                  d         }|j                  d   |_        |j                          t         j                  j                  |j                  d         j                         }t        j                  j                  |j                        j                         }|j                  d   |_        |j                          |j                  dk(  r:t        j                  |d       t        |j                  j                  d            S t        j                  |d       t        |j                  j                  d            S )Nr  rM   r   rn   zStore status is activatedr  zStore status is deactivated)r  r:   r9   r   r   r   r@   rA   r   rL   r   r   r   r  r   )r   r   r  r  
store_users        r*   rC   zchangeStoreStatus.post  s   ^^''W\\)-D'E\\(+

NN))W\\)-D)EKKM	\\((I,=,=(>DDF
#LL2
::W&AB 0 0 @AANN7$AB 0 0 @AAr,   Nr  r.   r,   r*   r  r    s!    n?@B ABr,   r  c                   6    e Zd Z e ed            d        Zy)getAdminNotificationsr   r   c           	         t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]%  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s<t        j                  j                  d      j                  d      }|j                  j                  d	      }d
}|j                  j                  d      }	|r8t        j                  j                  ||	dz   |z   gd      j                  d      }t        |d      }
|j                  j                  d      }|
j                  |      }t!        |d|||	d      c S  t#        j$                  |d       t'        d      S )NrM   r5  r>  r   r7  Tr  r  r  z22:44:46.873182+00r  r  r  r<  rj  zget_admin_notifications.html)
notify_objr  r  rE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  AdminNotificationsr  r8   r9   r   rp  r	   r   r   r
   )r   r   rJ  rK  r   rL  not_objr  r  r  rq  rr  r  s                r*   r9   zgetAdminNotifications.get  s   ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1},44;;t;T]]^cd&{{|<+$[[__Z8
088??S_aknqaqswawRx  KO?  P  Y  Y  Z_  `G%gr2	%kkoof5&//<
g&DS]my  HR  FS  T  T#  & NN7$FG.//r,   Nr&  r.   r,   r*   r  r    s    n?@0 A0r,   r  c                   6    e Zd Z e ed            d        Zy)deleteAdminNotificationsr   r   c                    t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;|j                  j                  d      }|rl|j                  d      D cg c]  }t        |       }}t        j                  j                  |      j                          t!        j"                  |d	       nt!        j$                  |d
       t'        d      c S  t!        j$                  |d       t'        d      S c c}w )NrM   r5  r>  r   r7  	delete_id,)pk__inzDeleted Sucessfullyz*At least One notification must be selected/get-admin-notificationsrE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  r8   r9   r   intr  r  r   r   r   r
   )	r   r   rJ  rK  r   rL  idsrN   int_id_lists	            r*   r9   zdeleteAdminNotifications.get  s0    ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}kkook258YYs^"D^r3r7^K"D&..55[5IPPR$$W-BCNN7+WX :;;   NN7$FG.// #Es   +F	Nr&  r.   r,   r*   r  r    r  r,   r  c                   6    e Zd Z e ed            d        Zy)readNotificationr   r   c                 Z   t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        j                  j                         j                         }d|_        |j                          t        d      c S  t!        j"                  |d       t        d	      S )
NrM   r5  r>  r   r7  Fr  rE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  r  ro  lastis_readr   r
   r   r   )r   r   rJ  rK  r   rL  r  s          r*   r9   zreadNotification.get  s    ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1},4488:??A"' :;;   NN7$FG.//r,   Nr&  r.   r,   r*   r  r    s    n?@0 A0r,   r  c                   6    e Zd Z e ed            d        Zy)marketingRequestListr   r   c                 r   t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s<t        j                  j                         j                  d      }|j                  j                  d      }|rGt        j                  j                  t        |      t        |	      z  d
      j                  d      }t!        |d      }|j                  j                  d      }	|j#                  |	      }
t%        |d|
|d      c S  t'        j(                  |d       t+        d      S )NrM   r5  r>  r   r_   r  r  )product_name)
owner_nameTr  rj  zmarketing_request_list.html)req_objr  rE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  MarketingRequestro  r  r8   r9   r   r   rp  r	   r   r   r
   )r   r   rJ  rK  r   rL  r  r  rq  rr  r  s              r*   r9   zmarketingRequestList.get  sl   ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}+33779BB5I%kkooh7/77>>qk?Z[\hs[t?t  GK>   L   U   U  V[   \H%h2	%kkoof5#,,[9g&CwepDqrr   NN7$FG.//r,   Nr&  r.   r,   r*   r  r    rt  r,   r  c                   6    e Zd Z e ed            d        Zy)marketingRequestDetailr   r   c                 8   t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]x  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        j                  j                  |      j                         }t        |dd|i      c S  t        j                  |d       t        d	      S )
NrM   r5  r>  r   r_   zmarketing_details.htmlr  rE  r   )r   r:   r@   r$   rN   rA   rG   rG  r?  rH  r  r	   r   r   r
   )r   r   rN   rJ  rK  r   rL  r  s           r*   r9   zmarketingRequestDetail.get  s    ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}*2299R9@FFHg&>	'?RSS   NN7$FG.//r,   Nr&  r.   r,   r*   r  r    r  r,   r  c                   6    e Zd Z e ed            d        Zy)customerReportSectionsr   r   c                    t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]G  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s;t        |d      c S  t        j                  |d       t        d      S )	NrM   r5  r>  r   r:  zcustomer_report.htmlrE  r   r  r  s         r*   r9   zcustomerReportSections.get.  s    ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}g&<==   NN7$FG.//r,   Nr&  r.   r,   r*   r  r  -  s    n?@0 A0r,   r  c                   6    e Zd Z e ed            d        Zy)StoresReportSectionsr   r   c                 Z	   t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s<g }t        j                  j                  dd      }t        j                  j                         }|j                  j                  d      }	|j                  j                  d	      }
|j                  j                  d
      }|j                  j                  d      }|j                  j                  d      }d}t               }|	r4|
r2|j!                  t        |	|
dz   |z   g      t        j"                         |r*|j!                  t        |      t        j"                         |r3|j!                  t        t%        |            t        j"                         |r3|j!                  t        t%        |            t        j"                         t        j                  j                  |      j'                  d      }|j                  j                  d      }|r8t        j                  j                  t        |            j'                  d      }|D ]  }|j)                  |        t+        |d      }|j                  j                  d      }|j-                  |      }|j                  j                  d      }|rt/        d      }d|d<   t1        j2                  |      }|j5                  g d       |D ]  }|j6                  dk(  rd}n|j6                  dk(  rd }nd!}|j8                  dk(  rd"}nd#}|j5                  |j:                  |j<                  j>                  |j@                  |jB                  |||jD                  jF                  jH                  j                  g        |c S tJ        j                  j                         j                         }tM        |d$|	|
|||||||jN                  d%	      c S  tQ        jR                  |d&       tU        d'      S )(NrM   r5  r>  r   r:  Tr   r  r  store_iddelivery_statuspayment_status11:59:59r  )created_at__range)productDetail__product__store)r  r   r  r  orderId__icontainsr<  rj  
csv_exporttext/csvcontent_type!attachment; filename="mydata.csv"Content-Disposition)OrderIDCustomer
Order DateTotal AmountzDelivery StatusPayment StatusStore IDr   Pendingz
On the way	DeliveredPaidUnpaidzstore_report.html)	r  r  	all_orderr  
stores_objstore_id_senddelivery_status_sendpayment_status_send	vat_valuerE  r   )+r   r:   r@   r$   rN   rA   rG   rG  r?  rH  r  r  ro  r8   r9   r   addANDr  r  r  r   rp  r   csvwriterwriterowr  r   orderIdcustomerr1   
created_atr  productDetailproductstoreCommissionSectionr	   vat_percentager   r   r
   )r   r   rJ  rK  r   rL  allDatar  	order_objr  r  r  r  r  r  lookupsr  orderrq  rr  r  responser  rowr  s                            r*   r9   zStoresReportSections.getA  s   ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}$nn33Tab3c
%--113	&{{|<$[[__Z8
";;??:6")++//2C"D")++//2B"C!#JKK\:PSCSUYCY4Z []^]b]bcKK I155Q"KK#o2F GO!KK^)< =quuE%--44W=FFuM	%kkooh7 ) 1 1 8 8k9Z [ d dej kI&ENN5) '%gr2	%kkoof5%..{;	$[[__\:
+DH6YH23 ZZ1FOO  %K  L  '..!3.7O 00A5.:O.9O::?-3N-5Ncll6H6H#..Y\YhYhix  zH  IL  IZ  IZ  Ib  Ib  Ih  Ih  Ik  Ik  )l  m  ' $O-5599;AAC	g&9,dn  |E  T_  mw  HP  hw  N\  ir  iA  iA  ;B  C  C}  @ NN7$FG.//r,   Nr&  r.   r,   r*   r  r  @  s!    n?@G0 AG0r,   r  c                   <    e Zd Z e ed            d        Zd Zy)addRoleAdminr   r   c                 \    t         j                  j                         }t        |dd|i      S )Nadd_role.htmlpermission_obj)Permissionsr:   ro  r	   )r   r   r$  s      r*   r9   zaddRoleAdmin.get  s+    $,,002go/?.OPPr,   c                    t        j                  |j                        }|j                         r|j                  j                  d      }t        j                  j                  |      }|j                  j                  d      }|D ]Q  }t        j                  j                  |      j                         }t        j                  j                  ||       S t        j                  |d       t!        d      S t#        |dd	|i      S )
N	role_namer'  permission_datarM   r?  rH  zRole created successfully/role-listing-adminr#  r   )r   addroleformr   r   r   r9   Rolesr:   rU  getlistr%  r@   rA   rG  r   r   r
   r	   )r   r   r   r'  role_id	list_dropr   r$  s           r*   rC   zaddRoleAdmin.post  s      .==?))--k:I]]))I)>G||++,=>I!,!4!4!;!;q!;!A!G!G!I''..G~.V  W%@A122'/6$-@@r,   Nr   r.   r,   r*   r!  r!    s'    n?@Q AQAr,   r!  c                   6    e Zd Z e ed            d        Zy)roleListingAdminr   r   c                 b   t         j                  j                  d      }|j                  j	                  d      }|r+t         j                  j                  t        |      d      }t        |d      }|j                  j	                  d      }|j                  |      }t        |d||d      S )	NTr  r  )role_name__icontainsr_   rj  zrole_listing.html)	roles_objr  )	r-  r:   r@   r8   r9   r   r   rp  r	   )r   r   roles_obj_datar  rq  rr  r5  s          r*   r9   zroleListingAdmin.get  s    ---Fkkooh/"]]11!2Uim1nNna0	kkoof-&&{3	g1yWb2cddr,   Nr&  r.   r,   r*   r2  r2    s!    n?@e Aer,   r2  c                   <    e Zd Z e ed            d        Zd Zy)editRoleAdminr   r   c                     t         j                  j                         }t        j                  j	                  |d      j                         }t        j                  j	                  |      }t        |d|||d      S )NTr  r>  edit_role.html)role_objr?  r$  )r%  r:   ro  r-  r@   rA   rG  r	   )r   r   rN   r$  r?  r;  s         r*   r9   zeditRoleAdmin.get  si    $,,002}}##rT#BHHJ"**11r1:g.84ao/pqqr,   c                    t        j                  |j                        }|j                         rC|j                  j                  d      }t        j                  j                  |d      j                  |      }|j                  j                  d      }t        j                  j                  |      }|D ]  }|j                           |D ]  }	t        j                  j                  |	      j                         }
t        j                  j                  |      j                         }t        j                  j                  ||
        t!        j"                  |d	       t%        d
      S t'        |dd|i      S )Nr'  Tr  r(  r)  r>  rM   r*  zRole updated successfullyr+  r:  r   )r   r,  r   r   r   r9   r-  r:   r@   r   r.  rG  r  r%  rA   rU  r   r   r
   r	   )r   r   rN   r   r'  r/  r0  role_deleter?  r   r$  r;  s               r*   rC   zeditRoleAdmin.post  s6     .==?))--k:I]]))R4)HOOZcOdG||++,=>I)1188b8AK# $!,!4!4!;!;q!;!A!G!G!I ==//2/6<<>''..H.W  W%@A122'"2F4=AAr,   Nr   r.   r,   r*   r8  r8    s'    n?@r ArBr,   r8  c                   6    e Zd Z e ed            d        Zy)
deleteRoler   r   c                     t         j                  j                  |      j                  t	        j
                                t        j                  |d       t        d      S )NrM   r  r  r+  )	r-  r:   r@   r   r   r  r   r   r
   )r   r   rN   s      r*   r9   zdeleteRole.get  sH    #**HLLN*C"89-..r,   Nr&  r.   r,   r*   r?  r?    s    n?@/ A/r,   r?  c                   6    e Zd Z e ed            d        Zy)subAdminManagementr   r   c                    t         j                  j                  d      j                  d      }|j                  j                  d      }|r6t         j                  j                  t        |      t        |      z        }t        |d      }|j                  j                  d      }|j                  |      }t        |d	||d
      S )NF)role__isnullr  r  )full_name__icontainsr  r_   rj  zsub_admin_management.html)r   r  )
r   r:   r@   r  r8   r9   r   r   rp  r	   )r   r   user_obj_datar  rq  rr  r   s          r*   r9   zsubAdminManagement.get  s    ++5+AJJ5Qkkooh/ LL//{0STUgrTs0stMmQ/	kkoof-%%k2g9h]h:ijjr,   Nr&  r.   r,   r*   rB  rB    s!    n?@k Akr,   rB  c                   <    e Zd Z e ed            d        Zd Zy)addSubAdminr   r   c                 `    t         j                  j                  d      }t        |dd|i      S )NTr  add_sub_admin.htmlr5  )r-  r:   r@   r	   )r   r   
roles_datas      r*   r9   zaddSubAdmin.get  s.    ]]))T)B
g2K
3KLLr,   c                    t        j                  |j                        }|j                         r|j                  j                  d      }|j                  j                  d      }|j                  j                  d      }|j                  j                  d      }|j                  j                  d      }|j                  j                  d      }|j                  j                  d      }	t        j                  j                  |	d	      j                         }
t        j                  j                  |||||	|
j                  
      }|j                  |       |j                          |j                  j                  d      rct!        |j                  j                  d            }t#        t$        j&                        dz   |z   }t#        |      |_        |j                          d}t+        d||d      }|}t$        j,                  }|}t/        j0                  ||||g|       t3        j4                  |d       t7        d      S t9        |dd|i      S )Nr   r   r   r1   r3   confirm_passwordr/  Tr  r   r   r   r1   r?  r'  r   r   zSub Admin Detailszsub_admin_mail.htmlr   r   Added successfully/sub-admin-managementrJ  r   )r   addsubadminformr   r   r   r9   r-  r:   r@   rA   r   rU  r'  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r
   r	   )r   r   r   r   r   r   r1   r3   rM  r/  r'  	user_datar   r   r   r   r   r   s                     r*   rC   zaddSubAdmin.post  s   $$W\\2==?))--k:I((,,Z8H,,00@L$$((1E((,,Z8H#00445GH''++I6G,,4,PVVXI++i_krw  ~E  PY  Pc  Pc+  dI""8,NN}}  *'(9(9((CDH--.s27:!$W	  )G+,AU^fCghL(M!11JBNN7M:tR^_W%9:344 '"6t}EEr,   Nr   r.   r,   r*   rH  rH    s'    n?@M AM
Fr,   rH  c                   <    e Zd Z e ed            d        Zd Zy)editSubAdminr   r   c                     t         j                  j                  d      }t        j                  j                  d|      j	                         }t        |d||d      S )NTr  F)rD  rN   edit_sub_admin.html)r   r5  )r-  r:   r@   r   rA   r	   )r   r   rN   rK  r   s        r*   r9   zeditSubAdmin.get  sQ    ]]))T)B
<<&&er&BHHJg3U_4`aar,   c                    t        j                  |j                        }|j                         r|j                  j                  d      }|j                  j                  d      }|j                  j                  d      }|j                  j                  d      }|j                  j                  d      }t        j                  j                  |d      j                         }	t        j                  j                  |      j                  ||||||	j                  	      }
t        j                  |d
       t        d      S t!        |dd|i      S )Nr   r   r   r1   r/  Tr  rM   rN  zUpdated successfullyrP  rV  r   )r   editsubadminformr   r   r   r9   r-  r:   r@   rA   r   r   r'  r   r   r
   r	   )r   r   rN   r   r   r   r   r1   r/  r'  rR  s              r*   rC   zeditSubAdmin.post  s1   %%gll3==?))--k:I((,,Z8H,,00@L$$((1E''++I6G,,4,PVVXI++r+299IW_my  AF  LS  ^g  ^q  ^q9  rIW%;<344'"7FFr,   Nr   r.   r,   r*   rT  rT    s'    n?@b Ab
Gr,   rT  c                   6    e Zd Z e ed            d        Zy)changeSubAdminStatusr   r   c                    t         j                  j                  |j                  d         }|j                  d   |_        |j                          |j                  dk(  r:t        j                  |d       t        |j                  j                  d            S t        j                  |d       t        |j                  j                  d            S r  r  r  s      r*   rC   zchangeSubAdminStatus.post  r  r,   Nr  r.   r,   r*   rZ  rZ    r  r,   rZ  c                   <    e Zd Z e ed            d        Zd Zy)addTranscationWalletr   r   c                 \    t         j                  j                         }t        |dd|i      S )Nadd_transcation_wallet.htmlr  )r  r:   ro  r	   )r   r   r  s      r*   r9   zaddTranscationWallet.get,  s)    MM%%'	g;[<STTr,   c                 L   t        j                  |j                        }|j                         r|j                  j                  d      }|j                  j                  d      }t        j                  j                  |      j                         }|j                  j                  d      }|j                  j                  d      }d}|dk(  rt        j                  j                  |      j                         }	t        |	j                        t        |      z   }
t        j                  j                  |      j                  |
       nt        j                  j                  |      j                         }	t        |	j                        t        |      z
  }
t        j                  j                  |      j                  |
       t        j                  j                  ||||||
	       t        j                   |d
       t#        d      S t%        |dd|i      S )NtypebuyerrM   amountreasonManualAddition)wallet_amount)ra  rb  rc  rd  transcation_typebalancerO  z/transcation-wallet-listr_  r   )r   addtranscationwalletformr   r   r   r9   r  r:   r@   rA   r  rg  r   WalletrU  r   r   r
   r	   )r   r   r   ra  rb  r  rc  rd  rh  
amount_obj
new_amounts              r*   rC   zaddTranscationWallet.post0  s   --gll;==?$$((0D%%))'2E---7==?I&&**84F&&**84F (z!"]]11U1;AAC
 !9!9:S[H
$$$.55J5O"]]11U1;AAC
 !9!9:S[H
$$$.55J5ONN!!t)6QWiy  CM!  NW%9:677'"?NNr,   Nr   r.   r,   r*   r]  r]  +  s'    n?@U AUOr,   r]  c                   6    e Zd Z e ed            d        Zy)transcationWalletListr   r   c           	      
   t         j                  j                         j                  d      }|j                  j                  d      }|r]t         j                  j                  t        |      t        |      z  t        |      z  t        |      z  t        |      z        }|j                  j                  d      }t        j                         j                  d	      }|j                  j                  d
      }|r8t         j                  j                  ||dz   |z   gd      j                  d      }t        |d      }|j                  j                  d      }|j                  |      }	t        |d|	|||d      S )Nr  r  )amount__icontains)type__icontains)transcation_type__icontains)order_id__icontains)buyer__user__id__icontainsr  r  r  r  Tr  r_   rj  ztranscation_wallet_list.html)
wallet_objr  r  r  )rk  r:   ro  r  r8   r9   r@   r   r   r  r  r   rp  r	   )
r   r   rv  r  r  r  r  rq  rr  wallets
             r*   r9   ztranscationWalletList.getL  s   ^^'')2259
kkooh/..q;/OPQbmPn/nop  NY  pZ  0Z  [\  q|  [}  0}  ~  [f  ~g  0g  hJ{{|4||~&&z2[[__Z0
..,PZ]`P`bfPfAgy}.~  H  H  IN  OJj!,	kkoof-##K0g<6`k  |H  V`  >a  b  	br,   Nr&  r.   r,   r*   ro  ro  K  s!    n?@b Abr,   ro  c                       e Zd Zd Zd Zy)generalSettingAdminc                 x    t         j                  j                         j                         }t	        |dd|i      S )Ngeneral_settings.html
commission)r  r:   ro  rA   r	   )r   r   commissionObjs      r*   r9   zgeneralSettingAdmin.get_  s4    )11557==?g5|M6RSSr,   c                    t        j                  |j                        }|j                         r|j                  j                  d      }|j                  j                  d      }t        j                  j                         j                         }|r||_
        ||_        |j                          n!t        j                  j                  ||      }t        j                  |d       t!        d      S t#        |dd|i      S )N
vat_numberr  )r  r  zSaved successfullyz/general-setting-adminr{  r   )r   commissionsectionformr   r   r   r9   r  r:   ro  rA   r  r  r   rU  r   r   r
   r	   )r   r   r   r  r  commissin_objs         r*   rC   zgeneralSettingAdmin.postc  s    ..w||<D}}!..22<@
!%!2!2!6!67G!H!2!:!:!>!>!@!F!F!H /9M,3AM0!&&($5$=$=$D$DPZjx$D$yM  )=> 899g&=vdmLLr,   Nr   r.   r,   r*   ry  ry  ^  s    TMr,   ry  c                   6    e Zd Z e ed            d        Zy)StoresInvoiceReportSectionsr   r   c                    t         j                  j                  |j                  j                        j                         }|j                  rg d}n*t        j                  j                  |j                        }|D ]W  }|j                  j                  dk(  rd}n|j                  j                  }|dk(  s<g }t        j                  j                  dd      }t        j                  j                         }|j                  j                  d      }	|j                  j                  d	      }
|j                  j                  d
      }|j                  j                  d      }|j                  j                  d      }d}t               }|	r4|
r2|j!                  t        |	|
dz   |z   g      t        j"                         |r*|j!                  t        |      t        j"                         |r3|j!                  t        t%        |            t        j"                         t        j                  j                  |      j'                  d      }|j                  j                  d      }|r8t        j                  j                  t        |            j'                  d      }|D ]  }|j)                  |        t+        |d      }|j                  j                  d      }|j-                  |      }|j                  j                  d      }|rt/        d      }d|d<   t1        j2                  |      }|j5                  g d       |D ]i  }|j6                  dk(  rd}nd}|j5                  |j8                  |j:                  |j<                  |j>                  ||j@                  j                  g       k |c S tC        |d|	|
||||||d       c S  tE        jF                  |d!       tI        d"      S )#NrM   r5  r>  r   r:  Tr   r  r  r  r  r  r  r  )r  )r  )is_paidr  r  r  r<  rj  r  r  r  r  r  )z
InvoiceNo.r  r  r   r  r  r  r  zstore_service_report.html)r  r  r  r  r  r	  r
  r  rE  r   )%r   r:   r@   r$   rN   rA   rG   rG  r?  rH  r  ServiceInvoicero  r8   r9   r   r  r  r  r  r  r   rp  r   r  r  r  r  invoice_numbercustomer_namer  total_amountr  r	   r   r   r
   )r   r   rJ  rK  r   rL  r  r  serviceInvoice_objr  r  r  r  r  r  r  r  r  rq  rr  r  r  r  r  s                           r*   r9   zStoresInvoiceReportSections.getu  sh   ||**glloo*>DDF$$6N,44;;<CTCT;UNA||!#LLOO1}$nn33Tab3c
%3%;%;%?%?%A"&{{|<$[[__Z8
";;??:6")++//2C"D")++//2B"C!#JKK\:PSCSUYCY4Z []^]b]bcKK 11559!KK#n*= >F%3%;%;%B%B7%K%T%TUZ%["%kkooh7)7)?)?)F)Fq\gGh)i)r)rsx)y&/ENN5) 0%gr2	%kkoof5%.%7%7%D"$[[__\:
+DH6YH23 ZZ1FOO$z{  ';;$.-3N-5N););S=N=NPSP^P^_b_o_op~  @C  @I  @I  @L  @L  )M  N  ' $Og&AR^lv  DV  ep  ~H  Ya  yH  _m  Cn  o  og  j NN7$FG.//r,   Nr&  r.   r,   r*   r  r  t  s    n?@<0 A<0r,   r  )urllibr   django.views.generic.baser   auth_apis.modelsdjango.contrib.authr   r   r   django.shortcutsr	   r
   r   r   django.httpr   django.http.responser   r2   r   r[   	functionsdjango.template.loaderr   django.corer   django.contribr   django.confr   mathpytzr\   django.contrib.auth.decoratorsr   django.utils.decoratorsr   admin_panel.modelsr   django.core.paginatorr   django.db.modelsr   store_apis.modelspasslib.hashr   r  panel_apis.modelsr   r   r  	functoolsr   r   r/   r>   rD   rJ   rP   rS   rj   r   r   r   r   r   r   r(  r0  r3  rY  r`  rg  rv  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r#  r.  r3  r6  r9  r@  rO  rV  rZ  r_  re  rr  rw  rz  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r2  r8  r?  rB  rH  rT  rZ  r]  ro  ry  r  r.   r,   r*   <module>r     s{    *  ; ; - ! . $ -    3  #   ! ! 9 4    +   8    " 
  -%00%%(B$ B.KD K6 H  HFF4 F4eT e>P P$)$ )!GD !GF Id  ID!F4 !FJ0d 06$E$ $EL0$ 0(0$ 0>B B0 0*9Ad 9Az*Bt *B^0 06@T @@Ad AB0 0*6G 6Gr0 08#Id #IL%Jt %JRBt B0 000 04(TT (TV)Id )IZBd B0 0*0 04#B #BL$C $CPB B0$ 0,0 04#Bt #BL$C $CPB B0$ 0*0$ 04#D #DL%E$ %ERB$ B0D 0*0$ 040t 0(#QT #QJ0$ 0@04 0>Ld LB B(0D 0<0t 080t 0.04 040T 0*0T 0&I04 I0XA4 A(
et 
eBD B4/ /
k 
k$F$ $FNG4 G0B4 BO4 O@bD b&M$ M,>0$ >0r,   