a
    ;Xh                     @   s   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
mZ d dl mZ d dlmZ d dlmZ d d	lmZ d d
lmZ d d	lmZ d d
lmZ dd Zdd Zdd Zdd Zdd Zdd ZdS )    )renderredirect)get_user_info)now)MetasModels)	MetasFormMetasEditForm)get_object_or_404)JsonResponse)render_to_string)messages)	mark_safec                 C   s   | j dkrnt| j}| r\|jdd}| jjr8| j|_|  t	| t
d tddiS td|jdS n$t }tdd	|i| d
}td|iS dS )z'
    Cria uma nova meta via modal.
    POSTF)commitug   <i class="fa-solid fa-circle-check"></i> <strong class="mx-1">Sucesso!</strong> Meta criada com êxito.successT)r   errorszmetas/create_meta_modal.htmlformrequest	html_formN)methodr   r   is_validsaveuseris_authenticated
criado_porr   r   r   r
   r   r   )r   r   metar    r   4/var/www/viveiro_mudafortebrasil/apps/metas/views.pymetas_create   s    

r   c                 C   s   t | jj}tjjddd}g }|D ]^}|  |||j	j
| |j|j|j|j|j|j|jr|t|jdr||jjjjndd
 q(||d}t| d|S )	z&
    Lista todas as metas ativas.
    F
finalizado-data_criacaousuariofuncionarioDesconhecido)
objespecie	tipo_metadata_inicial
data_finalquantidade_metaquantidade_feitastatus
percentualr   
metas_info	user_infozmetas/lista_metas.html)r   r   idr   objectsfilterorder_byr   appendr&   nome_popularget_tipo_meta_displayr(   r)   
quantidadequantidade_acumuladar,   percentual_cumpridor   hasattrr#   funcionarionome_completor   )r   r0   Zmetas_ativasr/   r   contextr   r   r   
metas_list'   s*     
r?   c                 C   sv   t | jj}tjjddd}g }|D ]6}|||jj	|
 |j|j|j|j|j|jd	 q(||d}t| d|S )z+
    Lista todas as metas finalizadas.
    Tr    r"   )	r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   z"metas/lista_metas_finalizadas.html)r   r   r1   r   r2   r3   r4   r5   r&   r6   r7   r(   r)   r8   r9   r,   r:   r   )r   r0   Zmetas_finalizadasr/   r   r>   r   r   r   metas_finalized_listF   s&    
r@   c                 C   s   t t|d}| jdkrbt| j|d}| rP|  t| t	d t
ddiS t| t	d n
t|d}td||d	| d
}t
d|iS )z#
    Edita uma meta existente.
    pkr   )instanceuh   <i class="fa-solid fa-circle-check"></i> <strong class="mx-1">Sucesso!</strong> Meta editada com êxito.r   Tu   <i class="fa-solid fa-triangle-exclamation"></i> <strong class="mx-1">Erro!</strong> Não foi possível editar a meta. Verifique os dados informados.zmetas/edit_meta_modal.html)r   r   r   r   )r	   r   r   r   r   r   r   r   r   r   r
   errorr   )r   rB   r   r   r   r   r   r   
metas_editb   s    

rE   c                 C   s\   t t|d}| jdkr:|  t| td tddiS t| td tddd	S d
S )u&   
    Exclui uma meta específica.
    rA   r   uj   <i class="fa-solid fa-circle-check"></i> <strong class="mx-1">Sucesso!</strong> Meta excluída com êxito.r   Tu{   <i class="fa-solid fa-triangle-exclamation"></i> <strong class="mx-1">Erro!</strong> Requisição inválida para exclusão.Fu   Requisição inválida.)r   messageN)	r	   r   r   deleter   r   r   r
   rD   r   rB   r   r   r   r   metas_deletey   s    
rI   c                 C   s\   t t|d}| jdkrDd|_tj|_|  t| t	d t
dS t| t	d t
dS )u(   
    Finaliza uma meta específica.
    rA   r   Tuk   <i class="fa-solid fa-circle-check"></i> <strong class="mx-1">Sucesso!</strong> Meta finalizada com êxito.r?   uy   <i class="fa-solid fa-triangle-exclamation"></i> <strong class="mx-1">Erro!</strong> Não foi possível finalizar a meta.)r	   r   r   r!   STATUS_FINALIZADA_COMPLETAr,   r   r   r   r   r   rD   rH   r   r   r   metas_finalize   s    
rK   N)django.shortcutsr   r   apps.dashboard.utilsr   django.utils.timezoner   Zapps.metas.modelsr   apps.metas.formsr   r   r	   django.httpr
   django.template.loaderr   django.contribr   django.utils.safestringr   r   r?   r@   rE   rI   rK   r   r   r   r   <module>   s"   