summaryrefslogtreecommitdiff
path: root/commcrawler/admin.py
diff options
context:
space:
mode:
Diffstat (limited to 'commcrawler/admin.py')
-rw-r--r--commcrawler/admin.py29
1 files changed, 24 insertions, 5 deletions
diff --git a/commcrawler/admin.py b/commcrawler/admin.py
index 457d2b0..857962c 100644
--- a/commcrawler/admin.py
+++ b/commcrawler/admin.py
@@ -1,5 +1,12 @@
+import json
+
+from pygments import highlight
+from pygments.lexers.data import JsonLexer
+from pygments.formatters.html import HtmlFormatter
+
from ajax_select import make_ajax_form
from django.contrib import admin
+from django.utils.safestring import mark_safe
from commonnet.admin_site import admin_site
from commcrawler import models
@@ -11,7 +18,7 @@ class CrawlAdmin(admin.ModelAdmin):
"ended")
list_filter = ("status",)
readonly_fields = ("status", "created", "started", "ended")
- exclude = ("targets", )
+ form = make_ajax_form(model, {'targets': 'target'})
admin_site.register(models.Crawl, CrawlAdmin)
@@ -19,10 +26,22 @@ admin_site.register(models.Crawl, CrawlAdmin)
class CrawlResultAdmin(admin.ModelAdmin):
model = models.CrawlResult
- list_display = ("target", "crawl", "is_online")
- list_filter = ("crawl",)
+ list_display = ("target", "crawl", "started", "duration", "status",
+ "is_online")
+ list_filter = ("status", "crawl")
+ search_fields = ("target__name",)
+ readonly_fields = ("started", "duration", "status",
+ "crawl_result_prettified")
+ exclude = ("crawl_result",)
form = make_ajax_form(model, {'target': 'target'})
+ def crawl_result_prettified(self, instance):
+ response = json.dumps(instance.crawl_result, sort_keys=True, indent=2)
+ formatter = HtmlFormatter(style='colorful')
+ response = highlight(response, JsonLexer(), formatter)
+ style = "<style>" + formatter.get_style_defs() + "</style><br>"
+ return mark_safe(style + response)
+
admin_site.register(models.CrawlResult, CrawlResultAdmin)
@@ -47,8 +66,8 @@ admin_site.register(models.CrawlRelation, CrawlRelationAdmin)
class ExcludedDomainAdmin(admin.ModelAdmin):
- list_display = ('url',)
- search_fields = ('url',)
+ list_display = ('domain',)
+ search_fields = ('domain',)
admin_site.register(models.ExludedDomains, ExcludedDomainAdmin)