o
    Bg6                     @   s^   d dl Z d dlmZ d dlmZ d dlmZmZ d dlm	Z	 e 
dZdd Zed	d
 ZdS )    N)messages)login_required)renderredirect)CompanyUseraccount_loggerc                 C   s^   t jj| dd}| }d}|D ]}|jdkr|d7 }q|dkr+d|d _|d   t|S )NF)company
is_deletedr   Admin   )r   objectsfiltercountrolesaveint)r   company_userscompany_user_countadmin_countcompany_user r   :/var/www/rescue_company/accounts/views/add_company_user.pycount_active_users   s   

r   c              
   C   s  | j dkrtd| j   tj| ddd tdS z| jj}t|}t	d|j
 d|  W n( tyX } ztd	t|  tj| d
dd tdW  Y d }~S d }~ww t|t|jkrwtd|j
  tj| ddd tdS | jd}| jd}| jd}| jd}| jdd}| jdd}	| jdd}
|
dkrd}
nd}
|sd}|r|r|r|std| d| d|  tj| ddd tdS tjj|d rtd|  tj| d dd tdS tjj|d! rtd"|  tj| d#dd tdS z@tjj|||||d$}||_|	|_|  t|
|_|  t	d%|j
 d&|j  tj| d%|j
 d&|j d'd tdW S  tyw } ztd(t|  tj| d)dd tdW  Y d }~S d }~ww )*NPOSTzInvalid request method: zInvalid request method.danger)
extra_tagsz/manage_company_userzActive users count for company z: z#Error while counting active users: z Error while getting cmpany userszUser limit reached for company z5Cannot add more users to this company. Limit reached.phonepasswordemailnamer   StaffaddressAddress	is_activeTonF1234z Missing required fields. Phone: z	, Email: z, Name: zEMissing required fields. Phone: {phone}, Email: {email}, Name: {name})r   zPhone number already exists: zPhone number already exists.)r   zEmail already exists: zEmail number already exists.)r   r   r   r   r   zUser z added successfully to company successzError creating user: zError creating user.)methodloggerwarningr   errorr   userr   r   infor   	Exceptionstrr   number_of_logins_allowedr   getr   r   r   existscreate_userr   r!   r   boolr#   r&   )requestr   active_users_counter   r   r   r   r   r!   r#   r+   r   r   r   add_company_user   st   

 
r7   )loggingdjango.contribr   django.contrib.auth.decoratorsr   django.shortcutsr   r   accounts.modelsr   	getLoggerr(   r   r7   r   r   r   r   <module>   s    
