a
    ¤Q•hS  ã                   @   sÄ   d dl mZ 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ZG dd	„ d	e
ƒZG d
d„ de
ƒZe e¡G dd„ dejƒƒZe e¡G dd„ dejƒƒZe e¡G dd„ dejƒƒZdS )é    )Úadminé   )ÚEstufaÚSelecaoÚLogFinalizacaoEstufa)Úgettext_lazy)ÚSimpleListFilter)ÚHttpResponseNc                   @   s(   e Zd ZedƒZdZdd„ Zdd„ ZdS )ÚAnoEstufaFiltroÚAnoÚanoc                 C   s,   t dd„ |jj ¡ D ƒƒ}dd„ t|ƒD ƒS )Nc                 s   s   | ]}|j r|j jV  qd S ©N)Údata_estufaÚyear©Ú.0Úobj© r   ú)/var/www/sistema_ama/apps/estufa/admin.pyÚ	<genexpr>   ó    z*AnoEstufaFiltro.lookups.<locals>.<genexpr>c                 S   s   g | ]}|t |ƒf‘qS r   ©Ústr©r   r   r   r   r   Ú
<listcomp>   r   z+AnoEstufaFiltro.lookups.<locals>.<listcomp>©ÚsetÚmodelÚobjectsÚallÚsorted©ÚselfÚrequestÚmodel_adminZanosr   r   r   Úlookups   s    zAnoEstufaFiltro.lookupsc                 C   s   |   ¡ r|j|   ¡ d�S |S )N)Zdata_estufa__year©ÚvalueÚfilter©r"   r#   Úquerysetr   r   r   r*      s    zAnoEstufaFiltro.querysetN©Ú__name__Ú
__module__Ú__qualname__Ú_ÚtitleÚparameter_namer%   r*   r   r   r   r   r
   
   s   r
   c                   @   s(   e Zd ZedƒZdZdd„ Zdd„ ZdS )ÚAnoSelecaoFiltror   r   c                 C   s,   t dd„ |jj ¡ D ƒƒ}dd„ t|ƒD ƒS )Nc                 s   s   | ]}|j r|j jV  qd S r   )Údata_selecaor   r   r   r   r   r      r   z+AnoSelecaoFiltro.lookups.<locals>.<genexpr>c                 S   s   g | ]}|t |ƒf‘qS r   r   r   r   r   r   r      r   z,AnoSelecaoFiltro.lookups.<locals>.<listcomp>r   r!   r   r   r   r%      s    zAnoSelecaoFiltro.lookupsc                 C   s   |   ¡ r|j|   ¡ d�S |S )N)Zdata_selecao__yearr&   r)   r   r   r   r*   !   s    zAnoSelecaoFiltro.querysetNr+   r   r   r   r   r2      s   r2   c                   @   sv   e Zd ZdZdedfZdZddgZdZdZ	dd	d
ifdd	diffZ
ddgZejdd�dd„ ƒZejdd�dd„ ƒZdS )ÚEstufaAdmin)Ú	semeaduraÚget_numero_loter   Úquantidade_mortalidadeÚ
finalizadoÚregistrado_porr8   r9   ©Úsemeadura__numero_mudaZsemeadura__lote__numero_loter5   r   ©r6   õ   InformaÃ§Ãµes da SemeaduraÚfields©r5   r6   zDados de Mortalidade)r   r7   r8   r9   Úmarcar_como_finalizadoÚexportar_csvzMarcar como finalizado©Údescriptionc                 C   s"   |j dd�}|  ||› d�¡ d S )NT)r8   z% registros marcados como finalizados.©ÚupdateÚmessage_user©r"   r#   r*   Úupdatedr   r   r   r@   >   s    z"EstufaAdmin.marcar_como_finalizadoúExportar para CSVc                    s^   t dd�}d|d< t |¡}| dd„ tjjD ƒ¡ |D ] ‰ | ‡ fdd„tjjD ƒ¡ q8|S )Nútext/csv©Úcontent_typez attachment; filename=estufas.csvúContent-Dispositionc                 S   s   g | ]
}|j ‘qS r   ©Úname©r   Úfieldr   r   r   r   H   r   z,EstufaAdmin.exportar_csv.<locals>.<listcomp>c                    s   g | ]}t ˆ |jƒ‘qS r   ©ÚgetattrrO   rP   ©r   r   r   r   J   r   )r	   ÚcsvÚwriterÚwriterowr   Ú_metar>   ©r"   r#   r*   ÚresponserV   r   rT   r   rA   C   s    

zEstufaAdmin.exportar_csvN)r,   r-   r.   Úlist_displayr
   Úlist_filterÚsearch_fieldsÚautocomplete_fieldsÚdate_hierarchyÚreadonly_fieldsÚ	fieldsetsÚactionsr   Úactionr@   rA   r   r   r   r   r4   '   s$   
ÿÿü	


r4   c                   @   sv   e Zd ZdZdedfZdZddgZdZdZ	dd	d
ifdd	diffZ
ddgZejdd�dd„ ƒZejdd�dd„ ƒZdS )ÚSelecaoAdmin)r5   r6   r3   Úquantidade_selecaoÚvendar9   rf   r9   r:   r5   r3   r<   r=   r>   r?   u   Dados de SeleÃ§Ã£o)r3   re   rf   r9   r@   rA   zMarcar como vendarB   c                 C   s"   |j dd�}|  ||› d�¡ d S )NT)rf   u     seleÃ§Ãµes marcadas como venda.rD   rG   r   r   r   r@   e   s    z#SelecaoAdmin.marcar_como_finalizadorI   c                    s^   t dd�}d|d< t |¡}| dd„ tjjD ƒ¡ |D ] ‰ | ‡ fdd„tjjD ƒ¡ q8|S )NrJ   rK   z!attachment; filename=selecoes.csvrM   c                 S   s   g | ]
}|j ‘qS r   rN   rP   r   r   r   r   o   r   z-SelecaoAdmin.exportar_csv.<locals>.<listcomp>c                    s   g | ]}t ˆ |jƒ‘qS r   rR   rP   rT   r   r   r   q   r   )r	   rU   rV   rW   r   rX   r>   rY   r   rT   r   rA   j   s    

zSelecaoAdmin.exportar_csvN)r,   r-   r.   r[   r2   r\   r]   r^   r_   r`   ra   rb   r   rc   r@   rA   r   r   r   r   rd   N   s$   
ÿÿü	


rd   c                   @   sF   e Zd ZdZdZdZdZdd„ Zde_dd	„ Z	ddd„Z
ddd„Zd
S )ÚLogFinalizacaoEstufaAdmin)r5   Únumero_loteÚ	data_loteÚdata_exclusaoÚhora_exclusaoÚusuario_exclusaoÚnome_usuario_exclusaoÚmotivo_formatado)rj   Úmotivo_exclusao)rh   rm   ro   )	r5   rh   ri   rj   rk   rl   rm   ro   Úmotivo_exclusao_outrosc                 C   s(   |j dkr"|jr"|j › d|j› �S |j S )NÚOutrosz - )ro   rp   )r"   r   r   r   r   rn   †   s    z*LogFinalizacaoEstufaAdmin.motivo_formatadoÚMotivoc                 C   s   dS ©NFr   )r"   r#   r   r   r   Úhas_add_permission�   s    z,LogFinalizacaoEstufaAdmin.has_add_permissionNc                 C   s   dS rs   r   ©r"   r#   r   r   r   r   Úhas_change_permission�   s    z/LogFinalizacaoEstufaAdmin.has_change_permissionc                 C   s   dS rs   r   ru   r   r   r   Úhas_delete_permission“   s    z/LogFinalizacaoEstufaAdmin.has_delete_permission)N)N)r,   r-   r.   r[   r\   r]   r`   rn   Úshort_descriptionrt   rv   rw   r   r   r   r   rg   u   s   
rg   )Zdjango.contribr   Úmodelsr   r   r   Údjango.utils.translationr   r/   Údjango.contrib.adminr   Údjango.httpr	   rU   r
   r2   ÚregisterÚ
ModelAdminr4   rd   rg   r   r   r   r   Ú<module>   s   &&