File: //home/arjun/projects/buyercall/buyercall/blueprints/admin/__pycache__/views.cpython-310.pyc
o
�we�� � @ s� d dl Zd dlZd dlmZmZmZmZmZm Z m
Z
mZ d dlm
Z
mZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d d lmZ d d
lmZ d dlmZ d dl m!Z!m"Z" d d
l#m$Z$ d dl%m&Z& d dl'm(Z( d dl)m*Z* d dl+m,Z, d dl%m-Z-m.Z.m/Z/m0Z0 d dl1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z= d dl>m?Z?m@Z@ d dlAmBZB d dlAmCZC d dlDmEZEmFZF edeGddd�ZHeHjIe
edddd�dd � ���ZIeH�Jd!�d"d#� �ZKeHjJd$d%d&id'�eH�Jd(�ed�d)d*� ���ZLeH�Jd+�eCjMe
ed�d,d-� ����ZNeHjJd.d/d0gd1�eddd�d2d3� ��ZOeHjJd4d5gd1�e
ed�d6d7� ���ZPeHjJd8d0gd1�ed�d9d:� ��ZQeHjJd;d%d&id'�d<d=� �ZReH�Jd>�d?d@� �ZSeHjJdAd/d0gd1�dBdC� �ZTeHjJdDd0gd1�dEdF� �ZUeHjJdGd%d&id'�ed�dHdI� ��ZVeH�JdJ�ed�dKdL� ��ZWeHjJdMd/d0gd1�e(ed�dNdO� ���ZXeHjJdPd0d5gd1�e(ed�dQdR� ���ZYeH�JdS�edd�dTdU� ��ZZeH�JdV�edd�dWdX� ��Z[eHjJdYd0d/gd1�edd�dZd[� ��Z\eHjJd\d0d/gd1�edd�d]d^� ��Z]eHjJd_d0d/gd1�edd�d`da� ��Z^eHjJdbd/d0gd1�eCjMedd�dcdd� ���Z_eHjJded0d/gd1�edd�dfdg� ��Z`eHjJdhd0d/gd1�edd�didj� ��Zadkdl� ZbdS )m� N)� Blueprint�current_app�redirect�request�flash�url_for�jsonify�render_template)�login_required�current_user)�gettext)�and_)�text)�InvalidRequestError)� AESCipher)� Dashboard)�
role_required)�Agent)�User�UserExternalApiAutoPostTie)�Issue)�Partnership)�handle_stripe_exceptions)�Coupon)�Subscription)�PartnershipAccountCreditTie�PartnershipAccount�0ExternalApiServiceProvidersPartnershipAccountTie�ExternalApiServiceProviders)�
SearchForm�BulkDeleteForm�UserForm�UserCancelSubscriptionForm� IssueForm�IssueContactForm�
CouponForm�SevenHundredCreditForm�SevenHundredPrequalifyForm�FinservPrequalifyForm�AMSEvolutionForm�
NeoVerifyForm)�Report�
ReportUserTie)�db)�csrf)�
DataTables�ColumnDT�admin� templatesz/admin)�template_folder�
url_prefix�partner�sysadmin�
limitsysadminc C s dS )z/ We are protecting all of our admin endpoints. N� r8 r8 r8 �B/home/arjun/projects/buyercall/buyercall/blueprints/admin/views.py�before_request+ s r: � c C s� t d�} tj}tj}|rtj}tjdkrtj|k} tjdkr,ttj|ktj� g d���} tjdv r6t
�t�nt� dd�}tjdkrEt
�
� nd}t
�ttj| �}t
�t�}td||||d �S )
N�1 = 1r5 r1 )r6 r7 r5 r )�query�totalr6 zadmin/page/dashboard.jinja2)�group_and_count_plans�group_and_count_coupons�group_and_count_users�group_and_count_issues)r r �partnership_account_id�is_viewing_partnership�'get_user_viewing_partnership_account_id�roler �partnership_idr
�notin_r r? �listr@ �group_and_countrB r )�
filter_exprC �!partnership_account_group_viewingr? r@ rA rB r8 r8 r9 � dashboard4 s0
�
�
�
�rM z/users�page� )�defaultsz/users/page/<int:page>c C s� t � }t� }tj}tj}|rtj}t�tj �
dd�tj �
dd��}d�|d |d �}tj�
tj|ktjd k��
tj�d���
t�tj �
d d
����tj�� t|���| dd�}td
|||d�S )N�sort�name� direction�ascz{0} {1}r rO F�qr; � Tzadmin/user/index.jinja2)�form� bulk_form�users)r r r rC rD rE r �sort_byr �args�get�formatr= �filterrG �is_deactivated�is_�search�order_byrF �descr �paginater )rN �search_formrX rC rL rZ �order_values�paginated_usersr8 r8 r9 rY U s* �
��rY z
/user-datac C s� t j} t j}|rt j} ttj�ttj�ttj�ttj �ttj
�ttj�ttj�g}|r8t
tj| kt jdk�}nt jtjkt
tj| kt jdk�B }tj�� �t��|��tj�d��}ttj||�}t|�� �S )Nr1 F)r rC rD rE r0 r �id� firstname�lastname�email�phonenumber�last_sign_in_on�
sign_in_countr
rF r- �sessionr= �select_fromr^ r_ r` r/ r r[ r �
output_result)rC rL �columns� filter_byr= � row_tabler8 r8 r9 �datat s* �
�$ru z/users/edit/<int:id>�GET�POST)�methodsc C s� t j�| �}t|d�}g |j_dd� tj�� D �}|D ]
}|dkr(|jj�|� qt j
}t jdkr7ddg|j_dd lm
} d
}|�|d�}|r^d}t�| |d�} | rZ| jrZd|j_nd
|j_d
}
|�|d
�}|rd}
t�| |d
�}|r{|jr{d|j_nd
|j_d
}
|�|d�}|r�d}
t�| |d�}|r�|jr�d|j_nd
|j_|�� �rNt �|tj�d�tj�d��r�ttd�d� ttd��S |�|� |jdkr�d |_|� � tj�d�}d
}|r�|dkr�d}t�!| |d|� tj�d�}d
}|r�|dkr�d}t�!| |d
|� tj�d�}d
}|�r|dk�rd}t�!| |d|� t"� |_#|jjD ]} t$� }| |_%|j&|_'|j
|_(t)j*�+|� �q$t)j*�,� ttd�d� ttd��S |j�-dd� |j#D �� t.d||||
|
d�S )N��objc S s g | ]}|j |jf�qS r8 )rh rR )�.0�reportr8 r8 r9 �
<listcomp>� s zusers_edit.<locals>.<listcomp>)� zPartner Channel Account Reportr1 )r1 �Admin)�agentr � )r FzAMS 2000T�
AMS Evolution�
NEO VerifyrF �activez+You are the last admin, you cannot do that.�danger�admin.usersr; �ams_2000�y�
ams_evolution�
neo_verifyz!User has been saved successfully.�successc S s g | ]}|j j�qS r8 )r| rh )r{ �linkr8 r8 r9 r} s zadmin/user/edit.jinja2)rW �user�ams_2000_provider_exists�ams_evo_provider_exists�neo_verify_provider_exists)/r r= r\ r! �reports_list�choicesr+ �all�appendr rC rF �partnership.modelsr �exists_for_service_providerr �!get_service_provider_access_state�
is_allowedr� ru r� r� �validate_on_submit�
is_last_adminr rW r �_r r �populate_obj�username�save�!set_service_provider_access_staterI �reportsr, � report_idrh �user_id�partnership_accounts_idr- ro �add�commit�process_datar )rh r� rW r� �rrC r �ams_2000_account_tie�!partnership_account_ams_2000_ties�ams_2000_exists�ams_evo_account_tie� partnership_account_ams_evo_ties�ams_evolution_user_tie_exists�neo_verify_account_tie�#partnership_account_neo_verify_ties�neo_verify_user_tie_existsr� �ams_2000_resultr� �ams_evolution_resultr� �neo_verify_resultr� r8 r8 r9 �
users_edit� s�
�
��
��
��
��
�r� z/users/delete/<int:id>�DELETEc C s t �| �}t|d�S )N)r� )r �deactivate_userr )rh �resultr8 r8 r9 �user_delete s
r� z/users/cancel_subscriptionc C sf t � } | �� r-tj�tj�d��}|r&|j}|�|�r%t t
d|jd�d� nt t
d�d� tt
d��S )Nrh z-Subscription has been cancelled for %(user)s.)r� r� z4No subscription was cancelled, something went wrong.r� r� )r"