U
    I(iF                     @   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dej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
autoescapez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dddg S )Nzform_fields.*Z
title_textZ
custom_cssZsubmit_text)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,   5   s    zCmfForm.field_options_list)NN)__name__
__module____qualname__ZAPPZselect_jinja_autoescapeZ_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   