[extensions-web] Allow viewing an error report.



commit 0fc12a0c6d12d41456054553fe96fe9b3575260d
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Fri Sep 23 17:16:45 2011 -0400

    Allow viewing an error report.

 sweettooth/errorreports/admin.py                   |    8 +------
 sweettooth/errorreports/models.py                  |   12 ++++++++++
 .../errorreports/templates/errorreports/view.html  |   23 ++++++++++++++++++++
 sweettooth/errorreports/urls.py                    |    3 ++
 sweettooth/errorreports/views.py                   |    5 ++++
 sweettooth/static/css/sweettooth.css               |   14 ++++++++++-
 6 files changed, 56 insertions(+), 9 deletions(-)
---
diff --git a/sweettooth/errorreports/admin.py b/sweettooth/errorreports/admin.py
index 33ff750..6a96a6a 100644
--- a/sweettooth/errorreports/admin.py
+++ b/sweettooth/errorreports/admin.py
@@ -4,15 +4,9 @@ from django.contrib import admin
 from errorreports.models import ErrorReport
 
 class ErrorReportAdmin(admin.ModelAdmin):
-    list_display = 'user_or_email', 'extension', 'version_num'
+    list_display = 'user_display', 'extension', 'version_num'
     list_display_links = list_display
 
-    def user_or_email(self, report):
-        if report.user:
-            return report.user
-        else:
-            return report.email
-
     def version_num(self, report):
         return report.version.version
 
diff --git a/sweettooth/errorreports/models.py b/sweettooth/errorreports/models.py
index f308ffa..e615122 100644
--- a/sweettooth/errorreports/models.py
+++ b/sweettooth/errorreports/models.py
@@ -1,5 +1,6 @@
 
 from django.contrib import auth
+from django.core.urlresolvers import reverse
 from django.db import models
 from django.dispatch import Signal
 from extensions.models import ExtensionVersion
@@ -23,4 +24,15 @@ class ErrorReport(models.Model):
         else:
             return self.email
 
+    @property
+    def user_display(self):
+        if self.user:
+            return self.user.username
+        else:
+            return self.email
+
+    @property
+    def no_errors(self):
+        return self.errors == ""
+
 error_reported = Signal(providing_args=["version", "report"])
diff --git a/sweettooth/errorreports/templates/errorreports/view.html b/sweettooth/errorreports/templates/errorreports/view.html
new file mode 100644
index 0000000..94bfce6
--- /dev/null
+++ b/sweettooth/errorreports/templates/errorreports/view.html
@@ -0,0 +1,23 @@
+{% extends "base.html" %}
+{% block title %}Error report on "{{ report.version.extension.name }}" &mdash; {{ block.super }}{% endblock %}
+{% block body %}
+<h2><em>{{ report.user_display }}'s report for "{{ report.version.extension.name }}"</em></h2>
+
+<div id="error_report">
+<h3> Detected errors with this extension </h3>
+
+{% if report.no_errors %}
+<div class="no-errors">
+Could not detect any errors
+{% else %}
+<div>
+{{ report.errors }}
+{% endif %}
+</div>
+
+<h3> Additional comments for the author </h3>
+<div>{{ report.comment|default:"No comments" }}</div>
+</div>
+{% endblock %}
+
+{% block navclass %}main{% endblock %}
diff --git a/sweettooth/errorreports/urls.py b/sweettooth/errorreports/urls.py
index ae0faf0..98115ab 100644
--- a/sweettooth/errorreports/urls.py
+++ b/sweettooth/errorreports/urls.py
@@ -6,4 +6,7 @@ from errorreports import views
 urlpatterns = patterns('',
     url(r'^report/(?P<pk>\d+)',
         views.ReportErrorView.as_view(), name='errorreports-report'),
+
+    url(r'^view/(?P<pk>\d+)',
+        views.ViewErrorReportView.as_view(), name='errorreports-view'),
 )
diff --git a/sweettooth/errorreports/views.py b/sweettooth/errorreports/views.py
index aed2a9d..7f9b430 100644
--- a/sweettooth/errorreports/views.py
+++ b/sweettooth/errorreports/views.py
@@ -41,3 +41,8 @@ class ReportErrorView(DetailView):
                         pk=self.object.pk,
                         ext_pk=self.object.extension.pk,
                         slug=self.object.extension.slug)
+
+class ViewErrorReportView(DetailView):
+    model = ErrorReport
+    context_object_name = "report"
+    template_name = "errorreports/view.html"
diff --git a/sweettooth/static/css/sweettooth.css b/sweettooth/static/css/sweettooth.css
index 6f2c5a8..126e643 100644
--- a/sweettooth/static/css/sweettooth.css
+++ b/sweettooth/static/css/sweettooth.css
@@ -297,7 +297,8 @@ li.extension {
     float: right;
 }
 
-#error_report textarea {
+#error_report textarea,
+#error_report div {
     display: block;
     width: 97%;
     resize: vertical;
@@ -307,7 +308,16 @@ li.extension {
     margin: 1em;
 }
 
-#error_report textarea.no-errors {
+#error_report div {
+    border: 1px solid #999;
+    border-radius: 4px;
+    background-color: white;
+    color: black;
+    font-family: monospace;
+    white-space: pre;
+}
+
+#error_report .no-errors {
     color: #888;
     font: inherit;
     text-align: center;



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