U
    Uel                     @   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                       sN   e Zd Zed fdd	Z fddZ fddZdd	 Zed
d Z  Z	S )CmfMailHandlerNc                    st   |sg }|dkr4| dd  }r0|dd|gg}ng S |dkrZ|oJ| dd }|dd|gg}t j|f||d|S )Nmailbox_folders
mailbox_id	parent_id=obj_request_type)filterobject_fields)getsuperfield_options_list)clsZrelation_field_namer   r   kwargsr   r   	__class__ *./modules/mail2/models/cmf_mail_handler.pyr      s    z!CmfMailHandler.field_options_listc                    s   ddg}t   | S )Nmailboxzmailbox_folders.parent)r   save_preload_fields)selffieldsr   r   r   r      s    z"CmfMailHandler.save_preload_fieldsc                    sH   | j jr:| j D ]*}|j| jkrtd| d| j dd qt j||S )Nu   Папка u;    не принадлежит почтовому ящику Tabort)r   Z
is_changedparentr   	cmf_alertr   save)r   argsr   fr   r   r   r      s
    
zCmfMailHandler.savec              
   C   s^  | j dkrZd }|ddg |jr6|jjr6|jj}n"|jrX|jD ]}|jrB|j} qXqB|s~tjj|jj	dgd}|r~|d }tj
j|jd}|stj
jd|j d d}|s| j}|s| jrtj
|jp|jd|j d d	}|  |stj}|r0tj||jj	d
d||d}|  ||_|jdd nd|j d|j d|j d|jj	 d	}tj| j|jpv|jj	d d ||jj	d
d ||| j| jd}|  ||_|jdd tjj|dddgdD ]}tjj||jdrq|jst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_objz-cmf_created_at)Zorder_byr   )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_typeZrequest_typer$   full_path_fileext_id)r   r   )r   r+   u   DEV: Fatal. Вложение u    не имеет ext_idr   )r   r$   r+   rb)%handler_typeZload_fieldsZin_reply_to
handle_objZ
referencesmodelsZCmfTaskZfind_related_tasksr$   valueZ	CmfPersonr   Z	mail_from
obj_authorcreate_userZmail_from_namer   gZcurrent_userZ
CmfCommentr&   replaceZmail_toZcmf_created_atr   obj_logic_typer
   ZCmfAttachmentlistr+   r   r   r*   existsopenZupload_fileread)r   mailr.   rZtasksr'   ZcommentZtext_header_tableZ
attachmentZattach_pathZnew_attachmentZattachment_byter   r   r   handle_new_mail!   s    



	

zCmfMailHandler.handle_new_mailc              
   C   sj   |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dgd}|D ]}||  qfqRd S )Nr   r	   ORr   INr   r-   r!   r"   r1   r5   r
   r2   )r   r   )r.   r/   r   r6   r   Zmailbox_folderidr<   )r   r:   Zavailable_handlersZhandlerr   r   r   new_mail_handler_hookx   s&    
   
z$CmfMailHandler.new_mail_handler_hook)NN)
__name__
__module____qualname__classmethodr   r   r   r<   r@   __classcell__r   r   r   r   r      s   Wr   N)Zcmf.includeZmodules.mail2.fieldsr   pathlibr   r   r   r   r   r   <module>   s   