U
    =g                     @   s*   d dl T d dlmZ G dd dejZdS )    )*)cmf_project_perm_scheme_rulec                       s@   e Zd Zdd fdd
Z fddZed
 fdd		Z  ZS )CmfProjectPermSchemeRuleF)hide_warningsc                   s   dD ]t}| | j r| | r| ddg |s| jr| jjdkrXtd| j d| d q| jrtd| jjjrtd	 q| jj r| jj	D ]J^}}}|d
ksq|jj
dr| jr| jjdkrtddd qtd qtj  t j||S )N)Zaccess_ownerZaccess_owner_assistantZaccess_authorZaccess_responsibleZaccess_sharelink_anonymousZaccess_executorsZaccess_list_ownerZaccess_spectatorsproject_permission.codezproject_permission.namezPPP-PR-BROWSEu'   Для проектного права u    опция uZ   в режиме Beta. Ее стоит использовать, если необходимо предоставить доступ к некоторым объектам в закрытом проекте. Рекомендуется дать полноценный доступ в проект необходимым пользователям.z^PPP-.*-CREATE$u   Внимание! Включение данных опций предоставит разрешение на создание всем пользователям. Используйте опцию "Локальные пользователи"appendzvar:u   Var-пользователи для права Просмотр проектов временно не поддерживаются!T)abortu   Поддержка var-пользователей в Схемах проектных прав - работает в BETA режиме, по возможности воспользуйтесь опциями в таблице.)Z
is_changedZload_fieldsZproject_permissioncodeZ	cmf_alertrematchvalueaccess_membersZ_changes
startswithmodelsZCmfProjectPermSchemeZtrigger_reloadsupersave)selfr   argskwargsZfieldZchange_actionZ
change_obj_	__class__ 8./modules/project/models/cmf_project_perm_scheme_rule.pyr      s$    



zCmfProjectPermSchemeRule.savec                    s   t   dg S )Nr   )r   save_preload_fields)r   r   r   r   r   "   s    z,CmfProjectPermSchemeRule.save_preload_fieldsNc                    sz   |dkr`|sg }|si }| d | d dtjjdddgg|d< t j|fd||d	|S t j|f||d
|S )Nr   z-systemnameORsystemz==T	CmfPerson)Zinclude_hiddenorder_bymodels_filters)r   r    )r   r   r   Zdefault_options_filterr   field_options_list)clsZrelation_field_namer   r    r   r   r   r   r!   %   s,    

 z+CmfProjectPermSchemeRule.field_options_list)NN)__name__
__module____qualname__r   r   classmethodr!   __classcell__r   r   r   r   r      s   r   N)Zcmf.includeZmodules.project.fieldsr   r   r   r   r   r   <module>   s   