o
    +׾gV                     @   s`   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ G dd dejeZd	S )
    )settings)get_current_site)mail)make_context)get_template)ContextMixinc                       s^   e Zd ZddddZdZd fdd	Z fdd	Zd
d Z fddZdd Z	dd Z
  ZS )BaseEmailMessagesubjectbodyhtml)r	   	text_body	html_bodyNc                    sJ   t t| j|i | || _|d u ri n|| _d | _|d ur#|| _d S d S )N)superr   __init__requestcontextr   template_name)selfr   r   r   argskwargs	__class__ ]/var/www/html/backend_erp/backend_erp_env/lib/python3.10/site-packages/templated_mail/mail.pyr      s   
zBaseEmailMessage.__init__c           	         s   t t| jdi |}t|fi | j}| jrPt| j}|dp)tt	ddp)|j
}|dp7| j r6dnd}|dpEtt	ddpE|j}|d	pN| jj}n"|dpZtt	dd}|dpad}|dpltt	dd}|d	}|||||d
 |S )NdomainDOMAIN protocolhttpshttp	site_name	SITE_NAMEuser)r   r   r    r"   r   )r   r   get_context_datadictr   r   r   getgetattrr   r   	is_securenamer"   update)	r   r   ctxr   siter   r   r    r"   r   r   r   r#      s6   




z!BaseEmailMessage.get_context_datac                 C   sn   t |  | jd}t| j}||j |jjD ]}| || qW d    n1 s,w   Y  | 	  d S )N)r   )
r   r#   r   r   r   bind_templatetemplatenodelist_process_node_attach_body)r   r   r-   noder   r   r   render;   s   
zBaseEmailMessage.renderc                    sb   |    || _|dg | _|dg | _|dg | _|dtj| _t	t
| j|i | d S )Nccbccreply_to
from_email)r2   topopr3   r4   r5   r   DEFAULT_FROM_EMAILr6   r   r   send)r   r7   r   r   r   r   r   r:   C   s   zBaseEmailMessage.sendc                 C   s:   | j t|dd}|d urt| |||  d S d S )Nr(   r   )	_node_mapr%   r&   setattrr2   strip)r   r1   r   attrr   r   r   r/   P   s   zBaseEmailMessage._process_nodec                 C   s:   | j r| jr| | jd d S | jr| j| _ d| _d S d S )Nz	text/htmlr   )r
   r   attach_alternativecontent_subtype)r   r   r   r   r0   U   s   
zBaseEmailMessage._attach_body)NNN)__name__
__module____qualname__r;   r   r   r#   r2   r:   r/   r0   __classcell__r   r   r   r   r   	   s    r   N)django.confr   django.contrib.sites.shortcutsr   django.corer   django.template.contextr   django.template.loaderr   django.views.generic.baser   EmailMultiAlternativesr   r   r   r   r   <module>   s    