o
    hn                     @   s   d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlZdd	lmZmZ dd
lmZmZmZmZmZ edd Zedd Zedd Zedd Zeedd ZdS )    )renderredirectget_object_or_404)messages)login_required)JsonResponse)csrf_exempt)require_POSTN   )ShopTheme)ShopForm	ThemeFormMpesaSettingsFormSMTPSettingsFormSMSSettingsFormc                 C   s@  zt j }W n ty" } ztd|  d}W Y d}~nd}~ww ztj }W n tyE } ztd|  d}W Y d}~nd}~ww |svzt jjddddd}W n! tyu } ztd	|  t ddddd}W Y d}~nd}~ww |sz
tjjd
dd}W n ty } ztd|  td
dd}W Y d}~nd}~ww | jdkry| j	d}|dkrt
| j| j|d}| r|  t| d td S t| d td S |dkrt| j|d}| r|  t| d td S t| d td S |dkr't| j|d}| r|  t| d td S t| d td S |dkrPt| j|d}| rF|  t| d td S t| d td S |dkrut| j|d}| ro|  t| d td S t| d td S t
|d}t|d}t|d}t|d}	t|d}
t| d!||||||	|
d"S )#z%Main settings view with form handlingError fetching shop: NError fetching theme: Sales SharkNairobi, Kenya+254700000000info@salesshark.comnameaddressphoneemailError creating shop: light#28a745modeprimary_colorError creating theme: POST	form_typeshop_detailsinstance"Shop details updated successfully!z3Please correct the errors in the shop details form.mpesa_settingsz(Mpesa API settings updated successfully!z5Please correct the errors in the Mpesa settings form.smtp_settingsz)SMTP email settings updated successfully!z4Please correct the errors in the SMTP settings form.sms_settingsz&SMS API settings updated successfully!z3Please correct the errors in the SMS settings form.theme$Theme settings updated successfully!z5Please correct the errors in the theme settings form.zshop_backend:settingszsettings/shop_settings.html)shopr-   shop_details_formmpesa_settings_formsmtp_settings_formsms_settings_form
theme_form)r   objectsfirst	Exceptionprintr   createmethodr$   getr   FILESis_validsaver   successerrorr   r   r   r   r   r   )requestr/   er-   r%   formr0   r1   r2   r3   r4    rD   #/var/www/html/pos/settings/views.pysettings_view   s   

$"











rF   c              
   C   s   zt j }W n ty" } ztd|  d}W Y d}~nd}~ww |sSzt jjddddd}W n! tyR } ztd|  t ddddd}W Y d}~nd}~ww t| d	d
|iS )zView shop detailsr   Nr   r   r   r   r   r   zsettings/shop_details.htmlr/   )r   r5   r6   r7   r8   r9   r   )rA   r/   rB   rD   rD   rE   r&   u   s8   
	r&   c                 C   s   t j }|st jjddddd}| jdkr2t| j| j|d}| r1|	  t
| d td	S nt|d}t| d
||dS )zEdit shop detailsr   r   r   r   r   r$   r'   r)   r&   zsettings/edit_shop_details.html)rC   r/   )r   r5   r6   r9   r:   r   r$   r<   r=   r>   r   r?   r   r   )rA   r/   rC   rD   rD   rE   edit_shop_details   s(   


rG   c              
   C   s   zt j }W n ty" } ztd|  d}W Y d}~nd}~ww |sOz
t jjddd}W n tyN } ztd|  t ddd}W Y d}~nd}~ww | jdkrnt| j|d}|	 rm|
  t| d	 td
S nt|d}t| d||dS )zTheme settings viewr   Nr   r   r    r#   r$   r'   r.   zshop_backend:theme_settingszsettings/theme_settings.html)rC   r-   )r   r5   r6   r7   r8   r9   r:   r   r$   r=   r>   r   r?   r   r   )rA   r-   rB   rC   rD   rD   rE   theme_settings   s6   

rH   c              
   C   s   z8t | j}|dd}|dvrtddiddW S tj }|s*tjj|dd	}n||_	|
  td
|dW S  tyT } ztdt|iddW  Y d}~S d}~ww )zToggle theme via AJAXr-   r   )r   darkr@   zInvalid theme modei  )statusr   r    T)r?   r-   i  N)jsonloadsbodyr;   r   r   r5   r6   r9   r!   r>   r7   str)rA   data
theme_moder-   rB   rD   rD   rE   toggle_theme   s   
 rQ   )django.shortcutsr   r   r   django.contribr   django.contrib.auth.decoratorsr   django.httpr   django.views.decorators.csrfr   django.views.decorators.httpr	   rK   modelsr   r   formsr   r   r   r   r   rF   r&   rG   rH   rQ   rD   rD   rD   rE   <module>   s(   
h


