B
    b                 @   s   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 eeG d	d
 d
ejZdS )    )gettext_lazy)admin)actions)
AccHoliday)Area)get_current_company_id)AdminRuntimeWarning)AccHolidayFormAccHolidayEditFormc                   sV   e Zd ZejgZdZdZeZe	Z
dd Z fddZ fddZd fd
d	Z  ZS )AccHolidayAdmin)idaliasZ
start_dateZduration_daytimezone)Zholiday__aliasZholiday__start_dateZholiday__duration_dayZtimezone__timezone_namec             C   s^   |j dg }|s&tdjtddx2|D ]*}x$|D ]}|jj|krHq6|| q6W q,W d S )Nareaz{error}Z#employee_actionError_areaIsRequired)error)ZPOSTZgetlist	Exceptionformat_r   pkZclone_holiday)selfrequestobjectsZareasobjr    r   ;G:\easytimepro\master/mysite/acc\admin\acc_holiday_admin.pyclone_to_area   s    

zAccHolidayAdmin.clone_to_areac                s<   |j dd }tjj|d |_tt| 	|||| d S )Nr   )r   )
datagetr   r   filterfirstr   superr   
save_model)r   r   r   formZchangearea_id)	__class__r   r   r!   #   s    zAccHolidayAdmin.save_modelc                sr  t t| |j|jjd}|jd}|j	ddkpF|j	ddk}t
 }|ry tt|dddd}W n  tk
r   ttd	Y nX |stjj|djd
dd}| r|j}ntjj|dd j}nLtjj|djd
dd}| r|d j}ntjj|dd j}|r>|j|d}|jjsn|jj}| rn|j| d }|S )N)Z
company_idZ_p1_area__id__intabler   Zexport[ ]Zacc_incorrect_lookup_parameters   )r   r   )Zarea__pk)Zarea__in)r    r   get_querysetr   usercurrent_companyGETr   pathfindr   intstrreplacer   r   r   r   r   ZexcludeZorder_byexistsr   r   Zis_superuserZget_auth_areaallZdistinct)r   r   Zqsr#   Zis_get_tabler,   Zcurrent_areaZ	auth_area)r$   r   r   r*   (   s4      


zAccHolidayAdmin.get_querysetNc                sJ   i }|s*t | jd|jdd | j|d< || tt| j||f|S )z7
        Use special form during user creation
        Z	area_id_Fr#   Nr"   )setattradd_formr-   r   updater    r   get_form)r   r   r   kwargsdefaults)r$   r   r   r8   M   s    

zAccHolidayAdmin.get_form)N)__name__
__module____qualname__r   ZCloneToAreaZlist_displayZlist_filterr	   r6   r
   r"   r   r!   r*   r8   __classcell__r   r   )r$   r   r      s   
%r   N)Zdjango.utils.translationr   r   mysiter   Z
mysite.accr   Zmysite.acc.modelsr   Zmysite.personnel.modelsr   Zmysite.att.utilsr   Zmysite.admin.exceptionsr   Zmysite.acc.formsr	   r
   registerZZKModelAdminr   r   r   r   r   <module>   s   