
    h;	                     @    d dl T d dlmZ  G d dej                  ZdS )    )*)cmf_security_level_rulec                   D     e Zd Zed fd	            Z fdZ fdZ xZS )CmfSecurityLevelRuleNc                    |dk    ri|sg }|si }|                     d           |                     d           dt          j        j        g dg|d<    t	                      j        |fd||d|S  t	                      j        |f||d	|S )
Naccess_memberz-systemnameOR)systemz==T	CmfPersonT)include_hiddenorder_bymodels_filters)r   r   )appendmodelsr   default_options_filtersuperfield_options_list)clsrelation_field_namer   r   kwargs	__class__s        *./common/models/cmf_security_level_rule.pyr   z'CmfSecurityLevelRule.field_options_list   s    /11 ! $!#OOI&&&OOF###+/1A1XZpZpZp*qN;'-577-.A 8RV7?P^8 8068 8 8 *uww)*= S9GS SKQS S 	S    c                    | j         j        r| j         r| j         D ]x}t          t          j        |d           }|st          d| dd           t          |d          r|j        r|j        }n|j        g}d|vrd|vrt          d| d	d           yt          t          j	        j
        | j        j        j        g
           t          j	                                          t                      j        |i |S )Nu	   Поля u     нет у модели CmfTask!T)abortr   r   CmfPersonGroupu	   Поле uW    не является ссылкой на пользователя или группуargs)access_task_fields
is_changedgetattrr   CmfTask	cmf_alerthasattrmodelschedule_deferred_jobCmfSecurityLevelrecalc_security_level_cacheparentidvaluetrigger_reloadr   save)selfr   r   task_field_namefieldfield_modelsr   s         r   r.   zCmfSecurityLevelRule.save   sI   "- 
	`$2I 
	`#'#: 	` 	`FF i[/[[[cghhhh5(++ 1 1#(<LL$)K=Ll227G|7[7[  S/  S  S  S  [_  `  `  `  `f5Q $ 45	7 	7 	7 	7..000uww|T,V,,,r   c                     t          t          j        j        | j        j        j        g           t          j                                          t                      j	        |i |S )Nr   )
r'   r   r(   r)   r*   r+   r,   r-   r   delete)r/   r   r   r   s      r   r4   zCmfSecurityLevelRule.delete'   s_    f5Q $ 45	7 	7 	7 	7..000uww~t.v...r   )NN)__name__
__module____qualname__classmethodr   r.   r4   __classcell__)r   s   @r   r   r      s        S S S S S [S- - - - -"/ / / / / / / / /r   r   N)cmf.includecommon.fieldsr   r    r   r   <module>r=      s[        1 1 1 1 1 1&/ &/ &/ &/ &/2G &/ &/ &/ &/ &/r   