U
    ^©khŒ  ã                   @   s*   d dl T d dlmZ G dd„ dejƒZdS )é    )Ú*)Úcmf_project_notify_scheme_rulec                       sV   e Zd Zed‡ fdd„	ƒZdd„ Zdd„ Z‡ fdd	„Z‡ fd
d„Z‡ fdd„Z	‡  Z
S )ÚCmfProjectNotifySchemeRuleNc                    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 )NZnotify_membersz-systemÚnameÚORÚsystemú==TÚ	CmfPerson)Zinclude_hiddenÚorder_byÚmodels_filters)r
   r   )ÚappendÚmodelsr	   Zdefault_options_filterÚsuperÚfield_options_list)ÚclsZrelation_field_namer
   r   Úkwargs©Ú	__class__© ú:./modules/project/models/cmf_project_notify_scheme_rule.pyr      s,    

ý ÿþÿÿz-CmfProjectNotifySchemeRule.field_options_listc                 C   sl   t jj| jdd| jgdd| jgdd| jggddgd}|rh|jj|jj }t	d|› d|jj
› d	d
d d S )NÚidz!=Ú
model_typeú=Ú
event_type)ÚparentÚfilterZfieldsu   ÐŸÑ€Ð°Ð²Ð¸Ð»Ð¾ "z - u=   " ÑƒÐ¶Ðµ ÑÑƒÑ‰ÐµÑÑ‚Ð²ÑƒÐµÑ‚, Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐ¹Ñ‚Ðµ ÐµÐ³Ð¾.T©Úabort)r   r   Úgetr   r   r   r   ÚchoicesÚvalueÚ	cmf_alertr   )ÚselfZruler   r   r   r   Ú_check_dublicates   s    


ýù
þz,CmfProjectNotifySchemeRule._check_dublicatesc                 C   s¢   | j s
d S | j jr$td| j › dƒ t d| j j¡}|D ]d}|r8| ¡ }nq8tjj	ddd|gdd|ggd}|s8tj|d	}d
|_
d|_ d
|_d
|_| ¡  q8d S )Nu   ÐÐ° email-Ñ‹: ud    Ð²ÑÐµ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð»ÑÑ‚ÑŒÑÑ Ð±ÐµÐ· Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ Ð¿Ñ€Ð°Ð².z[;,\s]+r   Úloginr   Úemail)r   )r$   FT)Únotify_emailÚ
is_changedr!   ÚreÚsplitr    Ústripr   r	   r   Z
user_localZ
notify_smsZ	notify_osÚsave)r"   Zemailsr%   Zpersonr   r   r   Úcalc_notify_email_persons/   s&    
ÿz4CmfProjectNotifySchemeRule.calc_notify_email_personsc                    s   t ƒ  ¡ dddg S )Nr   r   r&   )r   Úsave_preload_fields)r"   r   r   r   r-   H   s    z.CmfProjectNotifySchemeRule.save_preload_fieldsc                    sÆ   t j ¡  |  ¡  | jjr°| jr°| jD ]ˆ}tt j|d ƒ}|sPtd|› ddd t	|dƒrh|j rh|j }nt	|dƒr‚|j
r‚|j
g}nd }|ršd|kr&d|kr&td	|› d
dd q&|  ¡  tƒ j||ŽS )Nu	   ÐŸÐ¾Ð»Ñ u     Ð½ÐµÑ‚ Ñƒ Ð¼Ð¾Ð´ÐµÐ»Ð¸ CmfTask!Tr   r   Úmodelr	   ZCmfPersonGroupu	   ÐŸÐ¾Ð»Ðµ uW    Ð½Ðµ ÑÐ²Ð»ÑÐµÑ‚ÑÑ ÑÑÑ‹Ð»ÐºÐ¾Ð¹ Ð½Ð° Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð»Ð¸ Ð³Ñ€ÑƒÐ¿Ð¿Ñƒ)r   ÚCmfProjectNotifySchemeÚtrigger_reloadr#   Znotify_custom_fieldr'   ÚgetattrZCmfTaskr!   Úhasattrr.   r,   r   r+   )r"   Úargsr   Ztask_field_nameZfieldZfield_modelsr   r   r   r+   K   s     


zCmfProjectNotifySchemeRule.savec                    s   t j ¡  tƒ j||ŽS )N)r   r/   r0   r   Údelete)r"   r3   r   r   r   r   r4   a   s    
z!CmfProjectNotifySchemeRule.delete)NN)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr   r#   r,   r-   r+   r4   Ú__classcell__r   r   r   r   r      s   r   N)Zcmf.includeZmodules.project.fieldsr   r   r   r   r   r   Ú<module>   s   