U
    ,g                     @   s6   d dl T d dlZd dlmZ G dd dejjjZdS )    )*N)copyc                   @   s>   e Zd Zdd Zedd Zdd Zeeddd	d
 Z	dS )CmfCustFieldConfSchemec                 C   s(   |  dg | jD ]}|jj  qdS )u-   DEPRECATED не копировать
        z,cust_field_conf_scheme_rules.cust_field_confN)Zload_fieldsZcust_field_conf_scheme_rulescust_field_confvalueZ
calc_cache)selfrule r	   *./cmf/models/cmf_cust_field_conf_scheme.py
cache_hook   s    
z!CmfCustFieldConfScheme.cache_hookc                 O   s  i }ddg}dd|gddd|ggdddggddd|ggdddggdd	d|ggd	ddggg}	t jj|	|d
gd}
|
rx|
jjD ]}t jj|jjst	
d|jj  q|tt jj|jj j||jj< |jdd}||jj D ]T}|dkr|d dk	r|d ||jj d< q||dk	r|| ||jj |< q|d dkrV|d ||jj d< |d dk	r||d ||jj d< q|d}|
r|
jr|
jjj|
jjj|
jjjd}||fS )u   
        DEPRECATED не копировать
        Для совместимости со старым функционалом генерирует json настройки полей
        Zlogic_typesz$cust_field_conf.cust_field_configs.*parentz==ORINNZparent_logic_typesZ
activitiesz-orderno)filterfieldsZorder_byu(   Поля в задаче еще нет: dict)typereadonlyZfield_readonlydefaultZ_NONE_required)idcodename)ZmodelsZCmfCustFieldConfSchemeRulegetr   Zcust_field_configsZCmfTaskr   r   r   gdebugr   Zui_metadumpsr   r   )cls	scheme_idZ
logic_typeZactivityZproject_logic_typeargskwargsresult_fieldsZ_filterr   r   Zcust_field_dictkeyZcust_field_configr	   r	   r
   ui_fields_json   s@    z%CmfCustFieldConfScheme.ui_fields_jsonc                 C   s   d| j ji}td| dS )ux   
        DEPRECATED не копировать
        Сбрасываем кеш настройки полей
        r   CmfCustFieldConfScheme:changedN)r   r   Zcmf_emit_server_event)r   datar	   r	   r
   invalidate_cache>   s    z'CmfCustFieldConfScheme.invalidate_cacher%   )Zchannelc                 K   s.   t j D ]\}}| d |kr
|| d = q
dS )ue   DEPRECATED не копировать

        Args:
            data (_type_): _description_
        r   N)ZAPPZcache_cust_field_config_schemeitems)r&   _kwargs_Zui_form_cacher	   r	   r
    on_cust_field_conf_scheme_changeF   s    z7CmfCustFieldConfScheme.on_cust_field_conf_scheme_changeN)
__name__
__module____qualname__r   classmethodr$   r'   staticmethodZon_server_eventr+   r	   r	   r	   r
   r      s   
/r   )Zcmf.includeZ%cmf.fields.cmf_cust_field_conf_schemeZcmfr   r   Zcmf_cust_field_conf_schemer   r	   r	   r	   r
   <module>   s   