U
    r[cv                     @   s*   d dl T d dlmZ G dd dejZdS )    )*)cmf_project_role_assignc                       sL   e Zd Z fddZ fddZ fddZdd Zd	d
 Zdd Z  Z	S )CmfProjectRoleAssignc                    s   t   dddg S )Nparentzproject_role.codemembers)supersave_preload_fieldsself	__class__ 3./modules/project/models/cmf_project_role_assign.pyr      s
    z(CmfProjectRoleAssign.save_preload_fieldsc                    s   t  j||}tj  |S )N)r   savemodelsCmfProjectPermSchemetrigger_reloadr
   argskwargsresr   r   r   r      s    
zCmfProjectRoleAssign.savec                    s8   | j   | j jd| j d t j||}tj  |S NzPPP-PR-ADMIN)obj)r   loadcheck_project_role_accessr   deleter   r   r   r   r   r   r   r      s
    

zCmfProjectRoleAssign.deletec                 C   s   | j jd| j d d S r   )r   r   r	   r   r   r   _check_project_perm   s    z(CmfProjectRoleAssign._check_project_permc                 C   s^  | j jr*| j jr*| j jjdkr*|   d S | j r@| j jdks@d S g }g }| jjrt| jjt| jj D ]}|| qht| jjt| jj D ]}|| qn| jr|j| j  |D ]P}|j	dkr|j
dd |jr|  q|j	dkrd|_|  qtddd q|D ]J}|j	dkr<|j
dd |jrV|  n|j	dkrd|_|  qd S )	Nsdesk-client:default	CmfPersonTforce
CmfCompanyun   На эту роль можно назначать только Компании и Пользователей)abortF)project_role
is_changedoldcode_calc_sdesk_clients_deleter   setnewappend
class_name_calc_servicedesk_allowr   servicedesk_allowZ	cmf_alert)r
   Zneed_deleteZneed_addr   r   r   r   _calc_sdesk_clients   s>    




z(CmfProjectRoleAssign._calc_sdesk_clientsc                 C   sd   | j r| j jdksd S | jD ]B}|jdkrF|jdd |jr^|  q|jdkrd|_|  qd S )Nr   r   Tr   r!   F)r#   r&   r   r+   r,   r$   r   r-   )r
   r   r   r   r   r'   D   s    



z/CmfProjectRoleAssign._calc_sdesk_clients_delete)
__name__
__module____qualname__r   r   r   r   r.   r'   __classcell__r   r   r   r   r      s   &r   N)Zcmf.includeZmodules.project.fieldsr   r   r   r   r   r   <module>   s   