U
    lh                     @   s,   d dl T d dlZG dd dejjjjZdS )    )*Nc                       s|   e Zd ZdZejjjjj	dg Z	 fddZ
dddZedd	 Z fd
dZ fddZdd Zdd fdd
Z  ZS )CmfAssetCatTnested_listc                    s   t  j|| |   d S N)super_save_importscaffold_ui_form)selfargskwargs	__class__ './modules/asset/models/cmf_asset_cat.pyr   
   s    zCmfAssetCat._save_importFc                 C   s0   | j s|sd S ddddddg}tj| | d S )NnameZ
logic_typecodeZ	asset_catasset_typesZ	asset_tag)Zis_newmodelsr   _scaffold_ui_form)r	   forcefieldsr   r   r   r      s    
zCmfAssetCat.scaffold_ui_formc                 C   s   |j dkrdnd}tj|j||d}|  t|jjtjrH|jj	dksLdS |dkrj|j
s~d|_
|  n|js~d|_|  tjd|d	d
}|  |D ]}tj|||ddd  qdS )uQ  
        Создает ui_form-у для актива/типа актива
        Args:
            cat (CmfAssetCat/CmfAssetTypeCat): Категория актива/категория типа актива
            fields (массив строк): Поля, которые надо добавлять на ui-форму
        r   ZCmfAssetZCmfAssetType)r   Zcmf_model_nameparent)Zassetsr   NTZ_maingroup)r   r   typeF)r   ui_form_groupr   ZhiddenZ
hide_empty)
class_namer   	CmfUiFormr   save
isinstancetree_parentvalueZ	CmfFolderZsys_typeZasset_ui_form_children_inheritZ	save_dataZ#asset_type_ui_form_children_inheritZCmfUiFormGroupZCmfUiFormField)clscatr   Z
model_nameasset_ui_formr   Z
field_namer   r   r   r      s2    

    zCmfAssetCat._scaffold_ui_formc                    s   t  j||}|   |S r   )r   r   r   )r	   r
   r   resr   r   r   r   9   s    zCmfAssetCat.savec                    s   t   ddg S )NZdefault_logic_typeztree_parent.sys_type)r   save_preload_fields)r	   r   r   r   r%   >   s     zCmfAssetCat.save_preload_fieldsc                 O   s*   t jj| d}|D ]}||  q|S )uq   Костыль. Потом доработаем all_nested и включим в ORM или что-то такое)r   )r   r   listextendr   )r	   r
   r   Zchildschildr   r   r   r   C   s    zCmfAssetCat.nested_list)TEXKOM_db_deletec                   sF   t jjdd| g|dD ]}|j|d|i| qt j|d|i|S )Nr   =)filterZinclude_deletedr)   )r   r   r&   deleter   )r	   r)   r
   r   r#   r   r   r   r,   J   s    
zCmfAssetCat.delete)F)__name__
__module____qualname__Z	api_allowmodulesassetr   cmf_asset_catr   Zapi_methodsr   r   classmethodr   r   r%   r   r,   __classcell__r   r   r   r   r      s   

#r   )Zcmf.includeZ"modules.asset.fields.cmf_asset_catr0   r1   r   r2   r   r   r   r   r   <module>   s   