
    X(iF                     X    d dl  d dlmZ  G d dej                  j                        Zy)    )*)fieldsc                       e Zd Zdej                  iZej                  ej                  j                  ej                  d      g      Zeed<    ej                  di eZd Zd Zd Zd Z fdZ fd	Zed fd
	       Z xZS )CmfForm
autoescapezmodules/crm/templatesloaderc                     t         j                   d}t        j                  j	                  |      st        j                  |       |S )ui   
        Директория для хранения статики формы
        :return:
        z/common/static/forms/)configPROJECT_DIRospathexistsmakedirs)self
static_dirs      ./modules/crm/models/cmf_form.pyr   zCmfForm.static_dir   s:    
 **++@A
ww~~j)KK
#    c                 @    | j                          | j                   dS )Nz.html)r   id)r   s    r   static_filenamezCmfForm.static_filename   s    //#$TWWIU33r   c                     | j                         }t        |d      5 }| j                  j                  d      }|j	                  |j                  |              d d d        |S # 1 sw Y   |S xY w)Nzw+zwebform.html)form)r   open
_jinja_envget_templatewriterender)r   filenameftemplates       r   	dump_htmlzCmfForm.dump_html   se    '')(D! 	0Q33NCHGGHOOO./	0 	0 s   =A$$A.c                     t         j                  | j                  | j                  | j                        }|j                          || _        y)u3   
        Дает доступ из вне
        )nametypetokenN)models	CmfPlugincode
class_namer   saveplugin)r   secrets     r   _init_secretzCmfForm._init_secret"   s7     !!tyytdgg!Vr   c                 *    t         |          g dz   S )N)zform_fields.*
title_text
custom_csssubmit_text)supersave_preload_fields)r   	__class__s    r   r3   zCmfForm.save_preload_fields*   s    w*,/lllr   c                 ~    | j                   r| j                          t        |   |i |}| j	                          |S )N)is_newr-   r2   r*   r!   )r   argskwargsresr4   s       r   r*   zCmfForm.save-   s8    ;;glD+F+
r   c                 N    |dk(  r|sg }|g dg}dg}t        |   |f||d|S )Nparent)zstatus.status_typez!=CLOSEDCmfPipeline)filtermodels_list)r2   field_options_list)clsrelation_field_namer>   r?   r8   r4   s        r   r@   zCmfForm.field_options_list5   sD    (*DEF(/Kw)*=pfZepioppr    )NN)__name__
__module____qualname__APPselect_jinja_autoescape_optionsjinja2FileSystemLoaderr   r   joinr
   r   _loaderEnvironmentr   r   r   r!   r-   r3   r*   classmethodr@   __classcell__)r4   s   @r   r   r      s    c99:H%%rww||F4F4FH_'`&abG HX###/h/J	4m q qr   r   N)cmf.includecmfr   r&   	CmfEntityr   rC   r   r   <module>rT      s#     6qcjj"" 6qr   