diff --git a/cspreports/admin.py b/cspreports/admin.py
index 5e5d244..7ce7e7e 100644
--- a/cspreports/admin.py
+++ b/cspreports/admin.py
@@ -1,15 +1,19 @@
from django.contrib import admin
+from django.utils.safestring import mark_safe
from cspreports.models import CSPReport
class CSPReportAdmin(admin.ModelAdmin):
- list_display = ('id', 'created', 'document_uri', 'blocked_uri')
+ list_display = ('id', 'created', 'document_uri', 'blocked_uri', 'is_valid')
fields = ('created', 'modified', 'json_as_html')
readonly_fields = ('created', 'modified', 'json_as_html')
+ search_fields = ('json',)
+ list_filter = ('is_valid',)
+ date_hierarchy = 'created'
def json_as_html(self, instance):
- return "
" + instance.json_as_html()
+ return mark_safe("
" + instance.json_as_html())
def document_uri(self, instance):
return instance.data.get('csp-report', {}).get('document-uri')
@@ -20,5 +24,11 @@ def blocked_uri(self, instance):
json_as_html.short_description = "Report"
json_as_html.allow_tags = True
+ def has_add_permission(self, request):
+ return False
+
+ def has_change_permission(self, request, obj=None):
+ return False
+
admin.site.register(CSPReport, CSPReportAdmin)
diff --git a/cspreports/models.py b/cspreports/models.py
index acc2043..8083bd6 100644
--- a/cspreports/models.py
+++ b/cspreports/models.py
@@ -5,6 +5,7 @@
from django.db import models
from django.utils.html import escape
from django.utils.safestring import mark_safe
+from django.utils.translation import gettext_lazy as _
DISPOSITIONS = (
('enforce', 'enforce'),
@@ -60,6 +61,7 @@ class CSPReport(models.Model):
"""
class Meta:
+ verbose_name = _('CSP report')
ordering = ('-created',)
created = models.DateTimeField(auto_now_add=True)