
    *.+h,	                     L    d dl mZ d dlT d dlmZ  G d dej                  ZdS )    )Path)*)cmf_evagit_groupc                        e Zd Zej        j        dgz   Zed             Zed             Zd Z	d Z
 fdZ fdZ xZS )CmfEvagitGroupnested_listc                     | j         j        s| j                                          t          t          j         d| j                    S )N/repos/)
url_prefix
is_definedloadr   configGIT_DIRselfs    +./modules/evagit/models/cmf_evagit_group.pypathzCmfEvagitGroup.path   sC    ) 	#O  """v~??do??@@@    c                     | j         j        s| j                                          t          t          j         d| j          d| j                   S )Nr
   	_deleted_)r   r   r   r   r   r   coder   s    r   path_deletedzCmfEvagitGroup.path_deleted   sM    ) 	#O  """v~SSdoSS	SSTTTr   c                 d    | j         r(t          j                            dd          | _        d S d S )Napp_gitT)sys_typesystem)is_newmodels	CmfFoldergetparentr   s    r   _calc_parentzCmfEvagitGroup._calc_parent   s:    ; 	P *..	$.OODKKK	P 	Pr   c                     t           j                            |           }|D ])}|                    |                                           *|S )ua   Костыль. Функционал данного метода должен уехать в ORMtree_parent)r   r   listextendr   )r   argskwargschildrenchilds        r   r   zCmfEvagitGroup.nested_list   sP    (--$-?? 	1 	1EOOE--//0000r   c                    | j         rt          j                            d|            | j                                        rt          d| j         dd           t          j                            d          }t                              | t          j
        |          }|                                  t                      j        |i |S )	Nperm_create_groupu   Группа с именем u    уже существуетT)abortzsystem.owner:default)r   )	namespacemembergit_role)r   r   CmfEvagitRolecheck_role_permissionr   exists	cmf_alertr    CmfEvagitRoleAssigngcurrent_usersavesuper)r   r(   r)   rolerole_assign	__class__s        r   r9   zCmfEvagitGroup.save$   s    ; 	 667JDQQQy!! oa$)aaaimnnnn'++1G+HHD 44~ 5  K
 uww|T,V,,,r   c                 x   t           j                            d|            t           j                            |           D ]}|                                 t           j                            |           D ]}|                                 t           j                            |           D ]}|                                 | j        	                                s$t                              d| j         d           n| j                            | j                    t                      j        |i |S )Nperm_delete_groupr$   )r/   zGroup z already been deleted)r   r2   r3   CmfEvagitRepor&   deleter   r6   r   r4   loggingwarningrenamer   r:   )r   r(   r)   repogroupr<   r=   s         r   rA   zCmfEvagitGroup.delete5   s&   223FMMM(--$-?? 	 	DKKMMMM*//D/AA 	 	ELLNNNN!5::T:JJ 	! 	!K    y!! 	0OOETYEEEFFFFIT.///uww~t.v...r   )__name__
__module____qualname__r   r   api_methodspropertyr   r   r"   r   r9   rA   __classcell__)r=   s   @r   r   r      s        "1=A
 
K A A XA
 U U XU
P P P  - - - - -"/ / / / / / / / /r   r   N)pathlibr   cmf.includemodules.evagit.fieldsr   r    r   r   <module>rQ      sm              2 2 2 2 2 2?/ ?/ ?/ ?/ ?/%4 ?/ ?/ ?/ ?/ ?/r   