[extensions-web] Send an email on every error report



commit d8723bce56b1dbbf325ee05206f5be8f41d74180
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Mon Oct 31 17:36:55 2011 -0400

    Send an email on every error report

 .../templates/errorreports/report_mail.txt         |   13 +++++++++
 .../templates/errorreports/report_mail_subject.txt |    1 +
 sweettooth/errorreports/views.py                   |   29 ++++++++++++++++++++
 3 files changed, 43 insertions(+), 0 deletions(-)
---
diff --git a/sweettooth/errorreports/templates/errorreports/report_mail.txt b/sweettooth/errorreports/templates/errorreports/report_mail.txt
new file mode 100644
index 0000000..65e6abf
--- /dev/null
+++ b/sweettooth/errorreports/templates/errorreports/report_mail.txt
@@ -0,0 +1,13 @@
+Your extension, "{{ extension.name }}", version {{ version.version }} has received an error report from {{ report.user }}:
+
+{{ report.comments }}
+
+You can see the full report at:
+
+{{ url }}
+
+The error reporting service provided by GNOME Shell Extensions is not a fully-featured ticket tracker and does not aim to replace a ticket tracker.
+
+â
+
+This email was sent automatically by GNOME Shell Extensions. Do not reply.
diff --git a/sweettooth/errorreports/templates/errorreports/report_mail_subject.txt b/sweettooth/errorreports/templates/errorreports/report_mail_subject.txt
new file mode 100644
index 0000000..28c7e66
--- /dev/null
+++ b/sweettooth/errorreports/templates/errorreports/report_mail_subject.txt
@@ -0,0 +1 @@
+GNOME Shell Extensions â "{{ extension.name }}", has a new error report
diff --git a/sweettooth/errorreports/views.py b/sweettooth/errorreports/views.py
index ad3cf7c..3e023b7 100644
--- a/sweettooth/errorreports/views.py
+++ b/sweettooth/errorreports/views.py
@@ -1,7 +1,11 @@
 
+from django.conf import settings
 from django.contrib import messages
+from django.core.mail import send_mail
+from django.core.urlresolvers import reverse
 from django.http import HttpResponseForbidden
 from django.shortcuts import redirect
+from django.template.loader import render_to_string
 
 from errorreports.models import ErrorReport, error_reported
 from extensions.models import ExtensionVersion
@@ -41,3 +45,28 @@ def report_error_view(request, obj):
 @model_view(ErrorReport)
 def view_error_report_view(request, obj):
     return render(request, 'errorreports/view.html', dict(report=obj))
+
+
+def send_email_on_error_reported(request, version, report, **kwargs):
+    extension = version.extension
+
+    url = request.build_absolute_uri(reverse('errorreports-view',
+                                             kwargs=dict(pk=report.pk)))
+
+    data = dict(version=version,
+                extension=extension,
+                report=report,
+                url=url)
+
+    subject = render_to_string('errorreports/report_mail_subject.txt', data).strip()
+    subject = subject.replace('\n', '')
+    subject = subject.replace('\r', '')
+
+    message = render_to_string('errorreports/report_mail.txt', data).strip()
+
+    send_mail(subject=subject,
+              message=message,
+              from_email=settings.EMAIL_SENDER,
+              recipient_list=[extension.creator.email])
+
+error_reported.connect(send_email_on_error_reported)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]