U
    ]d                     @   s*   d dl T d dlmZ G dd dejZdS )    )*)cmf_approve_groupc                   @   s   e Zd Zdd ZdS )CmfApproveGroupc                 C   s   g }| | D ]}t |tjr(|| qt |tjr|r|jdksDqtjjdd|gdd|ggdgd}|D ]}||j	 7 }qjq||j
	 7 }q|S )u  Получает всех аппруверов, включая вложенных в персонгруппы, принадлежащих ролям итп
        app_type - тип получаемых аппруверов (approvers/master_approvers)
        Z
CmfProjectparentz==Zproject_role=members)filterZfields)
isinstanceZmodelsZ	CmfPersonappendZCmfProjectRole
class_nameZCmfProjectRoleAssignlistr   Z
all_nestedZ
rg_members)selfZapp_typeZroot_parentresultZapproverZassignsZassign r   $./common/models/cmf_approve_group.pyget_all_approvers   s     z!CmfApproveGroup.get_all_approversN)__name__
__module____qualname__r   r   r   r   r   r      s   r   N)Zcmf.includeZcommon.fieldsr   r   r   r   r   r   <module>   s   