U
    =g                     @   s*   d dl T d dlZG dd dejjjZdS )    )*Nc                       sJ   e Zd Z fddZ fddZ fddZedd fd	d

Z  ZS )CmfCustFieldConfSchemeRulec                    s   t   dg S Nzcust_field_conf.cache_schemes)supersave_preload_fields)self	__class__ /./cmf/models/cmf_cust_field_conf_scheme_rule.pyr      s    z.CmfCustFieldConfSchemeRule.save_preload_fieldsc                    s6   | j j  | j jr(| j jr(| j j  t j||S )N)cust_field_confvaluesaveZ
is_changedoldr   )r   argskwargsr   r
   r   r   	   s    zCmfCustFieldConfSchemeRule.savec                    s.   t  j||}| dg | jr*| j  |S r   )r   deleteZload_fieldsr   Z
calc_cache)r   r   r   resr   r
   r   r      s
    
z!CmfCustFieldConfSchemeRule.deleteNsearchc                   s   |dkrDg }t jjddD ]}|| q r@ fdd|D }|S |dkrg }t jjddD ]}|| q^ r fdd|D }|S t j|f||S )	NZparent_logic_typesZ
CmfProject)Zcmf_model_namec                    s(   g | ] }|j r  |j  kr|qS r
   namelower.0optionr   r
   r   
<listcomp>   s       zACmfCustFieldConfSchemeRule.field_options_list.<locals>.<listcomp>Zlogic_typesZCmfTaskc                    s(   g | ] }|j r  |j  kr|qS r
   r   r   r   r
   r   r   &   s       )ZmodelsZCmfLogicTypeZslistappendr   field_options_list)clsZrelation_field_namer   r   r   resultZ
logic_typer   r   r   r      s    z-CmfCustFieldConfSchemeRule.field_options_list)	__name__
__module____qualname__r   r   r   classmethodr   __classcell__r
   r
   r   r   r      s
   r   )Zcmf.includeZ*cmf.fields.cmf_cust_field_conf_scheme_ruleZcmfZfieldsZcmf_cust_field_conf_scheme_ruler   r
   r
   r
   r   <module>   s   