
    lh                     |    d dl  d dlZ G d dej                  j                  j
                  j                        Zy)    )*Nc                        e Zd ZdZej
                  j                  j                  j                  j                  dgz   Z	 fdZ
ddZed        Z fdZ fdZd	 Zdd
 fd
Z xZS )CmfAssetCatTnested_listc                 D    t        |   |i | | j                          y N)super_save_importscaffold_ui_form)selfargskwargs	__class__s      './modules/asset/models/cmf_asset_cat.pyr
   zCmfAssetCat._save_import
   s!    d-f-    Fc                 j    | j                   s|sy g d}t        j                  j                  | |       y )N)name
logic_typecode	asset_catasset_types	asset_tag)is_newmodelsr   _scaffold_ui_form)r   forcefieldss      r   r   zCmfAssetCat.scaffold_ui_form   s)    {{5X,,T6:r   c                 b   |j                   dk(  rdnd}t        j                  |j                  ||      }|j	                          t        |j                  j                  t        j                        r|j                  j                  dv sy|dk(  r$|j                  s;d|_
        |j                          n#|j                  sd|_        |j                          t        j                  d|d	
      }|j	                          |D ]*  }t        j                  |||dd      j	                          , y)uQ  
        Создает ui_form-у для актива/типа актива
        Args:
            cat (CmfAssetCat/CmfAssetTypeCat): Категория актива/категория типа актива
            fields (массив строк): Поля, которые надо добавлять на ui-форму
        r   CmfAssetCmfAssetType)r   cmf_model_nameparent)assetsr   NT_maingroup)r   r"   typeF)r   ui_form_groupr"   hidden
hide_empty)
class_namer   	CmfUiFormr   save
isinstancetree_parentvalue	CmfFoldersys_typeasset_ui_form_children_inherit	save_data#asset_type_ui_form_children_inheritCmfUiFormGroupCmfUiFormField)clscatr   
model_nameasset_ui_formr'   
field_names          r   r   zCmfAssetCat._scaffold_ui_form   s    $'>>]#BZ
((chhzZ](^ 3??00&2B2BCOO,,0II #55592:::>7--7=W^-_  	J!!}][`mr " df	r   c                 F    t        |   |i |}| j                          |S r   )r	   r,   r   )r   r   r   resr   s       r   r,   zCmfAssetCat.save9   s'    glD+F+
r   c                 *    t         |          ddgz   S )Ndefault_logic_typeztree_parent.sys_type)r	   save_preload_fields)r   r   s    r   r@   zCmfAssetCat.save_preload_fields>   s#    w*, "80
 
 	
r   c                     t         j                  j                  |       }|D ]!  }|j                  |j	                                # |S )uq   Костыль. Потом доработаем all_nested и включим в ORM или что-то такое)r.   )r   r   listextendr   )r   r   r   childschilds        r   r   zCmfAssetCat.nested_listC   sD    ##((T(: 	/EMM%++-.	/r   )TEXKOM_db_deletec                    t         j                  j                  dd| g|      D ]  } |j                  |d|i|  t	        |   |d|i|S )Nr"   =)filterinclude_deletedrF   )r   r+   rB   deleter	   )r   rF   r   r   r:   r   s        r   rK   zCmfAssetCat.deleteJ   sp    #--22c4(, 3 
 	UM !M  $T9ITVT		U
 w~tQ6FQ&QQr   )F)__name__
__module____qualname__	api_allowmodulesassetr   cmf_asset_catr   api_methodsr
   r   classmethodr   r,   r@   r   rK   __classcell__)r   s   @r   r   r      sv    I--&&44@@LLP
 
K ; ! !F


 .3 R Rr   r   )cmf.include"modules.asset.fields.cmf_asset_catrP   rQ   r   rR   r    r   r   <module>rY      s1     )LR'--&&44@@ LRr   