U
    $-d                     @   s6   d dl T d dlmZ d dlmZ G dd dejZdS )    )*)cmf_mail_handler)Pathc                       sB   e Zd Zed
 fdd	Z fddZdd Zedd	 Z  ZS )CmfMailHandlerNc                    sN   |sg }|dkr4| dd  }r0|dd|gg}ng S t j|f||d|S )Nmailbox_folder
mailbox_id=)filterobject_fields)getsuperfield_options_list)clsZrelation_field_namer	   r
   kwargsr   	__class__ *./modules/mail2/models/cmf_mail_handler.pyr      s    z!CmfMailHandler.field_options_listc                    sH   | j jr:| j D ]*}|j| jkrtd| d| j dd qt j||S )Nu   Папка u;    не принадлежит почтовому ящику Tabort)mailbox_foldersZ
is_changedparentmailbox	cmf_alertr   save)selfargsr   fr   r   r   r      s
    
zCmfMailHandler.savec              
   C   s0  | j dkr,d }|ddg |jr6|jjr6|jj}n"|jrX|jD ]}|jrB|j} qXqBtjj|jd}|stjjd|j d d}|s| j	}| j
rtj|jp|jd|j d d}|  |stj}|rtj||jjdd||d	}|  ||_|jd
d nd|j d|j d|j d|jj d	}tj| j|jpL|jjd d ||jjdd ||| jd}|  ||_|jd
d tjj|dddgdD ]}tjj||jdrq|jstd| dd
d t|j}| rtj||j|jd}	t |d}
|	!|
"  W 5 Q R X |	  qd S )NZcreate_or_commentin_reply_to.handle_objreferences.handle_obj)emailZBADEMAIL)namer    
z<br>)r   text
cmf_author	cmf_ownerT)Z	only_datauE   <table class='mail-header'>
                    <tr><th>От</th><td>z (u9   )</td></tr>
                    <tr><th>Кому</th><td>u8   </td></tr>
                    <tr><th>Дата</th><td>z,</td></tr>
                    </table><br/>d   )r   r!   r#   r$   r%   Z
logic_typer!   full_path_fileext_id)r   fields)r   r(   u   DEV: Fatal. Вложение u    не имеет ext_idr   )r   r!   r(   rb)#handler_typeZload_fieldsZin_reply_to
handle_objZ
referencesmodelsZ	CmfPersonr   Z	mail_from
obj_authorcreate_userZmail_from_namer   gZcurrent_userZ
CmfCommentr#   valuereplaceZmail_toZcmf_created_atZCmfTaskr   r!   obj_logic_typeZCmfAttachmentlistr(   r   r   r'   existsopenZupload_fileread)r   mailr,   rr$   ZcommentZtext_header_tableZ
attachmentZattach_pathZnew_attachmentZattachment_byter   r   r   handle_new_mail   s    




zCmfMailHandler.handle_new_mailc              	   C   sh   |j r
d S tjjdd|jgddd|jjggddd gggdddd	d
ddgd}|D ]}||  qdqPd S )Nr   r   ORr   INr   r+   r   r   r.   r3   r/   )r	   r)   )r,   r-   r   r4   r   r   idr:   )r   r8   Zavailable_handlersZhandlerr   r   r   new_mail_handler_hookg   s$    
  
z$CmfMailHandler.new_mail_handler_hook)NN)	__name__
__module____qualname__classmethodr   r   r:   r>   __classcell__r   r   r   r   r      s   
Mr   N)Zcmf.includeZmodules.mail2.fieldsr   pathlibr   r   r   r   r   r   <module>   s   