U
    þ=e|	  ã                   @   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ed‡ fdd„	ƒZ‡  ZS )ÚCmfApproveGroupc           	      C   s¾   g }| | D ]¬}t |tjƒrR| |j¡}|dkr<| |¡ q¸|D ]}| |¡ q@qt |tjƒrª|r|jdksnqtjj	dd|gdd|ggdgd}|D ]}||j
 ¡ 7 }q”q||j ¡ 7 }q|S )	u  ÐŸÐ¾Ð»ÑƒÑ‡Ð°ÐµÑ‚ Ð²ÑÐµÑ… Ð°Ð¿Ð¿Ñ€ÑƒÐ²ÐµÑ€Ð¾Ð², Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ‹Ñ… Ð² Ð¿ÐµÑ€ÑÐ¾Ð½Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹, Ð¿Ñ€Ð¸Ð½Ð°Ð´Ð»ÐµÐ¶Ð°Ñ‰Ð¸Ñ… Ñ€Ð¾Ð»ÑÐ¼ Ð¸Ñ‚Ð¿
        app_type - Ñ‚Ð¸Ð¿ Ð¿Ð¾Ð»ÑƒÑ‡Ð°ÐµÐ¼Ñ‹Ñ… Ð°Ð¿Ð¿Ñ€ÑƒÐ²ÐµÑ€Ð¾Ð² (approvers/master_approvers)
        NZ
CmfProjectÚparentú==Zproject_roleú=Úmembers)ÚfilterZfields)Ú
isinstanceÚmodelsÚ	CmfPersonZextract_var_objÚcodeÚappendZCmfProjectRoleÚ
class_nameZCmfProjectRoleAssignÚlistr   Z
all_nestedZ
rg_members)	ÚselfZapp_typeZroot_parentÚobjÚresultZapproverZextracted_membersZassignsZassign© r   ú$./common/models/cmf_approve_group.pyÚget_all_approvers   s(    ÿÿz!CmfApproveGroup.get_all_approversNc                    sz   |dkr`|sg }|si }|  d¡ |  d¡ dtjjdddgg|d< tƒ j|fd||d	œ|—ŽS tƒ j|f||d
œ|—ŽS )NZ	approversz-systemÚnameÚORÚsystemr   Tr   )Zinclude_hiddenÚorder_byÚmodels_filters)r   r   )r   r   r   Zdefault_options_filterÚsuperÚfield_options_list)ÚclsZrelation_field_namer   r   Úkwargs©Ú	__class__r   r   r   #   s,    

ý ÿþÿÿz"CmfApproveGroup.field_options_list)NN)Ú__name__Ú
__module__Ú__qualname__r   Úclassmethodr   Ú__classcell__r   r   r    r   r      s   r   N)Zcmf.includeZcommon.fieldsr   r   r   r   r   r   Ú<module>   s   