U
    b©Ef•  ã                   @   s,   d dl T d dlmZ G dd„ dejjƒZdS )é    )Ú*)Úfieldsc                       sŠ   e Zd Zi Ze ej e	j
d¡g¡Zeed< ejf eŽZdd„ Zdd„ Zdd„ Zd	d
„ Z‡ fdd„Z‡ fdd„Zed‡ fdd„	ƒZ‡  ZS )ÚCmfFormzmodules/crm/templatesÚloaderc                 C   s&   t j› d}tj |¡s"t |¡ |S )ui   
        Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ ÑÑ‚Ð°Ñ‚Ð¸ÐºÐ¸ Ñ„Ð¾Ñ€Ð¼Ñ‹
        :return:
        z/common/static/forms/)ÚconfigÚPROJECT_DIRÚosÚpathÚexistsÚmakedirs)ÚselfÚ
static_dir© r   ú ./modules/crm/models/cmf_form.pyr      s    
zCmfForm.static_dirc                 C   s   |   ¡ › | j› dS )Nz.html)r   Úid©r   r   r   r   Ústatic_filename   s    zCmfForm.static_filenamec              	   C   s@   |   ¡ }t|dƒ$}| j d¡}| |j| d¡ W 5 Q R X |S )Nzw+zwebform.html)Zform)r   ÚopenÚ
_jinja_envZget_templateÚwriteZrender)r   ÚfilenameÚfÚtemplater   r   r   Ú	dump_html   s
    zCmfForm.dump_htmlc                 C   s(   t j| j| j| jd}| ¡  || _dS )u3   
        Ð”Ð°ÐµÑ‚ Ð´Ð¾ÑÑ‚ÑƒÐ¿ Ð¸Ð· Ð²Ð½Ðµ
        )ÚnameÚtypeÚtokenN)ÚmodelsZ	CmfPluginÚcodeÚ
class_namer   ÚsaveZplugin)r   Zsecretr   r   r   Ú_init_secret!   s    zCmfForm._init_secretc                    s   t ƒ  ¡ dg S )Nzform_fields.*)ÚsuperÚsave_preload_fieldsr   ©Ú	__class__r   r   r#   )   s    zCmfForm.save_preload_fieldsc                    s(   | j r|  ¡  tƒ j||Ž}|  ¡  |S )N)Zis_newr!   r"   r    r   )r   ÚargsÚkwargsÚresr$   r   r   r    ,   s
    zCmfForm.saveNc                    s>   |dkr$|sg }|dddgg}dg}t ƒ j|f||dœ|—ŽS )NÚparentzstatus.status_typez!=ZCLOSEDZCmfPipeline)ÚfilterÚmodels_list)r"   Úfield_options_list)ÚclsZrelation_field_namer*   r+   r'   r$   r   r   r,   4   s    zCmfForm.field_options_list)NN)Ú__name__Ú
__module__Ú__qualname__Z_optionsZjinja2ZFileSystemLoaderr   r	   Újoinr   r   Z_loaderZEnvironmentr   r   r   r   r!   r#   r    Úclassmethodr,   Ú__classcell__r   r   r$   r   r      s   r   N)Zcmf.includeZcmfr   r   Z	CmfEntityr   r   r   r   r   Ú<module>   s   