U
    Yhl                     @   s>   d dl T d dlmZ d dlZd dlmZ G dd dejZdS )    )*)deepcopyN)cmf_automation_ui_formc                       sH   e Zd ZedddZdddZdd Z fdd	Z fd
dZ  Z	S )CmfAutomationUiFormNc           	      C   s,  |j dkr|S d g}|jr$|jjg}d g}|jr:|jjg}dddd gdd|j ggdddd gdd|ggdddd gdd|jr|jjnd ggdddd gdd|jjggdd	dd gd	d|ggdd
dd gd
d|ggdddd gdd|ggdddgg}tjj|dgdddgdd}t	|j
|_
|D ]}|j||d q|S )N)ZCmfTaskZCmfDocumentZCmfDealZCmfListZ
CmfCommentORcmf_model_name=
logic_typeINactivity	scheme_wfZfilter_project
transitioncmf_ui_formZdisabledFZordernoZ	eval_codeZ	eval_fileZeval_file_pathT)filterZorder_byfieldsZcache_inmemory)r   )
class_namer	   idparentr   r   modelsr   listr   ui_form_jsonrun)	clsobjr   r   Zlogic_type_filterZproject_filterr   Ztrigger_listZtrigger r   5./modules/automation/models/cmf_automation_ui_form.pyui_get_hook
   s6    


"zCmfAutomationUiForm.ui_get_hookc                    sJ   d fdd	 t tj }t|}| j||d  || d S )Nc                    s   | j  D ]\}}|dkrq
|}|r2| d| }t|drR |t|||d q
|j }|r
||j | j kr
|drjd D ]*}||d kr||d kr|d | q|jd |< q
d S )	NZ_form.)prefixZhiddenZui_group_fieldsr   Zhidden_fields	ui_fields)__dict__itemshasattrgetattrgetr   append)r   old_ui_fieldsr   Zui_field_nameZui_field_datakeygroupcheck_optionsr   r   r   r*   2   s    

z.CmfAutomationUiForm.run.<locals>.check_options)r   r   )N)varsr   r   Zget_automation_ui_formr   Zeval_bzpython)selfr   r   r   r&   r   r)   r   r   1   s    
zCmfAutomationUiForm.runc                 C   sB   d }| j r"dddd gdd| j gg}tjj|dD ]}|  q0d S )Nr   r   z==)r   )r   r   Z	CmfUiFormr   Zinvalidate_cache)r,   Z_filterZformr   r   r   _invalidate_cacheN   s
    z%CmfAutomationUiForm._invalidate_cachec                    s   dgt    S )Nr   )supersave_preload_fields)r,   	__class__r   r   r/   U   s    z'CmfAutomationUiForm.save_preload_fieldsc                    s$   t jstd |   t j||S )Nu   Использование bzPython и Автоматизации недоступно в Вашей версии, обратитесь в Техническую поддержку.)ZconfigZBZPYTHON_ENABLEDZ	cmf_alertr-   r.   save)r,   argskwargsr0   r   r   r2   X   s    zCmfAutomationUiForm.save)NN)N)
__name__
__module____qualname__classmethodr   r   r-   r/   r2   __classcell__r   r   r0   r   r   	   s   &
r   )Zcmf.includecopyr   ZdataclassesZmodules.automation.fieldsr   r   r   r   r   r   <module>   s   