Skip to content

Commit

Permalink
The preview for new event email
Browse files Browse the repository at this point in the history
  • Loading branch information
dcramer committed Dec 16, 2013
1 parent c4244f8 commit b2dd029
Show file tree
Hide file tree
Showing 4 changed files with 82 additions and 1 deletion.
8 changes: 8 additions & 0 deletions src/sentry/templates/sentry/debug/mail/preview.html
@@ -0,0 +1,8 @@
<html>
<head>
<title>Mail Preview</title>
</head>
<body>
{{ preview.html_body }}
</body>
</html>
Empty file.
61 changes: 61 additions & 0 deletions src/sentry/web/frontend/debug/mail.py
@@ -0,0 +1,61 @@
from django.utils.safestring import mark_safe

from sentry.models import Event, Group, Project, Team
from sentry.web.helpers import render_to_response, render_to_string


# TODO(dcramer): use https://github.com/disqus/django-mailviews
class MailPreview(object):
def __init__(self, html_template, text_template, context):
self.html_template = html_template
self.text_template = text_template
self.context = context

def text_body(self):
return render_to_string(self.text_template, self.context)

def html_body(self):
return render_to_string(self.html_template, self.context)


def new_event(request):
team = Team(
slug='example',
)
project = Project(
slug='example',
team=team,
)
group = Group(
project=project,
message='This is an example event.',
)

event = Event(
project=project,
group=group,
message=group.message,
)

interface_list = []
for interface in event.interfaces.itervalues():
body = interface.to_email_html(event)
if not body:
continue
interface_list.append((interface.get_title(), mark_safe(body)))

preview = MailPreview(
html_template='sentry/emails/error.html',
text_template='sentry/emails/error.html',
context={
'group': group,
'event': event,
'link': '#link',
'interfaces': interface_list,
'settings_link': '#settings-link',
},
)

return render_to_response('sentry/debug/mail/preview.html', {
'preview': preview,
})
14 changes: 13 additions & 1 deletion src/sentry/web/urls.py
Expand Up @@ -14,6 +14,8 @@
# django < 1.5 compat
from django.conf.urls.defaults import include, patterns, url # NOQA

from django.conf import settings

from sentry.web import api
from sentry.web.frontend import (
alerts, accounts, generic, groups, events,
Expand Down Expand Up @@ -45,7 +47,17 @@ def init_all_applications():

init_all_applications()

urlpatterns = patterns('',
urlpatterns = patterns('')

if settings.DEBUG:
import sentry.web.frontend.debug.mail

urlpatterns += patterns('',
url(r'^debug/mail/new-event/$',
sentry.web.frontend.debug.mail.new_event),
)

urlpatterns += patterns('',
url(r'^_static/(?P<module>[^/]+)/(?P<path>.*)$', generic.static_media,
name='sentry-media'),

Expand Down

0 comments on commit b2dd029

Please sign in to comment.