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 d d	lmZmZ e e
¡G d
d„ dejƒƒZdS )é    )Úgettext_lazy)Úadmin)Úactions)ÚArea)Ú	AccGroups)ÚActionTuple)Úget_current_company_id)ÚAdminRuntimeWarning)ÚAccGroupFormÚAccGroupEditFormc                   sf   e Zd ZdZdZeZeZe	e
dƒejejfƒfZdd„ Z‡ fdd„Z‡ fdd	„Zd‡ fdd„	Z‡  ZS )ÚAccGroupsAdmin)ÚidÚgroup_noÚ
group_nameZverify_modeZ	timezone1Z	timezone2Z	timezone3Zis_include_holiday)r   r   Zop_menu_group_groupMenuc             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_group)ÚselfÚrequestÚobjectsZareasÚobjr   © r   ú:G:\easytimepro\master/mysite/acc\admin\acc_groups_admin.pyÚclone_to_area    s    

zAccGroupsAdmin.clone_to_areac                s:   |j  d¡}tjj|d ¡ |_tt| ƒ 	||||¡ d S )Nr   )r   )
ÚdataÚgetr   r   ÚfilterÚfirstr   Úsuperr   Ú
save_model)r   r   r   ÚformZchanger   )Ú	__class__r   r   r"   *   s    zAccGroupsAdmin.save_modelc                sn  t t| ƒ |¡j|jjd}|j d¡}|j 	d¡dkpF|j 	d¡dk}t
ƒ }|rày tt|ƒ dd¡ dd¡ƒ}W n  tk
r’   ttd	ƒƒ‚Y nX |sÞtjj|djd
d d¡}| ¡ rÄ|j}ntjj|d d¡ ¡ j}nHtjj|djd
d d¡}|r|d j}ntjj|d d¡ ¡ j}|r:|j|d}|jjsj|jj}| ¡ rj|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qsÚarea_idZis_get_tabler,   Zcurrent_areaZ	auth_area)r$   r   r   r*   /   s4      

zAccGroupsAdmin.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_Fr5   Nr#   )ÚsetattrÚadd_formr-   r   Úupdater!   r   Úget_form)r   r   r   ÚkwargsÚdefaults)r$   r   r   r9   S   s    

zAccGroupsAdmin.get_form)N)Ú__name__Ú
__module__Ú__qualname__Zlist_displayZlist_filterr
   r7   r   r#   r   r   r   ZCloneToAreaZSetEmployeeGroupZaction_setsr   r"   r*   r9   Ú__classcell__r   r   )r$   r   r      s   
$r   N)Zdjango.utils.translationr   r   Úmysiter   Z
mysite.accr   Zmysite.personnel.modelsr   Zmysite.acc.modelsr   Zmysite.admin.actionr   Zmysite.att.utilsr   Zmysite.admin.exceptionsr	   Zmysite.acc.formsr
   r   ÚregisterZZKModelAdminr   r   r   r   r   Ú<module>   s   