o
    f*h                     @   s   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
 ejee
dG dd	 d	ejZG d
d dejZG dd deZejee
dG dd dejZe
ee dS )    )admin)	UserAdmin)User   )EmployeeCompany)
admin_site)sitec                   @   s   e Zd ZdZdZdS )CompanyAdmin)namecontact_emailcontact_phoneaddress)r   r   N)__name__
__module____qualname__list_displaysearch_fields r   r   %/var/www/html/wtlms/accounts/admin.pyr
      s    r
   c                   @   s   e Zd ZeZdZdZdZdS )EmployeeInlineFzEmployee Details)role
department	basic_payannual_leave_daysaccumulated_leave_daysN)r   r   r   r   model
can_deleteverbose_name_pluralfieldsr   r   r   r   r      s
    r   c                       sp   e Zd ZefZdZdZdZdZdd Z	de	_
de	_d	d
 Zde_
de_dd Zde_
de_d fdd	Z  ZS )CustomUserAdmin)usernameemail
first_name	last_nameget_departmentget_roleget_basic_pay)employee__role)r!   r#   r$   r"   r(   employee__department)r!   c                 C   s   t |dr|jjp
dS dS Nemployee-)hasattrr+   r   selfobjr   r   r   r%      s   
zCustomUserAdmin.get_department
Departmentr)   c                 C   s   t |dr
|j S dS r*   )r-   r+   get_role_displayr.   r   r   r   r&       s   

zCustomUserAdmin.get_roleRoler(   c                 C   s   t |drd|jjdS dS )Nr+   Kz,.2fr,   )r-   r+   r   r.   r   r   r   r'   '   s   
zCustomUserAdmin.get_basic_payz	Basic Payemployee__basic_payNc                    s   |sg S t  ||S N)superget_inline_instances)r/   requestr0   	__class__r   r   r8   .   s   z$CustomUserAdmin.get_inline_instancesr6   )r   r   r   r   inlinesr   list_filterr   orderingr%   short_descriptionadmin_order_fieldr&   r'   r8   __classcell__r   r   r:   r   r       s     r    c                       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fZ fddZ	 fddZ
  ZS )EmployeeAdmin)usercompanyr   r   r   r   r   )r   rD   r   )user__usernameuser__first_nameuser__last_namer   company__namer   )rE   )r   zEmployee Informationr   )rC   rD   r   Compensation)r   zLeave Details)r   r   c                    s   t  |}|jddS )NT)user__is_active)r7   get_querysetfilter)r/   r9   qsr:   r   r   rK   G   s   zEmployeeAdmin.get_querysetc                    s&   |sd|_ d|_t |||| d S )N   r   )r   r   r7   
save_model)r/   r9   r0   formchanger:   r   r   rO   L   s   zEmployeeAdmin.save_model)r   r   r   r   r=   r   r>   readonly_fields	fieldsetsrK   rO   rA   r   r   r:   r   rB   3   s$    rB   N)django.contribr   django.contrib.auth.adminr   django.contrib.auth.modelsr   modelsr   r   wtlms.adminr   register
ModelAdminr
   StackedInliner   r    rB   r   r   r   r   <module>   s    ! 