
    Pbiz                     l    d dl mZmZmZ d dl ddlmZ  edd      Z G d dej                        Zy	)
    )ListOptionalTypeVar)*   )cmf_attachment_schemeTCmfAttachmentScheme)boundc                        e Zd Zej                  j
                  ddgz   Zdddeee      de	ded   fd	Z
d
 Zdef fdZ xZS )r
   categories_listcopyN)fieldsr   
project_idreturnz"models.CmfAttachmentSchemeCategoryc                    ddg}|r|j                  |       t        j                  j                  dd| j                  g|      }|D cg c]  }|j                  |      s| }}|S c c}w )Naccess_memberszcategory.nameparent=)filterr   )extendmodelsCmfAttachmentSchemeCategorylistidcheck_category_access)selfr   r   argskwargsdefault_fields
categoriescategorys           /./modules/files/models/cmf_attachment_scheme.pyr   z#CmfAttachmentScheme.categories_list   sz     +O<!!&)77<<c477+! = 

 0:h8X=[=[\f=ghh
h is   
A)!A)c                     | j                   j                  rY| j                   rLt        j                  j	                  g ddd| j
                  gg      }|rd|_         |j                          y y y y )N)
is_defaultr   Tr   z!=)r   F)r%   
is_changedr   r
   getr   save)r   prev_default_schemes     r#   _calc_is_defaultz$CmfAttachmentScheme._calc_is_default   sl    ??%%$//"("<"<"@"@1D$3HI #A # #16#.#((* #	 +:%    c                 B    | j                          t        |   |i |S )N)r*   superr(   )r   r   r   	__class__s      r#   r(   zCmfAttachmentScheme.save$   s#    w|T,V,,r+   )__name__
__module____qualname__r   r
   api_methodsr   r   strintr   r*   r	   r(   __classcell__)r.   s   @r#   r
   r
   	   sg    ';;GGK\^dJeeK 48%d3i0EH	2	3+-q - -r+   N)	typingr   r   r   cmf.includer   r   r	   r
    r+   r#   <module>r9      s1    * *  *C,--/CC -r+   