o
    \fgc                     @   sH   d dl mZ ddlmZ d dlmZ ejeedG dd dejZdS )	    )admin   )LeaveRequest)
admin_site)sitec                       s   e Zd ZdZdZdZdZdZdddifd	dd
ifdddifdddiffZdd Z	de	_
 fddZdddZdddZdd Z fddZ  ZS )LeaveRequestAdmin)employee
leave_type
start_dateend_datestatusdays_requested)r   r	   )employee__user__usernameemployee__user__first_nameemployee__user__last_name)z-start_date)r   zEmployee Informationfields)r   zLeave Details)r	   r
   r   r   Statusr   Comments)reason
hr_commentregistrar_commentc                 C   s@   |j r|jr|j|j  jd }| d|dkrd S d S dS )Nr   z days -)r
   r   days)selfobjr    r   "/var/www/html/wtlms/leave/admin.pyr      s   z LeaveRequestAdmin.days_requestedDaysc                    sJ   t  |}t|jdr!|jjj}|dkr|S |dkr!|jddS | S )Nr   HRREGHR_APPROVEDr   )superget_querysethasattruserr   rolefilternone)r   requestqsr(   	__class__r   r   r%   %   s   
zLeaveRequestAdmin.get_querysetNc                 C   sF   |rt |jds
dS |jjj}|dkr|jdkS |dkr!|jdkS dS )Nr   Fr!   
PENDING_HRr"   r#   r&   r'   r   r(   r   )r   r+   r   r(   r   r   r   has_change_permission1   s   


z'LeaveRequestAdmin.has_change_permissionc                 C   s,   |rt |jds
dS |jjjdko|jdkS )Nr   Fr!   r/   r0   )r   r+   r   r   r   r   has_delete_permission=   s   z'LeaveRequestAdmin.has_delete_permissionc                 C   s   dS )NFr   )r   r+   r   r   r   has_add_permissionC   s   z$LeaveRequestAdmin.has_add_permissionc                    s   |rZt |jdrZ|jjj}|dkr4d|jv r4|jdkr%d|j  |_n5|jdkr3d|j  |_n&|dkrZd|jv rZ|jd	krLd|j  |_n|jdkrZd|j  |_t	 
|||| d S )
Nr   r!   r   r#   zApproved by REJECTEDzRejected by r"   APPROVED)r&   r'   r   r(   changed_datar   get_full_namer   r   r$   
save_model)r   r+   r   formchanger(   r-   r   r   r8   G   s   




zLeaveRequestAdmin.save_model)N)__name__
__module____qualname__list_displaylist_filtersearch_fieldsorderingreadonly_fields	fieldsetsr   short_descriptionr%   r1   r2   r3   r8   __classcell__r   r   r-   r   r      s4    

r   N)	django.contribr   modelsr   wtlms.adminr   register
ModelAdminr   r   r   r   r   <module>   s
    