diff options
Diffstat (limited to 'commcrawler/admin.py')
-rw-r--r-- | commcrawler/admin.py | 29 |
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) |