U
    Įwh8                     @   s,   d dl T d dlZG dd dejjjjZdS )    )*Nc                       sj   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  ZS )CmfAssetCatTnested_listc                    s   t  j|| d S N)super_save_import)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   scaffold_ui_form   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   Z	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_nameZ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   8   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   B   s    zCmfAssetCat.nested_list)F)__name__
__module____qualname__Z	api_allowmodulesassetr   cmf_asset_catr   Zapi_methodsr   r   classmethodr   r   r#   r   __classcell__r   r   r   r   r      s   

#r   )Zcmf.includeZ"modules.asset.fields.cmf_asset_catr*   r+   r   r,   r   r   r   r   r   <module>   s   