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)