B
    b+                 @   s   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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mZ G dd deZee	G dd dejZdS )    )	ModelForm)gettext_lazy)adminconfig)Overtime)AddOvertimeOvertimeApproveOvertimeRevoke)OVERTIME_TYPE)forms)Employee)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ZejeddZ	ej
edded	Zejed
ddZ fddZG dd dZ  ZS )OvertimeChangeFormZovertime_field_employeeT)labelZdisabledZovertime_field_startTime)r   Zovertime_field_endTimeZovertime_field_overtimeType   )r   initialchoicesZovertime_field_applyReasonF)r   requiredc                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strZemployeer   )selfargskwargs)	__class__ 8G:\easytimepro\master/mysite/att\admin\overtime_admin.pyr      s    zOvertimeChangeForm.__init__c               @   s   e Zd ZeZdZdS )zOvertimeChangeForm.Meta)
start_timeend_timeovertime_typeapply_reasonN)__name__
__module____qualname__r   Zmodelr   r"   r"   r"   r#   Meta   s   r+   )r(   r)   r*   r   Z	CharField_r   ZDateTimeFieldr$   r%   ZChoiceFieldr
   r&   Z	TextFieldr'   r   r+   __classcell__r"   r"   )r!   r#   r      s   r   c                   sD   e Zd ZdZejd ZeZe	e
egZdZdd Z fddZ  ZS )OvertimeAdmin)idZget_emp_codeZget_emp_first_nameZget_emp_last_nameZget_emp_deptZget_emp_jobr&   r$   r%   r'   Z
apply_timeaudit_statusZget_audit_reasonZ
audit_timeZlast_approver)r&   r$   r%   r0   )z-idc             C   s   dS )NFr"   )r   requestr"   r"   r#   has_add_permission/   s    z OvertimeAdmin.has_add_permissionc       	         s   |j j}|j j}|j j}|j j}tt| |j|d}|j j	s|
 rX|j| d}|
 r~t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)Zemployee__company_id)Zemployee__department__in)Zarea__in)Zemployee__in)Zemployee__position__in
resign_emp0)Zemployee__status)userZcurrent_companyZget_auth_deptZget_auth_areaZget_auth_posr   r.   get_querysetfilterZis_superuserexistsallr   Zobjectsr   r   getr   r   r   )	r   r1   Z
company_idZ	auth_deptZ	auth_areaZauth_posZqsZemp_list_by_arear3   )r!   r"   r#   r6   2   s&     zOvertimeAdmin.get_queryset)r(   r)   r*   Zlist_displayr   ZEMPLOYEE_LIST_FILTERZlist_filterr   Zformr   r   r	   ZactionsZorderingr2   r6   r-   r"   r"   )r!   r#   r.   $   s   

r.   N)Zdjango.formsr   Zdjango.utils.translationr   r,   mysiter   r   Zmysite.att.modelsr   Zmysite.att.actionsr   r   r	   Zmysite.att.models_choicesr
   Zmysite.adminr   Z&mysite.personnel.models.model_employeer   Zdjango.db.modelsr   Zmysite.att.global_cacher   Zmysite.admin.modelsr   r   r   registerZZKModelAdminr.   r"   r"   r"   r#   <module>   s   