
    }h!                     D    d dl  d dlmZ  G d dej                        Zy)    )*)cmf_cust_field_conf_scheme_rulec                   F     e Zd Z fdZ fdZ fdZe fd       Z xZS )CmfCustFieldConfSchemeRulec                 (    t         |          dgz   S Nzcust_field_conf.cache_schemes)supersave_preload_fields)self	__class__s    2./common/models/cmf_cust_field_conf_scheme_rule.pyr
   z.CmfCustFieldConfSchemeRule.save_preload_fields   s    w*,0O/PPP    c                 
   | j                   j                  j                          | j                   j                  r:| j                   j                  r$| j                   j                  j                          t        |   |i |S )N)cust_field_confvaluesave
is_changedoldr	   )r   argskwargsr   s      r   r   zCmfCustFieldConfSchemeRule.save	   sd    ""'')**t/C/C/G/G  $$))+w|T,V,,r   c                     t        |   |i |}| j                  dg       | j                  r| j                  j	                          |S r   )r	   deleteload_fieldsr   
calc_cache)r   r   r   resr   s       r   r   z!CmfCustFieldConfSchemeRule.delete   sH    gnd-f-9:;  ++-
r   c                    |j                  dd       }|dk(  rg }t        j                  j                  d      D ]  }|j	                  |        |rG|D cg c]<  }|j
                  s|j                         |j
                  j                         v s;|> }}|S |dk(  rg }t        j                  j                  d      D ]  }|j	                  |        |rG|D cg c]<  }|j
                  s|j                         |j
                  j                         v s;|> }}|S t        |    |g|i |S c c}w c c}w )Nsearchparent_logic_types
CmfProject)cmf_model_namelogic_typesCmfTask)	getmodelsCmfLogicTypeslistappendnamelowerr	   field_options_list)	clsrelation_field_namer   r   r   result
logic_typeoptionr   s	           r   r*   z-CmfCustFieldConfSchemeRule.field_options_list   s/   Hd+"66F$1177|7T *
j)*/5oV[a[f[f[l[l[nIn&ooM M1F$1177y7Q *
j)*/5oV[a[f[f[l[l[nIn&ooMw)*=OOOO p ps$   D7)*D7D7D<1*D<D<)	__name__
__module____qualname__r
   r   r   classmethodr*   __classcell__)r   s   @r   r   r      s)    Q- P Pr   r   N)cmf.includecommon.fieldsr   r    r   r   <module>r8      s      9&P!@![![ &Pr   