B
    b4                 @   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
 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mZ G dd deZeeG dd dejZdS )    )adminconfig)forms)LeaveSettings)Employee)AddLeaveSettings)db_const)	ModelForm)gettext_lazy)Q)
C_ATT_RULE)STATUS_VALIDSTATUS_RESIGN_PENDINGc                   s   e Zd ZejedddZejeddej	dZ
ejeddZejed	ddejd
Zejedddejd
Zejedddejd
ZejeddejdZ fddZG dd dZ  ZS )LeaveSettingsChangeFormZleaveSettings_field_employeeT)labelZdisabledZatt_model_allotmenttyper   )r   initialchoicesZatt_model_effectivedate)r   Zatt_model_days)r   r   Z	min_valueZ	max_valueZatt_model_maxleaveg      ?Zatt_model_carryforwardZatt_model_autoincrementc                sD   t t| j|| d| jd jjd< | jjr@t| jj	| jd _
d S )NTempreadonly)superr   __init__fieldsZwidgetZattrsinstanceZpkstremployeer   )selfargskwargs)	__class__ =G:\easytimepro\master/mysite/att\admin\leavesettings_admin.pyr      s    z LeaveSettingsChangeForm.__init__c               @   s    e Zd ZeZddddddgZdS )zLeaveSettingsChangeForm.Metaallotment_typeeffective_datedaysmax_leave_per_monthauto_deductcarry_forward_limitN)__name__
__module____qualname__r   Zmodelr   r   r   r   r    Meta%   s   r*   )r'   r(   r)   r   Z	CharField_r   ZChoiceFieldr   ZALLOTMENT_TYPE_CHOICEr!   Z	DateFieldr"   Z
FloatFieldZMAX_LEAVE_PER_YEARr#   ZMAX_LEAVE_PER_MONTHr$   r&   ZAUTO_DEDUCT_CHOICEr%   r   r*   __classcell__r   r   )r   r    r      s   



r   c                   s8   e Zd ZdZejd ZdZeZ	e
gZ fddZ  ZS )LeaveSettingsAdmin)Zget_emp_codeZget_emp_first_nameZget_emp_last_nameZget_emp_deptZget_emp_jobr!   r"   r#   r$   r&   r%   )Zemployee__department__dept_codeZemployee__department__dept_nameZ!employee__position__position_codeZ!employee__position__position_nameZemployee__area__area_codeZemployee__area__area_name)z-idc       	         s   |j j}tt| |j|d}|j js|j j}|j j}|j j	}|
 r^|j| dd}|
 rtjj| d}|j|d}|
 r|j| d}tt|d}|dkr|ttd	td d	B ttd	B }|S )
N)
company_id)Zemployee__department__inr   )Zarea__in)Zemployee__in)Zemployee__position__in
resign_emp0)Zemployee__status)userZcurrent_companyr   r-   get_querysetfilterZis_superuserZget_auth_deptZget_auth_areaZget_auth_posexistsallZselect_relatedr   Zobjectsr   r   getr   r   r   )	r   Zrequestr.   ZqsZ	auth_deptZ	auth_areaZauth_posZemp_list_by_arear/   )r   r   r    r2   <   s$     zLeaveSettingsAdmin.get_queryset)r'   r(   r)   Zlist_displayr   ZEMPLOYEE_LIST_FILTERZlist_filterZorderingr   Zformr   Zactionsr2   r,   r   r   )r   r    r-   -   s   
r-   N)mysiter   r   Zmysite.adminr   Zmysite.att.modelsr   Zmysite.personnel.modelsr   Zmysite.att.actionsr   Z
mysite.attr   Zdjango.formsr	   Zdjango.utils.translationr
   r+   Zdjango.db.modelsr   Zmysite.att.global_cacher   Zmysite.admin.modelsr   r   r   registerZZKModelAdminr-   r   r   r   r    <module>   s   