1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
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.translation import ugettext_lazy as _
from django.utils.safestring import mark_safe
from commonnet.admin_site import admin_site
from commcrawler import models
class CrawlAdmin(admin.ModelAdmin):
model = models.Crawl
list_display = ("name", "status", "target_nb", "created", "started",
"ended")
list_filter = ("status",)
readonly_fields = ("status", "created", "started", "ended")
form = make_ajax_form(model, {'targets': 'target'})
admin_site.register(models.Crawl, CrawlAdmin)
class CrawlResultAdmin(admin.ModelAdmin):
model = models.CrawlResult
list_display = ("target", "crawl", "started", "duration", "status",
"is_online")
list_filter = ("status", "crawl")
search_fields = ("target__name",)
readonly_fields = (
"started", "duration", "status", "nb_external_link", "nb_internal_link",
"nb_images", "nb_facebook", "nb_twitter", "nb_instagram", "nb_youtube",
"nb_dailymotion", "nb_vimeo", "nb_video", "nb_audio", "nb_internal_pdf",
"nb_external_pdf", "nb_internal_office", "nb_external_office",
"is_online", "redirection", "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)
crawl_result_prettified.short_description = _("Crawl result")
admin_site.register(models.CrawlResult, CrawlResultAdmin)
class CrawlLinkAdmin(admin.ModelAdmin):
model = models.CrawlLink
list_display = ("result", "link")
admin_site.register(models.CrawlLink, CrawlLinkAdmin)
class CrawlRelationAdmin(admin.ModelAdmin):
model = models.CrawlRelation
list_display = ("crawl", "source", "destination", "number")
list_filter = ("crawl",)
search_fields = ["source__name", "destination__name"]
form = make_ajax_form(model, {'source': 'target', 'destination': 'target'})
admin_site.register(models.CrawlRelation, CrawlRelationAdmin)
class ExcludedDomainAdmin(admin.ModelAdmin):
list_display = ('domain',)
search_fields = ('domain',)
admin_site.register(models.ExludedDomains, ExcludedDomainAdmin)
|