
    xhg                         S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r	  S SK
Jr  S SKJr  \" 5       r " S S	\5      r " S
 S\\5      rg)    )Optional)settings)get_user_model)EmailMultiAlternatives)render_to_string)ContextMixin)SingleObjectMixinc                      ^  \ rS rSrSrSrSrS rS rS r	S r
S rS rS	 rU 4S
 jrSS jrS rSS jrS\4S jrSrU =r$ )GlitchTipEmail   Nc                 Z    Xl         UR                  5        H  u  p#[        XU5        M     g N)kwargsitemssetattr)selfr   keyvalues       /code/glitchtip/email.py__init__GlitchTipEmail.__init__   s#     ,,.JCDu% )    c                     U R                   $ r   )html_template_namer   s    r   get_html_template_name%GlitchTipEmail.get_html_template_name       &&&r   c                     U R                   $ r   )text_template_namer   s    r   get_text_template_name%GlitchTipEmail.get_text_template_name   r   r   c                     U R                   $ r   )subject_template_namer   s    r   get_subject_template_name(GlitchTipEmail.get_subject_template_name   s    )))r   c                 6    [        U R                  5       U5      $ r   )r   r!   r   contexts     r   get_text_contentGlitchTipEmail.get_text_content         ; ; =wGGr   c                 6    [        U R                  5       U5      $ r   )r   r   r(   s     r   get_html_contentGlitchTipEmail.get_html_content#   r,   r   c                 Z    [        U R                  5       U5      R                  S5      S S $ )N
i  )r   r%   stripr(   s     r   get_subject_content"GlitchTipEmail.get_subject_content&   s0     > > @'JPPQUVS
 	
r   c                 j   > [         TU ]  " S0 UD6n[        R                  R	                  5       US'   U$ )Nbase_url )superget_context_datar   GLITCHTIP_URLgeturl)r   r   r)   	__class__s      r   r9   GlitchTipEmail.get_context_data+   s3    '*4V4&44;;=
r   c                 .   U R                  U5      n[        X@R                  U5      US9nU(       a.  U Vs0 s H  ofR                  SUR                  0_M     snUl        UR                  U R                  U5      S5        UR                  5         g s  snf )N)to	unique_idz	text/html)	r3   r   r*   emailidmerge_metadataattach_alternativer.   send)r   r)   r?   userssubjectmsgusers          r   _send_emailGlitchTipEmail._send_email0   s    **73$W.C.CG.LQSTQV!WQV**{DGG.D"DQV!WCt44W={K
 "Xs   "Bc                 >    [         R                  R                  5       $ r   )Userobjectsnoner   s    r   	get_usersGlitchTipEmail.get_users8   s    ||  ""r   c                     U R                  5       nUc  U R                  5       nUR                  SSS9nU R                  X#U5        g)zS
Send email to Django users, will set merge data to avoid exposing email addresses
NrA   T)flat)r9   rP   values_listrJ   )r   rF   r)   r?   s       r   send_users_emailGlitchTipEmail.send_users_email;   sH     '')=NN$EwT2e,r   rA   c                 H    U R                  5       nU R                  X!/5        gzSend just one emailN)r9   rJ   r   rA   r)   s      r   
send_emailGlitchTipEmail.send_emailE   s     '')'*r   )r   r   )__name__
__module____qualname____firstlineno__r   r    r$   r   r   r!   r%   r*   r.   r3   r9   rJ   rP   rU   strrZ   __static_attributes____classcell__r<   s   @r   r   r      s_     &
''*HH


#-+ + +r   r   c                   J   ^  \ rS rSrS rSU 4S jjrSS\\   4S jjrSr	U =r
$ )DetailEmailK   c                     [         er   )NotImplementedErrorr   s    r   	get_emailDetailEmail.get_emailL   s    !!r   c                 N   > U R                  5       U l        [        TU ]  U5        g r   )
get_objectobjectr8   rU   )r   rF   r<   s     r   rU   DetailEmail.send_users_emailO   s    oo' 'r   rA   c                     U R                  5       U l        U R                  5       nUc  U R                  5       nU R	                  X!/5        grX   )rl   rm   r9   ri   rJ   rY   s      r   rZ   DetailEmail.send_emailS   s?    oo''')=NN$E'*r   )rm   r   )r\   r]   r^   r_   ri   rU   r   r`   rZ   ra   rb   rc   s   @r   re   re   K   s"    "(+ + +r   re   N)typingr   django.confr   django.contrib.authr   django.core.mailr   django.template.loaderr   django.views.generic.baser   django.views.generic.detailr	   rM   r   re   r7   r   r   <module>rx      s>       . 3 3 2 9;+\ ;+|+#^ +r   